Spis treści
Samouczek pokazuje, jak można wykorzystać nową funkcję SEQUENCE do szybkiego wygenerowania listy dat w Excelu i użyć funkcji Autowypełnianie do wypełnienia kolumny datami, dniami roboczymi, miesiącami lub latami.
Do niedawna istniał tylko jeden prosty sposób generowania dat w Excelu - funkcja Autouzupełnianie. Wprowadzenie nowej funkcji SEQUENCE z tablicą dynamiczną umożliwiło tworzenie serii dat również za pomocą formuły. Ten samouczek dogłębnie przygląda się obu metodom, abyś mógł wybrać tę, która najlepiej sprawdzi się w Twoim przypadku.
Jak wypełnić serię dat w programie Excel
Kiedy musisz wypełnić kolumnę datami w Excelu, najszybszym sposobem jest użycie funkcji Autowypełnianie.
Automatyczne wypełnianie serii dat w programie Excel
Wypełnienie kolumny lub wiersza datami, które inkrementują się o jeden dzień jest bardzo proste:
- W pierwszej komórce wpisz datę początkową.
- Zaznacz komórkę z datą początkową i przeciągnij uchwyt wypełnienia (mały zielony kwadrat w prawym dolnym rogu) w dół lub w prawo.
Excel natychmiast wygeneruje serię dat w takim samym formacie jak pierwsza data, którą wpisałeś ręcznie.
Wypełnij kolumnę dniami tygodnia, miesiącami lub latami
Aby utworzyć serię dni roboczych, miesięcy lub lat, wykonaj jedną z następujących czynności:
- Wypełnij kolumnę kolejnymi datami w sposób opisany powyżej. Następnie kliknij przycisk Opcje autouzupełniania i wybrać żądaną opcję, powiedzmy Miesiące wypełnienia :
- Możesz też wpisać pierwszą datę, kliknąć prawym przyciskiem myszy uchwyt wypełnienia, przytrzymać i przeciągnąć przez tyle komórek, ile potrzeba. Po zwolnieniu przycisku myszy pojawi się menu kontekstowe pozwalające wybrać potrzebną opcję, Rok wypełnienia w naszym przypadku:
Wypełnij serię dat z inkrementacją o N dni
Aby automatycznie wygenerować serię dni, dni tygodnia, miesięcy lub lat za pomocą konkretny krok to jest to, co musisz zrobić:
- W pierwszej komórce wpisz datę początkową.
- Zaznacz tę komórkę, kliknij prawym przyciskiem myszy uchwyt wypełnienia, przeciągnij go przez tyle komórek, ile potrzeba, a następnie zwolnij.
- W menu podręcznym wybierz Seria (ostatnia pozycja).
- W Seria w oknie dialogowym, wybierz Data jednostka zainteresowania i ustawić Wartość kroku .
- Kliknij przycisk OK.
Więcej przykładów znajdziesz na stronie Jak wstawiać i autouzupełniać daty w Excelu.
Jak zrobić sekwencję dat w Excelu za pomocą formuły
W jednym z poprzednich tutoriali przyjrzeliśmy się, jak wykorzystać nową funkcję dynamicznej tablicy SEQUENCE do generowania sekwencji liczb. Ponieważ wewnętrznie w Excelu daty są przechowywane jako numery seryjne, funkcja ta może z łatwością wygenerować również serię dat. Wszystko, co musisz zrobić, to poprawnie skonfigurować argumenty, jak wyjaśniono w poniższych przykładach.
Uwaga. Wszystkie omawiane tu formuły działają tylko w najnowszych wersjach Excela 365, które obsługują dynamiczne tablice. W przeddynamicznych wersjach Excela 2019, Excela 2016 i Excela 2013 należy korzystać z funkcji Autouzupełniania, jak pokazano w pierwszej części tego samouczka.
Tworzenie serii dat w programie Excel
Aby wygenerować ciąg dat w Excelu, należy ustawić następujące argumenty funkcji SEQUENCE:
SEQUENCE(wiersze, [kolumny], [początek], [krok])- Rzędy - liczba wierszy do wypełnienia datami.
- Kolumny - liczba kolumn, które mają być wypełnione datami.
- Start - datę początkową w formacie zrozumiałym dla programu Excel, np. "8/1/2020" lub "1-sierpień-2020". Aby uniknąć błędów, można dostarczyć datę za pomocą funkcji DATE, np. DATE(2020, 8, 1).
- Krok - przyrost dla każdej kolejnej daty w sekwencji.
Na przykład, aby stworzyć listę 10 dat zaczynających się od 1 sierpnia 2020 roku i zwiększających się o 1 dzień, wzór to:
=SEQUENCE(10, 1, "8/1/2020", 1)
lub
=SEQUENCE(10, 1, DATE(2020, 8, 1), 1)
Alternatywnie możesz wprowadzić liczbę dat (B1), datę początkową (B2) i krok (B3) w predefiniowanych komórkach i odwołać się do tych komórek w swojej formule. Ponieważ generujemy listę, numer kolumn (1) jest hardcoded:
=SEQUENCE(B1, 1, B2, B3)
Wpisz poniższą formułę w najwyższej komórce (w naszym przypadku A6), naciśnij klawisz Enter, a wyniki rozleją się automatycznie na określoną liczbę wierszy i kolumn.
Uwaga. Przy domyślnych ustawieniach Ogólne Aby wyniki były wyświetlane poprawnie, należy zastosować format Data do wszystkich komórek w zakresie rozlewu.
Utwórz serię dni roboczych w Excelu
Aby uzyskać serię tylko dni roboczych, zawiń SEQUENCE w funkcję WORKDAY lub WORKDAY.INTL w ten sposób:
DZIEŃ ROBOCZY( początek_daty -1, SEQUENCE( no_of_days ))Ponieważ funkcja WORKDAY dodaje do daty początkowej liczbę dni określoną w drugim argumencie, odejmujemy od niej 1, aby w wynikach znalazła się sama data początkowa.
Na przykład, aby wygenerować ciąg dni roboczych rozpoczynających się od daty w B2, formuła to:
=WORKDAY(B2-1, SEQUENCE(B1))
Gdzie B1 jest wielkością sekwencji.
Wskazówki i uwagi:
- Jeśli data rozpoczęcia to sobota lub niedziela, seria rozpocznie się w następnym dniu roboczym.
- Funkcja WORKDAY programu Excel zakłada, że sobota i niedziela są weekendami. Aby skonfigurować niestandardowe weekendy i święta, należy użyć funkcji WORKDAY.INTL.
Generowanie sekwencji miesięcy w programie Excel
Aby utworzyć serię dat inkrementowanych o jeden miesiąc, możesz użyć tej ogólnej formuły:
DATA( rok , SEKWENCJA(12), dzień )W tym przypadku umieszczamy docelowy rok w 1. argumencie i dzień w 3. Dla 2. argumentu funkcja SEQUENCE zwraca kolejne liczby od 1 do 12. Na podstawie powyższych parametrów funkcja DATE tworzy serię dat, jak pokazano w lewej części poniższego zrzutu ekranu:
=DATE(2020, SEQUENCE(12), 1)
Aby wyświetlić tylko nazwy miesięcy , ustaw jeden z poniższych niestandardowych formatów daty dla zakresu rozlewu:
- mmm - forma skrócona jak Jan , Luty , Mar , itp.
- mmmm - pełna forma jak Styczeń , Luty , Marzec , itp.
W rezultacie w komórkach pojawią się tylko nazwy miesięcy, ale wartości bazowe nadal będą pełnymi datami. W obu seriach na poniższym zrzucie ekranu proszę zauważyć domyślne wyrównanie do prawej strony typowe dla liczb i dat w Excelu:
Aby wygenerować sekwencję dat, która zwiększa się o jeden miesiąc i rozpoczyna się od określonej daty , użyj funkcji SEQUENCE razem z EDATE:
EDATE( początek_daty , SEQUENCE(12, 1, 0))Funkcja EDATE zwraca datę, która jest określoną liczbą miesięcy przed lub po dacie początkowej. Natomiast funkcja SEQUENCE tworzy tablicę 12 liczb (lub tyle, ile podasz), aby zmusić EDATE do przesuwania się do przodu w krokach co jeden miesiąc. Zauważ, że funkcja start argument jest ustawiony na 0, aby data początkowa została uwzględniona w wynikach.
Mając datę początkową w B1, formuła przyjmuje taki kształt:
=EDATE(B1, SEQUENCE(12, 1, 0))
Uwaga. Po wypełnieniu formuły należy pamiętać o zastosowaniu odpowiedniego formatu daty do wyników, aby były one poprawnie wyświetlane.
Tworzenie ciągu roku w programie Excel
Aby stworzyć serię dat inkrementowanych przez rok, użyj tej ogólnej formuły:
DATE(SEQUENCE( n , 1, ROK( początek_daty )), MIESIĄC( początek_daty ), DAY( początek_daty ))Gdzie n to liczba dat, które chcesz wygenerować.
W tym przypadku funkcja DATE(rok, miesiąc, dzień) konstruuje datę w ten sposób:
- Rok jest zwracany przez funkcję SEQUENCE, która jest skonfigurowana do generowania n tablica liczb w układzie wierszy na 1 kolumnę, począwszy od wartości roku z początek_daty .
- Miesiąc oraz dzień wartości są pobierane bezpośrednio z daty początkowej.
Na przykład, jeśli wprowadzisz datę początkową w B1, poniższa formuła wyprowadzi serię 10 dat w odstępach jednorocznych:
=DATE(SEQUENCE(10, 1, YEAR(B1)), MONTH(B1), DAY(B1))
Po sformatowaniu jako daty, wyniki będą wyglądały następująco:
Generowanie sekwencji czasów w programie Excel
Ponieważ czasy są przechowywane w programie Excel jako liczby dziesiętne reprezentujące ułamek dnia, funkcja SEQUENCE może bezpośrednio pracować z czasami.
Zakładając, że czas rozpoczęcia jest w B1, można użyć jednej z poniższych formuł, aby uzyskać serię 10 razy.Różnica jest tylko w krok argument. Ponieważ w ciągu doby są 24 godziny, użyj 1/24 do inkrementacji o godzinę, 1/48 do inkrementacji o 30 minut, i tak dalej.
W odstępie 30 minut:
=SEQUENCE(10, 1, B1, 1/48)
W odstępie 1 godziny:
=SEQUENCE(10, 1, B1, 1/24)
W odstępie 2 godzin:
=SEQUENCE(10, 1, B1, 1/12)
Poniższy zrzut ekranu przedstawia wyniki:
Jeśli nie chcesz męczyć się z ręcznym obliczaniem kroku, możesz go zdefiniować za pomocą funkcji TIME:
SEQUENCE(wiersze, kolumny, start, TIME( godzina , minuta , druga ))W tym przykładzie wprowadzimy wszystkie zmienne w oddzielnych komórkach, jak pokazano na poniższym zrzucie ekranu. A następnie możesz użyć poniższej formuły, aby wygenerować serię czasową z dowolnym rozmiarem kroku przyrostu, który określisz w komórkach E2 (godziny), E3 (minuty) i E4 (sekundy):
=SEQUENCE(B2, B3, B4, TIME(E2, E3, E4))
Jak stworzyć kalendarz miesięczny w programie Excel
W tym ostatnim przykładzie użyjemy funkcji SEQUENCE wraz z DATEVALUE i WEEKDAY do stworzenia miesięcznego kalendarza, który będzie aktualizowany automatycznie w oparciu o rok i miesiąc, który określisz.
Wzór w A5 jest następujący:
=SEQUENCE(6, 7, DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1, 1)
Jak działa ta formuła:
Używasz funkcji SEQUENCE do wygenerowania tablicy 6 wierszy (maksymalna możliwa liczba tygodni w miesiącu) na 7 kolumn (liczba dni w tygodniu) z datami inkrementowanymi o 1 dzień. Stąd funkcja wiersze , kolumny oraz krok argumenty nie budzą wątpliwości.
Najtrudniejsza część w start argument. Nie możemy rozpocząć naszego kalendarza od 1. dnia miesiąca docelowego, ponieważ nie wiemy, który to dzień tygodnia. Używamy więc poniższego wzoru, aby znaleźć pierwszą niedzielę przed 1. dniem określonego miesiąca i roku:
DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1
Pierwsza funkcja DATEVALUE zwraca numer seryjny, który w wewnętrznym systemie Excela reprezentuje 1 dzień miesiąca w B2 i rok w B1. W naszym przypadku jest to 44044 odpowiadający 1 sierpnia 2020 r. W tym momencie mamy:
44044 - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1
Funkcja WEEKDAY zwraca dzień tygodnia odpowiadający 1. dniu miesiąca docelowego jako liczbę z zakresu od 1 (niedziela) do 7 (sobota). W naszym przypadku jest to 7, ponieważ 1 sierpnia 2020 roku to sobota. A nasza formuła sprowadza się do:
44044 - 7 + 1
44044 - 7 to 4403, co odpowiada sobocie 25 lipca 2020 r. Ponieważ potrzebujemy niedzieli, dodajemy poprawkę +1.
W ten sposób otrzymujemy prosty wzór, który wyprowadza tablicę numerów seryjnych zaczynających się od 4404:
=SEQUENCE(6, 7, 4404, 1)
Sformatuj wyniki jako daty, a otrzymasz kalendarz pokazany na zrzucie ekranu powyżej. Na przykład możesz użyć jednego z następujących formatów daty:
- d-mmm-yy aby wyświetlić daty jak 1-Aug-20
- mmm d aby wyświetlić miesiąc i dzień jak 20 sierpnia
- d aby wyświetlić tylko dzień
Zaraz, ale przecież naszym celem jest stworzenie kalendarza miesięcznego. Dlaczego pokazują się niektóre daty z poprzedniego i następnego miesiąca? Aby ukryć te nieistotne daty, ustaw regułę formatowania warunkowego z poniższą formułą i zastosuj biała czcionka kolor:
=MONTH(A5)MONTH(DATEVALUE($B$2 & "1"))
Gdzie A5 jest najbardziej lewą komórką kalendarza, a B2 jest docelowym miesiącem.
Szczegółowe kroki znajdziesz w rozdziale Jak stworzyć regułę formatowania warunkowego opartą na formule w Excelu.
Tak właśnie można wygenerować ciąg dat w Excelu. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!
Zeszyt ćwiczeń do pobrania
Kolejność dat w Excelu - przykłady formuł (plik .xlsx)