![](https://cdn.wiki-base.com/5893995/excel_formula_get_first_entry_by_month_and_year__2.png.webp)
Formula generica
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(A1,"mmyy"),0)))
Sommario
Per cercare la prima voce in una tabella per mese e anno, è possibile utilizzare una formula di matrice basata sulle funzioni INDICE, CONFRONTA e TESTO.
la funzione CERCA con la funzione TESTO. Nell'esempio mostrato, la formula in F5 è:
=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy"),0))
dove "voce" è l'intervallo denominato C5: C13, "data" è l'intervallo denominato B5: B13 ed E5 contiene una data valida.
Questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO.
Spiegazione
Nota: i valori in E5: E7 sono date effettive, formattate con il formato numerico personalizzato "mmyy".
Lavorando dall'interno verso l'esterno, l'espressione:
MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy")
utilizza la funzione TEXT per generare un array di stringhe nel formato "mmyy":
("0117"; "0117"; "0117"; "0217"; "0217"; "0217"; "0317"; "0317"; "0317")
che vengono confrontati una singola stringa in base al valore in E5, "0117". Il risultato è una matrice di valori VERO / FALSO:
(TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE)
che vengono inseriti nella funzione MATCH come array di ricerca, con un valore di ricerca TRUE e un tipo di corrispondenza zero per la corrispondenza esatta. Nella modalità di corrispondenza esatta, la funzione CONFRONTA restituisce la posizione del primo VERO nella matrice, che è 1 nella formula in F5. Questa posizione va in INDICE come numero di riga, con un array basato sulla "voce" dell'intervallo denominato:
=INDEX(entry,1)
Indice restituisce l'elemento all'interno della voce nella posizione specificata.
Nota: se non viene trovata una voce per un determinato mese e anno, questa formula restituirà # N / D.
Prima voce basata sulla data odierna
Per ottenere la prima voce per un determinato mese e anno in base alla data odierna, è possibile adattare la formula per utilizzare la funzione OGGI invece del valore in E5:
(=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(TODAY(),"mmyy"),0)))