Rob tiene le statistiche su ogni lavoro che completa ogni giorno. Ad esempio, tiene traccia del numero esatto di ore e minuti trascorsi su ogni lavoro inserendo un’ora di inizio (colonna B) e un’ora di fine (colonna C) per ogni lavoro nel formato: 16/05/11 11:25 am. In una colonna separata (colonna G) ha la data per ogni giorno del mese. A destra di ogni data (nella colonna H) vuole mostrare quanti lavori ha completato in ciascuna delle calendar date. Rob si chiede quale formula userebbe per calcolare questo conteggio.

Questo compito non è così facile come potrebbe sembrare all’inizio. Il motivo è dovuto al modo in cui vengono memorizzati gli orari di inizio e di fine.

La colonna B contiene sia la data che l’ora di inizio nella stessa colonna, nel formato “16/05/11 11:25” e la colonna C contiene sia la data che l’ora di fine nello stesso formato. Potresti pensare di poter usare la funzione CONTA.SE nella colonna G, in questo modo:

=COUNTIF(C$2:C$1000,G2)

Tuttavia, non funzionerà. Il motivo è semplice: la colonna G (cella G2, in questo caso) contiene una data, senza ora. Ad esempio, potrebbe contenere la data 05/16/11. Quando questo viene confrontato con la cella C2, che potrebbe contenere 05/16/11 11:25 am, non sono la stessa cosa. Ricorda che Excel sta facendo il confronto in base al numero di serie di data e ora memorizzato in ogni cella. Dati i valori di esempio appena menzionati, la cella G2 conterrebbe un numero di serie di 39217 e la cella C2 conterrebbe un numero di serie di 39217.47569. Poiché questi due valori non sono uguali, CONTA.SE non li considera uguali.

Ovviamente una soluzione sarebbe quella di aggiungere un’altra colonna che contenga solo le date di fine di ogni lavoro, senza orario. Quindi potresti utilizzare la funzione CONTA.SE nella formula poiché confronteresti “mele con mele”, per così dire. Ma esiste una soluzione che non richiede l’utilizzo di un risultato intermedio in una nuova colonna. Si tratta di assicurarsi che il valore intero di ciò che è nella colonna C sia confrontato con le date memorizzate nella colonna G. Questo può essere fatto usando la funzione SUMPRODUCT, in questo modo:

=SUMPRODUCT((INT(C$2:C$1000)=G2)*1)

Il numero intero di ciascuno dei valori nell’intervallo C2: C1000 viene confrontato con la data in G2, fornendo una matrice di valori True e False. Moltiplicando ciascuno di questi per 1 si trasforma rispettivamente i valori True e False in valori 1 e 0. La formula quindi somma questi prodotti, dando il conteggio desiderato.

Se preferisci, puoi anche utilizzare la seguente formula, che esegue essenzialmente la stessa operazione utilizzando SUMPRODUCT:

=SUMPRODUCT(--(INT(C$2:C$1000)=G2))

Uno dei vantaggi dell’utilizzo della funzione SUMPRODUCT per determinare un risultato è che non è necessario utilizzare una formula di matrice. Alcune persone, tuttavia, preferiscono utilizzare le formule di matrice. Se ti piace usarli, puoi usare uno dei seguenti:

=COUNT(IF(INT(C$2:C$1000)=INT(G2),1,FALSE))

=SUM(IF(ROUND(C$2:C$1000,0)=G2,1,0))

Ricorda che le formule di matrice devono essere inserite in una cella utilizzando Ctrl + Maiusc + Invio.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (10421) si applica a Microsoft Excel 97, 2000, 2002 e 2003.

Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: