Usando Microsoft Excel, contare il numero di celle all'interno di un intervallo di date può sembrare complesso, in particolare quando non consideriamo la fine del mese ma i valori in mezzo al calendario. Ti è mai successo di voler contare le celle fra due intervalli, magari in anni diversi?
In questa guida vediamo numerosi casi pratici che puoi anche scaricare dal file dedicato!
Come contare le celle di un intervallo date definito su Excel
Ecco come fare, con due semplici funzioni combinate assieme.
Formula generale:
CONTA.PIÙ.SE([intervallo_date];">="&DATA([anno;mese;giorno]);[intervallo_date];"<="&DATA([anno;mese;giorno]))
Primo esempio: abbiamo una serie di date nell'intervallo C3:C21 e vogliamo sapere quali siano nell'anno 2017. Consideriamo quindi:
- [intervallo_date] = C3:C21
- Primo [anno;mese;giorno]: 2017;1;1 (essendo il primo giorno da considerare)
- Secondo [anno;mese;giorno]: 2017;12;31 (essendo l'ultimo giorno da considerare)
Formula pratica:
CONTA.PIÙ.SE(C3:C21;">="&DATA(2017;1;1);C3:C21;"<="&DATA(2017;12;31))
Secondo esempio: abbiamo una serie di date nell'intervallo C3:C21 e vogliamo sapere quali siano dal primo Febbraio al primo Ottobre 2016. Consideriamo quindi:
- [intervallo_date] = C3:C21
- Primo [anno;mese;giorno]: 2016;2;1 (essendo il primo giorno da considerare)
- Secondo [anno;mese;giorno]: 2016;10;1 (essendo l'ultimo giorno da considerare)
Formula pratica:
CONTA.PIÙ.SE(C3:C21;">="&DATA(2016;2;1);C3:C21;"<="&DATA(2016;10;1))
Come contare le celle in Excel con date in diverse colonne
Vediamo adesso come contare le celle di Excel che hanno delle date e rispettano due condizioni. In questo caso vogliamo considerare la nostra tabella chiamata TBL_DIPENDENTI che ha tre diverse colonne:
- Nome del dipendente
- Data di entrata
- Data di uscita
Vogliamo sapere, a una certa data, quanti fra i dipendenti siano attivi in organico.
Vediamo la formula che ci serve:
=CONTA.PIÙ.SE(TBL_DIPENDENTI[ENTRATA];"<="&F3; TBL_DIPENDENTI[USCITA];">="&F3)
F3 è la data che ci interessa, in questo caso il 31/12/2021. Vogliamo contare tutte le righe della tabella quando la data di entrata è minore o uguale a 31/12/2021 E la data di uscita è uguale o superiore a F3. In questo modo inseriamo le due condizioni e otteniamo il valore 7, che sono i dipendenti attivi. Il valore appare come "7 Dipendenti" solo perchè c'è un formato personalizzato, puoi rimuoverlo cliccando sulla cella F5 > Home > Numeri, da qui puoi scegliere il formato che preferisci.
Vediamo anche come ottenere i nomi dei dipendenti, con una formula che funziona solo con le ultime versioni (365):
La formula ricalca la logica precedente utilizzata per il conteggio:
=FILTRO(TBL_DIPENDENTI[NOME];
(TBL_DIPENDENTI[ENTRATA]<=F3)* (TBL_DIPENDENTI[USCITA]>=F3);"")
Vogliamo restituire esclusivamente i nomi quando la data di entrata è inferiore o uguale a F3 E la data di uscita è uguale o superiore a F3. Questo viene soddisfatto dalla moltiplicazione con * che significa che entrambe le condizioni devono essere soddisfatte. Se così non è, apparirà il valore vuoto.
Come contare le celle di un dato mese su Excel
Vediamo anche un caso per contare le celle che appartengono a un dato mese, seguendo una condizione e senza creare ulteriori colonne di supporto.
Prima di tutto dobbiamo inserire nella cella E4 e successive il mese di inizio che ci interessa, quindi in questo caso da Gennaio 2021 in poi. Per visualizzare come "gen-21" basta modificare il formato della cella dalla schermata Home -> Numeri.
Vediamo ora invece la formula:
=CONTA.PIÙ.SE(C:C;$F$2;B:B;">="&E4;B:B;"<="&FINE.MESE(E4;0))
In questo caso, il CONTA.PIÙ.SE considera inizialmente solo i valori della colonna C che abbiano F2 (ovvero X). Successivamente, considera la colonna B prima prendendo solo le celle con valore maggiore o uguale a E4 (che è il 01/01/2021) per poi prendere esclusivamente le celle minori o uguali del FINE.MESE sempre di E4 (ovvero 31/01/2021). Questo ci permette di velocizzare i calcoli, per non scrivere ogni volta l'ultimo giorno del mese.
Come contare le celle comprese in un periodo su Excel senza considerare l'anno
In questo caso vogliamo contare il numero di celle che siano in un intervallo di date su Excel, ma senza considerare l'anno. Quindi se consideriamo 21/07 - 21/09, vogliamo contare tutte le celle in questo range, non solo quelle di uno specifico anno. La soluzione proposta funziona solo con Excel 365 - se non hai questa versione, puoi comunque utilizzare la versione online di Excel.
Questo caso è particolare perchè per Excel le date sono numeri, quindi bisogna fare qualche passaggio aggiuntivo per replicare la logica tipo "Prendi le date dal 21/07 al 31/07, poi l'intero mese di Agosto, poi le date dal 01/09 al 21/09".
Creiamo una tabella chiamata TBL_TEST_DATA che presenta:
- DATA: tutte le nostre date
- FATTURATO: un valore da poter sommare, giusto per fare un test
- MESE: il valore mensile per singola data
- GIORNO: il valore giornaliero per singola data
- INTERVALLO: qui inseriremo la formula per calcolare gli intervalli
Vediamo le singole formule.
=MESE([@DATA]) e =GIORNO([@DATA])
Queste due formule sono piuttosto semplici. Stiamo estraendo, per ogni riga della tabella, il valore del mese e del giorno. Vedi la chiocciola @ perchè indica che stiamo lavorando sulla stessa riga dei nostri dati iniziali. Questo assicura coerenza al nostro file.
Ora arriviamo al cuore del nostro calcolo. Prendiamo le seguenti celle, come riferimento:
- J3 è il mese di partenza, mentre J4 è il giorno di partenza. Quindi avremo 7 e 21, in questo caso: vogliamo tutte le date dal 21 di Luglio al 31 di Luglio
- K3 è il mese finale, mentre K4 è il giorno finale. Quindi avremo 9 e 21, in questo caso: vogliamo tutte le date dal 1 di Settembre al 21 di Settembre
Vediamo come trovare questi valori:
=SE(O(
([@MESE]=$J$3)*($J$4<=[@GIORNO]);
([@MESE]=$K$3)*($K$4>=[@GIORNO]);
LET(mesi;SEQUENZA($K$3-$J$3-1;1;$J$3+1;1);VAL.NUMERO(RICERCA([@MESE];mesi))));
"OK";
"NO")
Utilizziamo SE(O per definire tre diversi casi che ci possono andare bene: parte finale del primo mese, parte iniziale del mese finale, mese intero in questo intervallo.
La prima condizione con J3 e J4 verifica se il mese della riga corrente è uguale al mese in cella J3 e se il giorno della riga corrente è maggiore o uguale al giorno in cella J4. La seconda verifica se il mese della riga corrente è uguale al mese in cella K3 e se il giorno della riga corrente è minore o uguale al giorno in cella K4. Abbiamo quindi risolto il tema dei mesi potenzialmente "parziali", ma ci serve la terza condizione:
- LET dichiara che il calcolo successivo si chiamerà mesi
- SEQUENZA sta utilizzando il mese finale e quello iniziale per creare una sequenza di valori. Dato che parte da J3+1, ovvero il mese iniziale + 1, avremo una sequenza di mesi interi che ci interessa considerare
- VAL.NUMERO(RICERCA verifica che il mese della riga corrente sia compreso nella nostra sequenza. Se avessimo 7 oppure 8, questi due valori sarebbero considerati
A questo punto, vediamo che avremo OK se una delle tre condizioni è corretta, mentre avremo NO se nessuna di queste si verifica.
A questo punto possiamo trovare facilmente il totale di celle che sono in questo intervallo:
=CONTA.SE(TBL_TEST_DATA[INTERVALLO];"OK")
In questo modo contiamo tutte le celle della nostra tabella che presentano il valore OK nella nostra colonna chiamata INTERVALLO.
Ringrazio Lorenzo nei commenti per la domanda, la soluzione è stata decisamente più complessa di quanto avessi immaginato!
Sono un formatore e consulente esperto nell’uso e nell’insegnamento di Microsoft Excel.
Negli ultimi 3 anni ho tenuto corsi presso realtà in multinazionali come Aruba, Bridor, IMI Orton, Primadonna e SISAL, oltre a PMI e startup di diverso genere.
Realizzo corsi di formazione Excel dedicati per aziende, supporto professionisti 1:1 a distanza con call mirate e collaboro con aziende offrendo servizi di consulenza quali creazione di business plan, dashboard di vendita e non solo.
Vuoi saperne di più? Prenota una call gratuita di 15′!
2020-10-07 chiedo aiuto !!! ho una colonna con tante date diverse, e vorrei avere il totale di quante righe con la stessa data che seleziono su una cella dove scrivo la data , che mi deve cercare nella colonna e dirmi il totale
1-colonna A1:A100 CI SONO TANTE DATE
2- Colonna esempio D1 ( 2020-01-20) SCRIVO LA DATA DA CERCARE E CONTARE
3-Colonna esempio E1 VEDERE IL TOTALE RIGHE CON QUESTA DATA =CONTA.SE(A1:A100;=D1)
ricevo errore GRAZIE
Ciao Massimo,
grazie per la fiducia - hai provato a mettere =CONTA.SE(A1:A100;D1) togliendo l'uguale? Così dovrebbe funzionare!
A presto
Marco
Se volessi efettuare una ricerca simile ma con un range di date imputate in due diverse celle, come potrei impostare. Ho trovato alcuni esempi con se.conta.piu ma con valori già impostati mentre a me occorre che vengono letti da due celle.
1 intervallo di date da contare
A1:A100
2 cella data 1 F1
3 cella date 2. G1
4 della risultato F4
Ciao Antonio,
ottimo spunto, potrei aggiungerlo nell'articolo in effetti.
Nel tuo caso, posto che devono essere codificate come date sia l'intervallo A1:A100 sia le due celle F1 e G1 (con F1 antecedente):
= CONTA.PIÙ.SE(A1:A100;">="&F1;A1:A100;"<="&G1) Devi ricordarti di inserire ">="& altrimenti non funzionerebbe, è una prassi quando si inseriscono celle per creare intervalli specifici.
Spero ti sia utile!
Marco
Buongiorno Marco,
ho un problema analogo a quello illustrato ma non ne vengo fuori ! Vedo di spiegartelo :
*** nella colonna A ho in sequenza i giorni dell'anno uno sotto l'altro : 1/1/2021,2/1/2021,3/1/2021, ....
***nella colonna B potrei riportare, per ciascun giorno, una X perchè mi sta a significare che quel giorno si è verificato un evento. Quindi potrei avere una X per il 1° gennaio, poi nulla per il 2 gennaio, nulla ancora per il 3, magari una X per il 4, e così via
Problema = come utilizzo la funzione per contare solo le celle di ogni singolo mese ? ossia totale X mese gennaio, totale X mese febbraio .... ?
senza però dover imputare ogni volta l'inizio e la fine del mese, quindi >1/1/2021 & < 31/1/221
non c'è un modo di scrivere semplicemente "gennaio" ? febbraio ?.
Il comando Mese(..) non mi funziona.
Grazie ! Nicola
Ciao Nicola,
grazie per lo spunto, ho aggiunto all'articolo la soluzione alla tua domanda, puoi scaricare il file collegato con il caso specifico che mi citavi.
Spero ti sia utile!
A presto,
Marco
Ciao! Innanzitutto grazie per la guida!
Io ho questo caso ed applicando la tua formula non mi funziona, mi sai dire se sbaglio e cosa?
Ho una serie di colonne con inserite delle date (date nelle quali una persona ha fatto il verbale). Devo calcolare quante volte ciascuna persona ha fatto il verbale in un anno, ho provato ad applicare la tua formula indicando
=CONTA.PIÙ.SE(D5:I5;”>=”&DATA(2021;1;1);D5:I5;”<=”&DATA(2021;12;31))
dove le colonne da D a I sono quelle dove inserisco le date per ciascuna persona e ogni riga è una persona.
Giulia
Ciao Giulia,
grazie per la domanda!
Sicura che siano delle date quelle che hai inserito in D5:I5? Puoi verificare da Home > Numeri, se non appare "Data" nel campo del formato vuol dire che devono essere sistemate.
Immagino che l'esempio fosse sulla riga 5 e poi fosse "tirata giù" la formula, ho fatto una prova al volo e funziona, quale versione di Excel utilizzi?
A presto,
Marco
Buongiorno,
sto incontrando difficoltà nell'impostare la corretta funzione per contare quante volte il criterio X è presente all'interno di un intervallo temporale.
Mi spiego meglio:
voglio contare quante volte il criterio X è presente prima nell'intervallo 1-07-2021/15-07-2021 e successivamente quante volte nell'intervallo 1-07-2021/20-07-2021.
in colonna A ho inserito le date in formato Data, in colonna B il criterio X ed impostando la funzione =conta.più.se(B:B;"X";A:A;"<="&15/07/2021) in realtà conta tutto l'intervallo inserito nel db.
grazie per il supporto,
Vale
Ciao Valentina,
vediamo se riusciamo a risolvere così!
Dato che inserisci i valori a mano e non da una cella (ti consiglio caldamente di inserire i valori della data in una cella, così puoi creare un modello dinamico), la formula sarebbe:
=CONTA.PIÙ.SE(B:B,"X",A:A,">=01/07/2021",A:A,"<=15/07/2021") In sostanza la parte B rimane invariata, ma per le date devi inserire entrambe le condizioni per eseguire il calcolo correttamente - viceversa, prenderebbe anche i valori di Giugno o Maggio, ad esempio. Spero ti sia utile! A presto, Marco
Ciao Marco grazie per tutti i consigli che ci dai, io ho un problema devo contare un intervallo di date in due colonne differenti per avere poi il risultato in una cella differente e non riesco .
Grazie per l’aiuto
Ciao Emilio,
grazie a te per il commento!
Non ho capito benissimo che cosa vorresti realizzare però, riesci a guidarmi un po' di più?
Ipotizziamo di avere:
- Prima data che ti interessa dell'intervallo (da quella data) nella cella A1
- Data finale (fino a quella data) nella cella B1
- Colonna della prima data nella colonna C
- Colonna della data finale nella colonna D
Verifica se con questa formula ti ritrovi:
=CONTA.PIÙ.SE(C:C;">="&A1;D:D;"<="&B1) In questo caso è maggiore uguale ad A1 e minore uguale a B1, ma penso possa fare al caso tuo! A presto, Marco
Buonasera,
avrei un quesito che aggiunge un grado di difficoltà all'esempio:
come faccio a contare tutte le date il cui giorno è il "X" del mese?
Per esempio per contare tutte le date il cui giorno del mese è il 3, ho provato con la seguente formula: =CONTA.SE(GIORNO(A1:A9);"=3")
Con l'aiuto dell'inserimento funzione, excel estrapola giustamente i valori richiesti ma la formula restituisce errore.
Grazie in anticipo
Ciao Silvio,
grazie per la domanda, interessante!
Dunque, in realtà con CONTA.SE sembra facile arrivare ad una soluzione ma in realtà non riusciresti a trovarla perchè non è particolarmente flessibile in questi contesti.
Ti suggerisco di utilizzare MATR.SOMMA.PRODOTTO, ad esempio:
=MATR.SOMMA.PRODOTTO(1*(GIORNO(A1:A9)=C9))
per poi modificarla come preferisci!
Spero di esserti stato di aiuto.
A presto,
Marco
Grazie Marco, mi sei stato utilissimo, con questa formula: =CONTA.PIÙ.SE(C:C;$F$2;B:B;”>=”&E4;B:B;”<=”&FINE.MESE(E4;0)),
da una paginata di eventi con relative date, sono riuscito a creare una tabella riepilogativa mensile. Saluti, Marco.
Ciao Marco,
mi fa molto piacere, grazie per il riscontro e per aver condiviso la formula (che magari può tornare utile anche ad altri)!
A presto,
Marco
Buongiorno, Marco.
Posto un intervallo di date a cavallo tra due mesi, mi servirebbe una formula che dividesse l'intervallo tra i due mesi, considerando solo i giorni lavorativi.
Es.
in C4 (data iniziale) 26/02/2022 : in D4(data finale) 04/03/2022 : in K4 (giorni lavorativi gennaio) 0 : in L4 (giorni lavorativi febbraio) 1 : in M4 (giorni lavorativi marzo) 4 : ecc.
Grazie mille per tutto
Ciao Stef,
grazie a te per la domanda - su Excel hai la funzione GIORNI.LAVORATIVI.TOT che ti permette di fare quello che dici, ma in questo caso richiede qualche passaggio intermedio.
Ti lascio qui un esempio per fare quello che dici, in sostanza devi creare diverse condizioni per gestire la prima e l'ultima data in modo che si possano poi contare i singoli valori.
Ho fatto qualche prova e dovrebbe funzionare correttamente, se poi ti servissero altri mesi ti basterebbe ampliare i mesi di riferimento inserendo sempre il primo giorno del mese.
Spero di esserti stato utile!
A presto,
Marco
Ciao, io ho un problema diverso fra tutti quelli esposti fin'ora.
Ho una riga suddivisa per tutti i mesi dell'anno (D1:NE1) che, per ciascuna cella, contiene un campo data giorno; sotto a ciascun giorno vorrei riempire delle celle (D2:NE2) con dei codici di presenza lavorativa (es. P). Il mio problema è quello di contare il totale delle "P" (dell'intera riga dell'anno) riferite unicamente ad una matrice di date specifiche.
Ciao Fabio,
grazie per la domanda!
Penso mi manchi qualche passaggio però, in D1:NE1 hai un valore tipo 01/01/2023?
Se poi sotto ci inserisci le P ti basterebbe fare così, ad esempio per calcolare tutte quelle uguali o oltre Luglio 2023:
=CONTA.PIÙ.SE(D1:NE1;">="&DATA(2023;7;1);D2:NE2;"P")
Per condizioni più complesse ti basterebbe modificare altre formule che trovi sulla guida, ma se hai bisogno fammi sapere.
Spero di esserti stato utile!
A presto,
Marco
Buongiorno,
grazie per i consigli e le porgo un quesito
devo contare i campi CC di un intervallo T34:NT34 tra il 01/01/2023 (messo nella cella T1 formato data) e la data odierna (messa in OZ1 come =OGGI() sempre in formato data)
questa è la formula e mi da 0.... dove sbaglio?
=CONTA.PIÙ.SE(T34:NT34;"CC";T34:NT34;">="&T1;T34:NT34;"<="&OZ1)
Ciao Marco,
grazie per la domanda!
Quello che non mi torna è che batti sempre su T34:NT34, i valori CC immagino siano da un'altra parte? Per il resto la seconda parte della formula, quella in grassetto, è corretta:
=CONTA.PIÙ.SE(T34:NT34;"CC";T34:NT34;">="&T1;T34:NT34;"<="&OZ1)
O forse sono io che non ho capito che cosa sia CC, in questo caso? Fammi sapere!
Spero di esserti stato utile!
A presto,
Marco
buongiorno marco,
avrei bisogno di una formula che mi conti su una riga quanti CC, DC e VC ci sono in un intervallo tra la prima cella(01/01/2023) ed oggi
grazie di tutte le info e saluti
Ciao Marco,
grazie a te per lo spunto!
Immaginiamo che:
- Le date siano in B:B
- I valori CC, DC e VC siano in alcune celle C:C
- CC, DC e VC siano inseriti nelle celle da J2 a L2
In questo caso la formula sarebbe:
=SOMMA(CONTA.PIÙ.SE(B:B;">="&DATA(2023;1;1);B:B;"<"&OGGI()+1;C:C;J2:L2)) Se non hai una delle ultime versioni di Excel, dovresti inserire la formula con CTRL+SHIFT+ENTER! Spero di esserti stato utile e a presto, Marco
Ciao, avrei il seguente problema. Ho una colonna di date, espresse in gg/mm/aaaa con anni diversi (2001-2002-2003, ecc...) Vorrei esprimere in una colonna di fianco se queste date rientrano in un intervallo di date senza anno, per es. se appartengono all'estate che va dal 21-7 al 21-9, ma senza anno. Tu come faresti? Grazie davvero
Ciao Lorenzo,
grazie per la domanda!
Ci ho pensato un po' e ora trovi sull'articolo una guida dedicata, è un caso molto interessante. In sostanza devi creare un sistema dal quale calcolare i mesi parziali e quelli interamente compresi, serve qualche formula più complessa del solito ma se scarichi il file lo vedi direttamente là, il procedimento è tortuoso ma efficace.
Spero di esserti stato utile!
A presto,
Marco
Ciao Marco,
ho provato ad applicare alcune formule che hai descritto sopra ma non riesco a risolvere il seguente problema:
In pratica devo sapere quante persone erano presenti all'interno di una struttura ad una certa data.
Esempio:
Mario Rossi entrato il 10/10/2021 ed uscito il 31/12/2022
Carlo Bianchi entrato il 20/01/2022 ed uscito il 07/05/2022
... e via dicendo
Se vorrei sapere al 31/12/2021 quante persone erano presenti all'interno della struttura quale formula dovrei usare?
Rimango in attesa di una tua cortese risposta, grazie
Massimiliano
Ciao Massimiliano,
grazie per la domanda!
Diciamo che per la risposta ti basta un'evoluzione del CONTA.PIÙ.SE che tenga conto delle due condizioni: lo trovi qui, ho messo proprio il tuo caso con qualche specifica in più > https://www.marcofilocamo.it/contare-celle-intervallo-date-Excel#intervallo_date_diverse_colonne
Spero di esserti stato utile!
A presto,
Marco