È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Indice e Confronta o Cerca.Orizz a risultati multipli? Idee?

Ultimo Aggiornamento: 10/04/2020 08:23
Post: 1
Registrato il: 08/04/2020
Età: 37
Utente Junior
2013
OFFLINE
08/04/2020 17:02

Buongiorno!

Sto impazzendo da qualche giorno nel costruire un file Excel e nelle varie discussioni ho trovato situazioni simili, ma che per un motivo o per l'altro, non mi sono state sufficienti.

Vi chiedo aiuto perchè avrei bisogno di trovare una formula che si comporti un po' come se fosse un CERCA.ORIZZ a risultati multpli, anche se non esattamente.

Purtroppo non posso usare la formula AGGREGA nè una MACRO perchè il file dovrà essere utilizzabile anche in Google Fogli (...).

Allego il file d'esempio, dove in pratica ho indicato il risultato desiderato nel campo L5:M7 in giallo.
Si tratta di un file di esempio semplificato per cui mi interesserebbe capire come si potrebbe arrivare alla soluzione.

Grazie a chiunque mi vorrà dedicare un po' del suo tempo.
Post: 2.652
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
08/04/2020 17:08

Ciao
in L5 da trascinare:

=INDICE($A$4:$H$10;CONFRONTA(K5;$A$4:$A$10;0);CONFRONTA($L$3;$A$3:$H$3;0))

saluti




Domenico
Win 10 - Excel 2016
Post: 1
Registrato il: 08/04/2020
Età: 37
Utente Junior
2013
OFFLINE
08/04/2020 17:26

Re:
dodo47, 08/04/2020 17:08:

Ciao
in L5 da trascinare:

=INDICE($A$4:$H$10;CONFRONTA(K5;$A$4:$A$10;0);CONFRONTA($L$3;$A$3:$H$3;0))

saluti







Ciao! Intanto grazie per la risposta.. è già un passo avanti a quanto trovato finora.

Avrei però la necessità di inserire la formula sia in L5 (e successive) che in K5 (e successive).. nell'esempio non sono stato chiaro forse, ma una volta selezionato il gg interesatto nel menù di L3, in automatico dovrebbe comparire la tabella completa K5:L7.
Post: 2.653
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
08/04/2020 17:58

non capisco
fai un esempio a mano del risultato voluto.

Quanto prima detto è conforme alla tua prima richiesta

saluti




Domenico
Win 10 - Excel 2016
Post: 627
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
08/04/2020 17:58

Buonasera
visto che non puoi usare AGGREGA in K5 da attivare con CTRL+SHIFT+INVIO e trascinare a destra e poi in basso

=SE.ERRORE(SCEGLI(RIF.COLONNA(A$1);INDICE($A$4:$A$100;PICCOLO(SE(INDIRETTO(INDIRIZZO(4;CONFRONTA($L$3;$B$3:$H$3;0)+1)&":"&INDIRIZZO(100;CONFRONTA($L$3;$B$3:$H$3;0)+1))<>"";RIF.RIGA($A$4:$A$100)-3);RIF.RIGA($A1)));INDICE(INDIRETTO(INDIRIZZO(4;CONFRONTA($L$3;$B$3:$H$3;0)+1)&":"&INDIRIZZO(100;CONFRONTA($L$3;$B$3:$H$3;0)+1));PICCOLO(SE(INDIRETTO(INDIRIZZO(4;CONFRONTA($L$3;$B$3:$H$3;0)+1)&":"&INDIRIZZO(100;CONFRONTA($L$3;$B$3:$H$3;0)+1))<>"";RIF.RIGA($A$4:$A$100)-3);RIF.RIGA($A1))));"")


Se non dovessi avere a disposizione il SE.ERRORE va integrato con VAL.ERRORE
Post: 2
Registrato il: 08/04/2020
Età: 37
Utente Junior
2013
OFFLINE
09/04/2020 09:14

Re:
DANILOFIORINI, 08/04/2020 17:58:

Buonasera
visto che non puoi usare AGGREGA in K5 da attivare con CTRL+SHIFT+INVIO e trascinare a destra e poi in basso

=SE.ERRORE(SCEGLI(RIF.COLONNA(A$1);INDICE($A$4:$A$100;PICCOLO(SE(INDIRETTO(INDIRIZZO(4;CONFRONTA($L$3;$B$3:$H$3;0)+1)&":"&INDIRIZZO(100;CONFRONTA($L$3;$B$3:$H$3;0)+1))<>"";RIF.RIGA($A$4:$A$100)-3);RIF.RIGA($A1)));INDICE(INDIRETTO(INDIRIZZO(4;CONFRONTA($L$3;$B$3:$H$3;0)+1)&":"&INDIRIZZO(100;CONFRONTA($L$3;$B$3:$H$3;0)+1));PICCOLO(SE(INDIRETTO(INDIRIZZO(4;CONFRONTA($L$3;$B$3:$H$3;0)+1)&":"&INDIRIZZO(100;CONFRONTA($L$3;$B$3:$H$3;0)+1))<>"";RIF.RIGA($A$4:$A$100)-3);RIF.RIGA($A1))));"")


Se non dovessi avere a disposizione il SE.ERRORE va integrato con VAL.ERRORE




Ciao! Grazie per la risposta (ad entrambi).. la formula nel test funziona esattamente come avrei voluto! Ribaltandola sul mio file originale però, mi restituisce sempre campo vuoto (ho provato anche a cambiare i riferimenti numerici di "4" e "100" adattandoli al mio file.. ma niente.

Provo ad allegare il file di cui parlo, magari è un errore piccolo che non sto capendo...

ps. la formula l'ho inserita in D2:E6 del secondo foglio (celle gialle).

GRAZIE ANCORA
Post: 630
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
09/04/2020 10:55

Buongiorno
di errori nell'adattamento ce ne stava più di uno provo a descriverla
pratica mente sono due formule separate che metto dentro SCEGLI per farne una sola nel file che allego metto le formule separate sulla destra per capire gli step...
Lo scopo è estrarre i nominativi e gli altri dati in funzione di una data ora nell'esempio questa data la troviamo in G9
quindi ci interessa estrarre i dati da G10 a G1000 che siano diversi da vuoto la formula sarebbe

=INDICE('Elenco DIP'!$E$10:$E$1000;PICCOLO(SE('Elenco DIP'!$G$10:$G$1000<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1)))

che mi estrae i nominativi ('Elenco DIP'!$E$10:$E$1000)

su questa base devo rendere dinamico il range del criterio cioè

'Elenco DIP'!$G$10:$G$1000<>""

questo range me lo creo cosi

INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5))

se lo evidenzi e fai F9 vedi che trovi i dati di colonna Gdel primo foglio

ora sostituisco questo range dinamico nella formula

nella prima lo metto solo nella parte del criterio in quanto l'indice è fisso (dove stanno i nominativi) mentre nella seconda lo metto anche come matrice dell'indice in quanto questo sarà variabile quindi le 2 formule sono

=INDICE('Elenco DIP'!$E$10:$E$1000;PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1)))

per i nominativo e

=INDICE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5));PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1)))

per gli altri dati

per fare una formula unica li metto dentro SCEGLI
la funzione scegli ha un indice che va da 1 a 255 il numero dell'indice o lo scrivo a mano oppure me lo ricavo con una formula quindi sarebbe

=SCEGLI(RIF.COLONNA(A$1);prima formula;seconda formula)

cosi nella prima cella dove metti la formula il RIF.COLONNA(A$1) restituisce 1 e fa lavorare la formula1 trascinando a destra diventa 2 facendo lavorare la formula2 poi mettiamo tutte dentro un SE.ERRORE per ottenere vuoto in caso di errore

La formula finale da mettere in D2 da attivare con CTRL+SHIFT+INVIO e trascinare a destra e poi in basso

=SE.ERRORE(SCEGLI(RIF.COLONNA(A$1);INDICE('Elenco DIP'!$E$10:$E$1000;PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1)));INDICE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5));PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1))));"")
[Modificato da DANILOFIORINI 09/04/2020 11:00]
Post: 3
Registrato il: 08/04/2020
Età: 37
Utente Junior
2013
OFFLINE
09/04/2020 12:07

Re:
DANILOFIORINI, 09/04/2020 10:55:



La formula finale da mettere in D2 da attivare con CTRL+SHIFT+INVIO e trascinare a destra e poi in basso

=SE.ERRORE(SCEGLI(RIF.COLONNA(A$1);INDICE('Elenco DIP'!$E$10:$E$1000;PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1)));INDICE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5));PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1))));"")



FUNZIONA!
GRAZIE MILLE, anche per la speigazione! Ho capito, non ci sarei mai arrivato e non saprei rifarlo.. ma grazie!

Per aver la vista dei 5 gg, anzichè la sola data inserita in input, ho copiato in 5 fogli la stessa formula e la stessa impostazione di pagina.. e in un sesto foglio ho impostato che per ogni cella andasse a pescare il singolo foglio di riferimento (perchè non sapevo adattare la formula ai gg successivi)...

GRazie ancora

Post: 631
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
09/04/2020 12:26

Ciao
di vedere più date non l'avevi specificato...se alleghi il file con la struttura di come vorresti che venisse fuori te lo faccio...bisogna intervenire nel criterio della data che sta in B1...
no è difficile
Post: 4
Registrato il: 08/04/2020
Età: 37
Utente Junior
2013
OFFLINE
09/04/2020 14:35

Re:
Hai ragione! Infatti è un'esigenza che mi sono fatto venire in mente dopo... (e sarebbe già sufficente come mi avevi impostato prima).

Ho aggiunto alla vista i 4 gg successivi a quello indicato nella scelta, così da avere la settimana completa.

Ti allego il file per come vorrei che venisse, ovviamente nelle celle arancioni non c'è la formula perchè non darebbe il risultato atteso (che ho impostato a mano in G2 e H2).

Ho anche aggiunto una colonna con un cercavert su un foglio di appoggio per recuperare anche il dato della colonna B del foglio principale.
Post: 632
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Senior
2016
OFFLINE
09/04/2020 15:13

Ciao
l'inserimento di quelle colonne celesti complica notevolmente la faccenda quindi per non fare delle formule ancora più complesse
fai cosi copia la la formula senza l'uguale e la incolli in G2(cosi non perdi i riferimenti)metti l'uguale davanti e dove trovi B1 ci aggiungi 1 cosi


=SE.ERRORE(SCEGLI(RIF.COLONNA(A$1);INDICE('Elenco DIP'!$E$10:$E$1000;PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1+1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1+1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1)));INDICE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1+1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1+1;'Elenco DIP'!$F$9:$NG$9;0)+5));PICCOLO(SE(INDIRETTO("'Elenco DIP'!"&INDIRIZZO(10;CONFRONTA($B$1+1;'Elenco DIP'!$F$9:$NG$9;0)+5)&":"&INDIRIZZO(1000;CONFRONTA($B$1+1;'Elenco DIP'!$F$9:$NG$9;0)+5))<>"";RIF.RIGA($E$10:$E$1000)-RIF.RIGA($E$10)+1);RIF.RIGA($A1))));"")
Attivala con CTRL+SHIFT+INVIO trascina destra di un a colonna e poi in basso
ripeti l'operazione per le altre colonne aggiungendo 2 poi 3 etc....
[Modificato da DANILOFIORINI 09/04/2020 15:15]
Post: 5
Registrato il: 08/04/2020
Età: 37
Utente Junior
2013
OFFLINE
10/04/2020 08:23

Grazie, per la soluzione e per il tuo tempo.

Devo segnarla io come chiusa la discussione?
[Modificato da bubi1987 10/04/2020 08:24]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Configuratore, possibile con excel? (15 messaggi, agg.: 20/10/2017 16:20)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:23. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com