Sto tentando di migrare dei fogli che usavo con Excel e Google Sheets in libreoffice ma ho un problema con la formula FILTRO.
Ho creato un foglio per gestire preventivi ai clienti; in un foglio ho inserito le intestazioni identificate da un valore ID, in un altro foglio ho una tabella con le righe del preventivo; in un terzo foglio voglio che, inserendo un ID in una cella, mi si compili con la intestazione e le righe del preventivo in modo che sia stampabile.
Non ho avuto problemi in Excel e Google ma con Libreoffice non ne vengo fuori con la funziona FILTRO.
Le righe degli articoli sono varie e, per ogni intestazione diverse: ho quindi aggiunto la formula =FILTRO($prevRighe.C:C;$prevRighe.A:A=M1;"(non trovato)")
in modo che cerchi in C:C tutte le righe che hanno in A:A il valore in M1 solo che la prima volta che inserisco un ID, per esempio, mi trova tre righe; se cambio ID per un preventivo che dovrebbe avere 5 righe mi mostgrerà invece solo 3 righe, come se al primo utilizzo la formula si autoespandesse per un tot di righe e lì si fermasse.
Se infatti al primo utilizzo deve filtrare 5 righe le filtra, e poi anche 3, ma se deve filtrarne poi 6 non lo fa filtra solo 5 righe.
Ho pensato che probabilmente devo estendere io il campo di attuazione della formula quindi ho selezionato una decina di celle (difficile faccia preventivi più lunghi) e ho scritto la formula cliccando poi SHIFT+CTRL+ENTER per scriverla in tutte le celle: ora funziona, ma nelle celle vuote mi scrive #N/D. Ho modificato la formula inserendo anche se.errore quindi SE.ERRORE(FILTRO($prevRighe.C:C;$prevRighe.A:A=M1;"(non trovato)");"/")
ma non funziona.
A parte lo strano comportamento della funzione filtro (in Excel e Google si auto-amplia a seconda dell’ampiezza del risultato del filtro), ma come faccio a non avere #N/D?
Ho aggiunto un file di esempio con tre esempi.
Esempio 1: quando ho scritto la formula in F2 ho scritto “10”, un valore che non c’è nella colonna ID, quindi la formula si è espansa solo in una riga, se si prova a inserire un altro id restituirà sempre solo un valore.
Esempio 2: ho scritto la formula selezionando tre righe e premendo CTRL+SHIFT+ENTER quindi la formula si è espansa in tre righe, ma se metto un id che deve restituire più valori non il risultato sarà sempre solo un massimo di tre valori
Esempio 3: ho inserito la formula in sei righe e inserendo SE. ERRORE, come si vede quando i risultati sono meno di sei l’errore #N/D c’è comunque.
In pratica la formula filtro non si auto espande, si espande solo nel momento in cui la si scrive per il numero di righe necessarie in quel momento e quel range di espansione resta anche in seguito.
Grazie in anticipo a chi mi svela l’arcano
Prova filtro.ods (14.5 KB)