You are here:Home-Domande su Formule e Funzioni-[RISOLTO] Cercare valori su riga da un elenco formula
[RISOLTO] Cercare valori su riga da un elenco formula2019-04-01T15:12:36+02:00

Home Forum Domande su Formule e Funzioni [RISOLTO] Cercare valori su riga da un elenco formula

Taggato: 

Visualizzazione 24 filoni di risposte
  • Autore
    Post
    • Avatarg.ros
      Partecipante
        Post totali: 14

        Buongiorno,

        avrei bisogno di trovare su ogni riga del Foglio1 almeno il primo numero corrispondente sulla colonna del Foglio2 e che questo numero sia scritto nella prima cella libera alla fine della riga stessa.

        Ho usato la formula  =INDICE(B1:F1;CONFRONTA(Foglio2!A1;B1:F1;0)) ma in questo modo confronto solo il primo numero della colonna nella prima cellaH1 e quindi ho aggiunto una seconda la formula in I1 =INDICE(B1:F1;CONFRONTA(Foglio2!A2;B1:F1;0)) con il secondo numero della colonna cellaH2 e così via.

        Vorrei un’unica formula che comprenda tutti i parametri della colonna li confronti con la riga

        Grazie a chi potrà aiutarmi.

        Allego il file di esempio

        <br />

        http://www.filedropper.com/cerca1_1

        • Questo topic è stato modificato 1 anno, 2 mesi fa da Avatarg.ros.
        • Questo topic è stato modificato 1 anno, 2 mesi fa da Avatarg.ros. Motivo: ho sbagliato ad inserire il link!
        • Questo topic è stato modificato 1 anno, 2 mesi fa da sidsid.
      • BySalvBySalv
        Amministratore del forum
          Post totali: 694

          Ciao g.ros, per qualche formula devo vedere, è risaputo che con le formule non vado troppo in accordo.

          se vuoi con il Vba possiamo risolvere,cioè trovare il primo numero del Foglio1 nella riga 1 e successive che corrisponda all’elenco del Foglio2 “A1:A12” e scriverlo nel Foglio1 nella colonnaG corrispondente alla riga.

          Altrimenti con la formattazione condizionale potresti vedere il risultato immediato, quello che scrivi nel Foglio2 lo vedi immediatamente nel Foglio1, anche la posizione:

          Cattura

          Fai sapere se vuoi una macro lo facciamo subito con le formule devi aspettare.

          Ciao By Sal :bye:

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • Avatarg.ros
          Partecipante
            Post totali: 14

            ciao Sal, anche se capisco che con VBA si ottengono risultati migliori purtroppo devo lavorare con le formule. Intanto ho risolto con questa:
            =SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A2;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A4;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A5;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A6;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A7;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A8;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A9;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A10;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A11;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A12;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A13;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A14;B2:F2;0));SE.ERRORE(INDICE(B2:F2;CONFRONTA(Foglio2!$A15;B2:F2;0));"NESSUNA")))))))))))))
            ma se qualcuno ha qualche soluzione più elegante …
            Grazie molte!

          • BySalvBySalv
            Amministratore del forum
              Post totali: 694

              Ciao Ok Aspettiamo qualche altra soluzione.

              Ciao By Sal :bye:

              Ciao By Sal (8-)
              se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

            • sidsid
              Moderatore
                Post totali: 749

                Ciao
                Non so se ho capito bene la tua esigenza.
                In H1 di foglio1
                =SE.ERRORE(INDICE($B1:$F1;CONFRONTA(INDIRETTO(INDIRIZZO(RIF.COLONNA(A1);RIF.RIGA($A$1);3;1;"Foglio2"));$B1:$F1;0));"NESSUNA")
                Da trascinare a destra e in basso

              • Avatarg.ros
                Partecipante
                  Post totali: 14

                  Ciao sid, la formula dovrebbe confrontare le celle della riga con tutte le celle della colonna del Foglio2 (e non solo la cella Foglio2.A1).
                  grazie

                • sidsid
                  Moderatore
                    Post totali: 749

                    Ma è quello che fa, oppure non ho capito la tua esigenza.
                    Per capire bene il risulato finale, potresti inserire manualmente i valori che dovresti ottenere nel range H1:S1 di foglio1?

                  • Avatarg.ros
                    Partecipante
                      Post totali: 14

                      con la tua formula (se non ho sbagliato qualcosa) mi dà corretto il valore dalla prima riga ma trascinando la formula sulle altre mi dà “NESSUNA”.

                      Allego il file con i risultati che vorrei ottenere sulla celle verdi.

                      http://www.filedropper.com/esempio

                      <br />

                    • D@niloD@nilo
                      Partecipante
                        Post totali: 61

                        Buongiorno a tutti

                        con questa formula da mettere in G1 e attivare con CTRL+SHIFT+INVIO e poi trascinare in basso ottengo gli stessi risultati inseriti manualmente dall’utente ad eccezione della riga 2 dove dichiara di volere ottenere 24 però il 3 che troviamo in prima e seconda posizione lo abbiamo anche nella lista gialla

                         

                        =SE.ERRORE(INDICE(Foglio2!$A$1:$A$12;CONFRONTA(1;(–(VAL.NUMERO(CONFRONTA(Foglio2!$A$1:$A$12;B1:F1;0))));0));”NESSUNA”)

                      • Avatarg.ros
                        Partecipante
                          Post totali: 14

                          ciao D@nilo, hai ragione, ho sbagliato il valore della riga 2 nell’esempio…mi scuso.

                          Però la tua formula mi dà errore (#NOME?) anche se la lancio con CTRL+SHIFT+INVIO. Dove sbaglio?!

                        • Avatarg.ros
                          Partecipante
                            Post totali: 14

                            sempre per D@nilo, allego esempio risultato.
                            Grazie

                            http://www.filedropper.com/esempio_1

                            <br />

                          • D@niloD@nilo
                            Partecipante
                              Post totali: 61

                              Ciao

                              l’ultimo file scaricato restituisce errore #NOME? come se non riconosce delle formule comunque non ho tempo per indagare ti allego link per scaricare il file precedente con formula inserita e funzionante

                               

                              https://www.dropbox.com/s/j6e5k30v1bp48jo/matr.xlsx?dl=0

                               

                              saluti

                            • Avatarg.ros
                              Partecipante
                                Post totali: 14

                                grazie mille D@nilo, grande!
                                ciao
                                g

                              • Avatarg.ros
                                Partecipante
                                  Post totali: 14

                                  Non riesco a scrivere [RISOLTO], scusate.

                                • sidsid
                                  Moderatore
                                    Post totali: 749

                                    Perdonami ma nel post di apertura tu hai inserito 2 formule: la prima in H1 e la seconda in I1, quindi la tua intenzione era trascinare la formula sulla riga e non sulla colonna. Il parametro che cambiava era l’argomento “valore” della funzione CONFRONTA, che sulla prima formula era A1 di foglio2, mentre nella seconda era A2 di foglio2.
                                    Nel tuo esempio con i risultati inseriti manualmente invece, te trascini verso il basso e non verso destra.

                                  • Avatarg.ros
                                    Partecipante
                                      Post totali: 14

                                      Ciao sid, hai ragione l’esempio era molto confuso.
                                      nel primo file ho riportato lo scarso risultato che ero riuscita ad ottenere io: non avendo nidificato la formula ho dovuto “spalmarla” sulle righe perchè confrontavo un elemento alla volta!
                                      In realtà la soluzione di D@nilo è quello che volevo ottenere.
                                      Visto che la discussione è riaperta vi chiedo anche lumi su questa parte della formula:

                                      CONFRONTA(1;(–(VAL.NUMERO(CONFRONTA

                                      che funziona alla grande con:
                                      =SE.ERRORE(INDICE(Foglio2!$A$1:$A$12;CONFRONTA(1;(–(VAL.NUMERO(CONFRONTA(Foglio2!$A$1:$A$12;B1:F1;0))));0));”NESSUNA”)

                                      ma non riesco proprio a capire cosa/come fa!

                                      grazie a tutti, siete super!

                                    • D@niloD@nilo
                                      Partecipante
                                        Post totali: 61

                                        Ciao

                                        Ora sono da cellulare

                                        Stasera col pc ti spiego come funziona

                                      • D@niloD@nilo
                                        Partecipante
                                          Post totali: 61

                                          Ciao

                                          partiamo dal cuore della formula (prendo in esame la prima riga)

                                          CONFRONTA(Foglio2!$A$1:$A$12;B1:F1;0)

                                          e da qui lo stato matriciale in quanto confrontiamo una matrice di dati in un altra

                                          e ci restituisce questa matrice

                                          {1.#N/D.2.3.4.#N/D.#N/D.#N/D.#N/D.#N/D.5.#N/D}

                                          visto che lavoriamo con dei numeri verifichiamo quali sono i dati che ci interessano cosi

                                          VAL.NUMERO(CONFRONTA(Foglio2!$A$1:$A$12;B1:F1;0))

                                          che restituisce la matrice

                                          {VERO.FALSO.VERO.VERO.VERO.FALSO.FALSO.FALSO.FALSO.FALSO.VERO.FALSO}

                                          dove VERO è un numero e falso qualsiasi cosa non è un numero errori compresi

                                          ora mettiamo i due meno davanti che servono a trasformare i VERO in uno e i FALSO in zero

                                          (–(VAL.NUMERO(CONFRONTA(Foglio2!$A$1:$A$12;B2:F2;0))))

                                          ora questa matrice che abbiamo creato la usiamo come matrice del CONFRONTA e il mettiamo come valore da cercare l’uno quindi

                                          CONFRONTA(1;(–(VAL.NUMERO(CONFRONTA(Foglio2!$A$1:$A$12;B1:F1;0))));0) ottenendo

                                          {1.0.1.1.1.0.0.0.0.0.1.0}

                                          che ci troverà la posizione relativa del primo uno che incontra che corrisponde al primo valore della colonna di dati che trova nella riga in oggetto… ora sappiamo che nel caso esempio il primo dato della colonna del foglio due si trova in prima posizione questa matrice la usiamo come argomento RIGA della funzione INDICE

                                          INDICE(Foglio2!$A$1:$A$12;CONFRONTA(1;(–(VAL.NUMERO(CONFRONTA(Foglio2!$A$1:$A$12;B1:F1;0))));0))

                                          il SE.ERRORE non credo abbia bisogno di delucidazioni

                                          Sperando di essere stato chiaro un saluto

                                           

                                          • Questa risposta è stata modificata 1 anno, 2 mesi fa da D@niloD@nilo.
                                        • Avatarg.ros
                                          Partecipante
                                            Post totali: 14

                                            Grazie davvero, adesso sono al cell ma domani me la studio bene! Sei stato preziosissimo. Alla prossima. 

                                          • Avatarg.ros
                                            Partecipante
                                              Post totali: 14

                                              Ciao D@nilo, sei stato molto chiaro, grazie. Una bella formula, elegante. Davvero bravo, complementi! un saluto

                                            • D@niloD@nilo
                                              Partecipante
                                                Post totali: 61

                                                Buongiorno

                                                un’altra possibilità per evitare lo stato matriciale G1 da trascinare in basso

                                                 

                                                =SE.ERRORE(INDICE(Foglio2!$A$1:$A$12;AGGREGA(15;6;RIF.RIGA($A$1:$A$12)/
                                                (CONFRONTA(Foglio2!$A$1:$A$12;B1:F1;0)>0);1));”NESSUNA”)

                                                • Questa risposta è stata modificata 1 anno, 2 mesi fa da D@niloD@nilo.
                                              • Avatarg.ros
                                                Partecipante
                                                  Post totali: 14

                                                  Grazie! :bye:

                                                • Avatarg.ros
                                                  Partecipante
                                                    Post totali: 14

                                                    ciao D@nilo, scusa se ti disturbo ancora ma, quando hai un attimo di tempo, puoi dirmi perchè l’ultima tua formula

                                                    =SE.ERRORE(INDICE(Foglio2!$A$1:$A$12;AGGREGA(15;6;RIF.RIGA($A$1:$A$12)/(CONFRONTA(Foglio2!$A$1:$A$12;B4:F4;0)>0);1));”NESSUNA”)

                                                    che funziona correttamente quando trova una corrispondenza, quando non la trova invece di restituirmi NESSUNA (secondo valore di se.errore) mi restituisce #NOME?

                                                    :scratch:

                                                    grazie!

                                                  • D@niloD@nilo
                                                    Partecipante
                                                      Post totali: 61

                                                      Bungiorno

                                                      già sull’altro file che avevi allegato avevi problemi la formula funziona correttamente l’errore nome lo restituisce quando excel non riconosce una funzione di più non so dirti ti allego il link per il file con le due formule inserite e funzionanti

                                                       

                                                      https://www.dropbox.com/s/ywc3qvt0gx8yocg/GROS.xlsx?dl=0

                                                    • Avatarg.ros
                                                      Partecipante
                                                        Post totali: 14

                                                        Buongiorno,

                                                        grazie, gentile e paziente come sempre!

                                                        Si è vero, l’altra formula mi dava errore ma perché con il copia/incolla avevo un – invece di due.

                                                        Questa volta non so proprio cosa sia andato storto, mah.

                                                        Comunque copiandola dal tuo file funziona come dovrebbe.

                                                        grazie ancora. :bye:

                                                         

                                                    Visualizzazione 24 filoni di risposte
                                                    • Devi essere connesso per rispondere a questo topic.