Jak mogę uzyskać kwartał od daty?

8

W programie Excel, w jaki sposób mogę uzyskać kwartał roku od daty przy użyciu formuły arkusza? Mam kolumnę z datami obejmującymi wiele lat.

  • 01.01 do 31.03 = Q1
  • 01 kwietnia do 30 czerwca = Q2
  • itp...

Pytanie dodatkowe: Jak mogę przesunąć kwartał, aby pierwszy kwartał przypadał na kwiecień-czerwiec (styczeń-marzec to czwarty kwartał).

mtone
źródło

Odpowiedzi:

7

W zależności od sposobu sformatowania wartości daty program Excel może automatycznie zakryć ją według „kodu daty”. jest to liczba dni od 1 stycznia 1900 roku (kod daty 1). Ten numer jest następnie wykorzystywany przez różne funkcje daty. Oto sugerowana formuła prostej analizy kwartalnej.

= ROUNDUP (MIESIĄC (A1) / 3,0)

To da ci tylko numer kwartału. następnie możesz użyć CONCATENATE, aby dodać tekst.

Oto świetny samouczek z wieloma przykładami:

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

[EDYTOWAĆ]

Jak stwierdził @hyperslug, lepszym sposobem na to jest użycie następujących poleceń:

= CONCATENATE („Q”, ROUNDUP (MONTH (DATE (YEAR (A1), MONTH (A1) -3, DAY (A1))) / 3,0))

Ta metoda przesuwa datę do przodu lub do tyłu przed uzyskaniem wartości miesiąca przed podzieleniem przez 3. Możesz kontrolować miesiąc, w którym zaczyna się kwartał, zmieniając sekcję „Miesiąc (A1) -3”.

  • Data rozpoczęcia stosowania w styczniu: „Miesiąc (A1)”
  • Data rozpoczęcia używania w kwietniu: „Miesiąc (A1) -3”
  • Data rozpoczęcia korzystania z września: „Miesiąc (A1) +4”

Można stosować dodawanie i odejmowanie. Jest to nieintuicyjne, ale przy użyciu odejmowania przesuwa początkowy kwartał do przodu (-1 to luty), a dodanie przesuwa go do tyłu (+1 to grudzień).

[/EDYTOWAĆ]


[EDYCJA] Uwaga: Ta metoda działa, ale nie jest tak elegancka jak powyższa metoda.

Po krótkiej zabawie znalazłem sposób, aby odpowiedzieć na Twoje pytanie bonusowe. Można użyć instrukcji JEŻELI, aby zwrócić wartość (tekst / int) na podstawie miesiąca. Musisz tylko dowiedzieć się, jakie miesiące są związane z danym kwartałem.

= JEŻELI (ORAZ (MIESIĄC (A1)> = 4, MIESIĄC (A1) <7), „Q1”, JEŻELI (ORAZ (MIESIĄC (A1)> = 7, MIESIĄC (A1) <10), „Q2”, JEŻELI (ORAZ (MIESIĄC (A1)> = 10), „Q3”, JEŻELI (ORAZ (MIESIĄC (A1)> = 1, MIESIĄC (A1) <4), „Q4”))))

To gęste równanie, które wykorzystuje kombinację funkcji „JEŻELI”, „ORAZ” i „MIESIĄC”. Modyfikując wartości miesiąca (wewnątrz instrukcji AND), możesz dalej kontrolować, która wartość jest zwracana. Użyłem ciągów tekstowych, ale możesz je łatwo zmodyfikować, aby dopasować do swoich potrzeb.

[/EDYTOWAĆ]

Mam nadzieję że to pomoże

Doltknuckle
źródło
Wielkie dzięki bardzo - korzystając z niego od razu!
mtone
1
Lub=CONCATENATE("Q",ROUNDUP(MONTH(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1)))/3,0))
hyperslug
Whoa @yperslug, to znacznie lepszy sposób na zrobienie tego. Wszystko, co musisz zrobić, aby zmienić miesiąc początkowy 1. kwartału, to dodać lub odjąć od pierwszego obliczenia danych „Miesiąc (A1) -3”. Jestem zbyt przyzwyczajony do pracy z instrukcjami IF / TEN.
Doltknuckle
2

Dodatkowa odpowiedź:

=MOD(INT((MONTH(A1)-1)/3)-1,4)+1
Toc
źródło
1

Powinno to być bardziej wydajne:

=CONCATENATE("Q", INT(MONTH(A1)/4) + 1)
David
źródło
2
Bardziej wydajny niż co? Dlaczego wysuwasz takie roszczenie?
Ƭᴇcʜιᴇ007
Obliczeń jest mniej (konwersja daty itp.), Liczba parametrów jest utrzymywana na minimalnym poziomie i jest krótsza. Chociaż powinienem używać INT zamiast FLOOR. Najpierw przetestuję.
David
to działa, zaktualizowałem odpowiedź.
David
0

Powinna działać następująca formuła:

=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",""))))

Powodzenia.

Titty George
źródło