Condividi tramite

Utilizzo della funzione FILTRO annidato

Anonimo
2024-01-27T11:05:12+00:00

Buongiorno,

vorrei capire come annidare la funzione FILTRO in altra funzione FILTRO.

in altri termini, ho una tabella del genere:

ID parametro_1 parametro_2
1 10 C
1 -10 P
2 15 P
2 P

è un esempio di tabella contabile, in cui ID è il numero di scrittura, parametro_1 è l'importo e parametro_2 è il conto.

Nell'esempio, la scrittura 1 ha due righe, di cui una con parametro_2 C e l'altra P.

La seconda scrittura, invece, ha parametro_2 sempre P.

Come risultato della funzione FILTRO vorrei questo:

ID parametro_1 parametro_2
1 10 C
1 -10 P

ovvero il riepilogo degli ID in cui, in almeno un valore della colonna parametro_2 sia presente C.

Avevo pensato, quindi di utilizzare la funzione filtro così:

=FILTRO(tabella; tabella[ID]=FILTRO(tabella[ID];tabella[parametro_2]="C")

Ho provato anche a dividere i due filtri:

  1. mi creo l'elenco degli ID con il parametro_2 desiderato:

=FILTRO(tabella[ID]; tabella[parametro_2]="C")

generandomi in cella A1 l'array degli ID filtrati

1
1
  1. mi creo la tabella degli ID richiamando l'array del punto 1

=FILTRO(tabella; tabella[ID]=A1#)

chiaramente il risultato è errore...

Come potrei risolvere?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

5 risposte

Ordina per: Più utili
  1. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2024-01-31T09:11:49+00:00

    ho provato ad inserire la formula (la seconda, con la definizione della variabile) con la tabella di esempio e funziona.

    Bene, significa che era applicabile al tuo esempio.

    Ora mi blocco se la applico al mio dataset

    ...

    Dove sto sbagliando?

    ...a non condividere il file di esempio, non costringermi a ricrearlo con la possibilità che non riesca a replicare la tua problematica.

    Pubblica il link al file che potresti mettere su OneDrive,

    grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2024-01-31T09:05:28+00:00

    Ciao,

    ho provato ad inserire la formula (la seconda, con la definizione della variabile) con la tabella di esempio e funziona.

    Ora mi blocco se la applico al mio dataset che è formato da:

    • Tabella "Brogliaccio"

    • Tabella "Piano dei Conti"

    (una tabella in cui vengono riepilogati univocamente i codici del piano dei conti (codcon della tabella brogliaccio). Sono salvati nella cartella PdC nell'intervallo E2:E266

    Lo scopo è quello di riepilogare con la funzione filtro tutte le scritture (Brogliaccio[nummov]) contenenti in almeno una riga un conto specifico (Brogliaccio[codcon])

    Esempio, voglio il riepilogo delle scritture in cui almeno un movimento (riga) ha definito il conto 50010011:

    ho provato con questa formula:
    =LET(param2;PdC!E2:E266;c;COLONNE(param2);FILTRO(Brogliaccio;MATR.PRODOTTO(--VAL.NUMERO(CONFRONTA(Brogliaccio[nummov]&param2;Brogliaccio[nummov]&Brogliaccio[codcon];0));SEQUENZA(c;;;0))="50010011";""))

    param2 è quindi l'elenco dei conti.

    Il risultato è una matrice vuota..

    Dove sto sbagliando?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2024-01-27T20:28:14+00:00

    Secondo me la strada è diversa, una delle tante:
    =FILTRO(A2:C6;VAL.NUMERO(CONFRONTA(A2:A6&"c";A2:A6&C2:C6;0))*VAL.NUMERO(CONFRONTA(A2:A6&"p";A2:A6&C2:C6;0));"")

    o se vuoi renderla dinamica in base al parametro 2, definendolo all'inizio o prendendolo da un intervallo di celle:

    =LET(param2;{"c""p"};c;COLONNE(param2);FILTRO(A2:C6;MATR.PRODOTTO(--VAL.NUMERO(CONFRONTA(A2:A6&param2;A2:A6&C2:C6;0));SEQUENZA(c;;;0))=c;""))

    in grassetto i valori del parametro 2, che volendo possono stare in due o più celle da mettere in colonna e non in riga.

    Se non fossero chiare, chiedi pure,

    ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2024-01-27T16:01:12+00:00

    Ciao Sola,

    ho provato la formula che mi hai suggerito ma restituisce un errore su excel.

    Questa è la formula inserita:

    =FILTRO(FILTRO(A2:C5; C2:C5="C");{1;1;1})

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2024-01-27T14:10:10+00:00

    Ciao Giorgio,

    Grazie per averci contattato,

    La funzione FILTER nidificata consente di filtrare un intervallo di dati in base a più criteri e di selezionare un sottoinsieme di colonne da visualizzare. La sintassi della funzione FILTER nidificata è:

    =FILTRO(FILTRO(intervallo; condizione1); {1;0;1})

    dove range è il dato che si desidera filtrare, condition1 è il primo criterio da applicare e {1,0,1} è una matrice che specifica le colonne da includere o escludere. Un 1 indica l'inclusione della colonna e uno 0 indica l'esclusione della colonna.

    Nell'esempio si desidera filtrare i dati in base a due criteri: ID e parametro_2. Si desidera inoltre visualizzare tutte e tre le colonne. Pertanto, è possibile utilizzare la seguente formula:

    =FILTRO(FILTRO(A2:C7; C2:C7="C"), {1;1;1})

    Questa formula restituirà il seguente risultato:

    Documento d'identità PARAMETRO_1 PARAMETRO_2 1 10 C 1 -10 P

    La funzione FILTER interna filtra i dati in A2:C7 per restituire solo le righe in cui parametro_2 è "C". La funzione FILTER esterna filtra il risultato in modo da includere tutte e tre le colonne.

    È inoltre possibile utilizzare altri operatori logici, ad esempio AND, OR e NOT, per creare criteri più complessi. Ad esempio, se si desidera filtrare i dati in modo da includere solo le righe in cui parametro_1 è maggiore di 10 e parametro_2 non è "P", è possibile utilizzare questa formula:

    =FILTRO(FILTRO(A2:C7, (B2:B7>10) * NON(C2:C7="P")), {1;1,1})

    Questa formula restituirà il seguente risultato:

    Documento d'identità PARAMETRO_1 PARAMETRO_2 1 10 C

    Fammi sapere se questo aiuta o se hai bisogno di ulteriore assistenza.

    Saluti Sola

    "Restituisci alla Comunità. Aiuta la prossima persona che ha questo problema indicando se questa risposta ha risolto il tuo problema. Fai clic su Sì o No di seguito. "

    Si prega di notare che questo è un forum da utente a utente, siamo utenti che aiutano altri utenti, non siamo dipendenti Microsoft né siamo agenti Microsoft.

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento