Come posso ottenere il trimestre dell'anno da una data?


8

In Excel, come posso ottenere il trimestre dell'anno da una data, usando una formula del foglio di lavoro? Ho una colonna con date che durano più anni.

  • Da gennaio 01 a marzo 31 = Q1
  • Dal 01 aprile al 30 giugno = Q2
  • eccetera...

Domanda bonus: come posso spostare il trimestre in modo che il primo trimestre sia aprile-giugno (gennaio-marzo sarebbe il quarto trimestre).

Risposte:


7

A seconda di come hai formattato il valore della data, Excel può automaticamente convertirlo nel "codice della data". questo è il numero di giorni dal 1 ° gennaio 1900 (codice data 1). Questo numero viene quindi utilizzato dalle diverse funzioni Data. Ecco una formula suggerita per una semplice analisi dei quarti.

= ROUNDUP (MESE (A1) / 3,0)

Questo ti darà solo il numero del quarto. è quindi possibile utilizzare CONCATENATE per aggiungere testo.

Ecco un ottimo tutorial con molti esempi:

http://www.cpearson.com/excel/DateTimeWS.htm

[MODIFICARE]

Come affermato da @hyperslug, un modo migliore per farlo è utilizzare quanto segue:

= CONCATENA ( "Q", ARROTONDA.PER.ECC (MONTH (data (anno (A1), MESE (A1) -3, DAY (A1))) / 3,0))

Questo metodo sposta la data avanti o indietro prima di ottenere il valore di un mese prima di dividere per 3. È possibile controllare il mese in cui inizia il trimestre modificando la sezione "Mese (A1) -3".

  • Data di inizio dell'uso di gennaio: "Mese (A1)"
  • Data di inizio dell'uso di aprile: "Mese (A1) -3"
  • Data di inizio dell'uso di settembre: "Mese (A1) +4"

È possibile utilizzare sia l'aggiunta che la sottrazione. Non è intuitivo, ma l'uso della sottrazione sposta il quarto iniziale in avanti (-1 è febbraio) e l'aggiunta lo sposta indietro (+1 è dicembre).

[/MODIFICARE]


[EDIT] Nota: questo metodo funziona, ma non è elegante come il metodo sopra.

Dopo aver giocato un po ', ho trovato il modo di rispondere alla tua domanda bonus. È possibile utilizzare le istruzioni IF per restituire un valore (testo / int) in base al mese. Devi solo capire quali mesi sono associati a quale trimestre.

= SE (E (MESI (A1)> = 4, MESE (A1) <7), "Q1", SE (E (MESI (A1)> = 7, MESE (A1) <10), "Q2", IF (E (MESE (A1)> = 10), "Q3", SE (E (MESE (A1)> = 1, MESE (A1) <4), "Q4"))))

È un'equazione densa che utilizza una combinazione di funzioni "IF", "AND" e "MONTH". Modificando i valori del mese (all'interno delle istruzioni AND), è possibile controllare ulteriormente quale valore viene restituito. Ho usato stringhe di testo, ma potresti modificarle facilmente in base alle tue esigenze.

[/MODIFICARE]

Spero che sia di aiuto


Grazie mille - usalo subito!
mtone,

1
Oppure=CONCATENATE("Q",ROUNDUP(MONTH(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)))/3,0))
hyperslug il

Whoa @hyperslug, questo è un modo molto migliore per farlo. Per modificare il mese iniziale del 1 ° trimestre è sufficiente aggiungere o sottrarre dal primo calcolo dei dati "Mese (A1) -3". Sono troppo abituato a lavorare con le istruzioni IF / TEN.
Doltknuckle,

2

Risposta bonus:

=MOD(INT((MONTH(A1)-1)/3)-1,4)+1

1

Questo dovrebbe essere più efficiente:

=CONCATENATE("Q", INT(MONTH(A1)/4) + 1)

2
Più efficiente di cosa? Perché fai questa affermazione?
Ƭᴇcʜιᴇ007,

Esistono meno calcoli (conversione della data, ecc.), Il numero di parametri viene mantenuto al livello minimo ed è più breve. Tuttavia, dovrei usare INT invece di FLOOR. Lo proverò per primo.
David,

funziona, ho aggiornato la risposta.
David,

0

La seguente formula dovrebbe funzionare:

=IF(OR(MONTH(A1)=1,MONTH(A1)=2,MONTH(A1)=3),"Q1",IF(OR(MONTH(A1)=4,MONTH(A1)=5,MONTH(A1)=6),"Q2",IF(OR(MONTH(A1)=7,MONTH(A1)=8,MONTH(A1)=9),"Q3",IF(OR(MONTH(A1)=10,MONTH(A1)=11,MONTH(A1)=12),"Q4",""))))

In bocca al lupo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.