Automatyczna zmiana daty na ostatni poniedziałek

Data: 11-02-2015 r.

W wielu firmach, zwłaszcza dystrybucyjnych, istnieje konieczność częstej modyfikacji cenników produktów ze względu na zmieniające się ceny zakupu. Zachodzi więc potrzeba, aby znać datę najnowszego cennika lub przynajmniej datę, od której ten cennik powinien obowiązywać.

Przykładowo, gdy firma aktualizuje cennik zawsze w poniedziałki, chcielibyśmy znać datę powstania najnowszego cennika. Jeśli powstał on w poniedziałek 1 września, a dziś jest środa 3 września, chcemy, aby Excel pokazał nam datę 1 września – datę powstania cennika. W tym artykule napiszemy formułę, która wyświetli nam zawsze datę ostatniego poniedziałku.

Ponieważ formuła nie odwołuje się do żadnej komórki arkusza, możesz ją wpisać w dowolnej jego komórce. Formuła wygląda następująco:

=DZIŚ()-(DZIEŃ.TYG(DZIŚ();2)-1)

W pokazanej formule użyto dwóch funkcji, których działanie wyjaśniamy, a następnie przechodzimy do wyjaśniania samej formuły.

Funkcja DZIEŃ.TYG. Zwraca numer dnia tygodnia dla podanej daty. Ma dwa argumenty:

  1. pierwszy to data, z której funkcja ma zwrócić dzień tygodnia;

  2. drugi to liczba określająca, który dzień tygodnia (wtorek, środa itp.) ma być uznany za pierwszy dzień tygodnia.

W naszym przykładzie pierwszym dniem tygodnia ma być poniedziałek, czyli drugim argumentem jest cyfra 2.

Funkcja DZIŚ zwraca dzisiejszą datę. Ma tę przewagę nad ręcznym wpisaniem daty w komórkę, że aktualizuje się i zwraca datę niezależnie od tego, kiedy otworzymy plik z arkuszem, w którym się znajduje. Funkcja ta nie ma argumentów.

W naszym przykładzie, jeśli dzisiejszy dzień to poniedziałek – formuła powinna wyświetlić tę właśnie datę. Jeśli to inny dzień – powinna wyświetlić datę poprzedniego poniedziałku.

Funkcja DZIEŃ.TYG sprawdzi, jaki dzień tygodnia przypada na konkretną datę. Dla nas istotne jest, jaki dzień tygodnia mamy dzisiaj. Ustali to następująca funkcja:

=DZIEŃ.TYG(DZIŚ();2)

Funkcja ta jako drugi argument przyjmuje liczbę 2. Oznacza to, że pierwszym dniem tygodnia będzie dla niej poniedziałek, drugim wtorek itd. Jeśli więc otrzymamy w jej wyniku na przykład liczbę 4, oznaczać to będzie, że data, którą sprawdzamy, przypada w czwartek.

Przeanalizujmy sytuacje przedstawione w tabeli 1:

Tab. 1. Analiza wybranych dat

Dzisiejsza data

Numer dnia tygodnia

Nazwa dnia tygodnia

Data docelowa

Liczba do odjęcia

2014-08-18

1

poniedziałek

2014-08-18

0

2014-08-19

2

wtorek

2014-08-18

1

2014-08-20

3

środa

2014-08-18

2

2014-08-21

4

czwartek

2014-08-18

3

2014-08-22

5

piątek

2014-08-18

4

2014-08-23

6

sobota

2014-08-18

5

2014-08-24

7

niedziela

2014-08-18

6

2014-08-25

1

poniedziałek

2014-08-25

0

2014-08-26

2

wtorek

2014-08-25

1

Weźmy przykładowo 2014-08-19 (kolumna: dzisiejsza data). Jest to wtorek, więc funkcja DZIEŃ.TYG zwróci liczbę 2 (kolumna: numer dnia tygodnia). Docelową datą dla tego dnia, którą powinna zwracać nasza formuła, jest 2014-08-18 (kolumna: data docelowa), czyli ostatni poniedziałek. Zauważmy, że różnica między numerem dnia tygodnia przypadającego w dniu 2014-08-19 (liczba: 2), a numerem dnia tygodnia daty docelowej (zawsze jest to poniedziałek, czyli liczba: 1), jest równa 1 (kolumna: liczba do odjęcia). Tę właśnie różnicę powinniśmy odjąć od daty dzisiejszej. A zatem:

Dzień przypadający na datę dzisiejszą: =DZIEŃ.TYG("2014-08-19";2) = 2

Ostatni poniedziałek: =DZIEŃ.TYG("2014-08-18";2) = 1 (ponieważ interesuje nas zawsze poniedziałek, zawsze będzie to liczba 1).

Działanie: 2 – 1 = 1

Dla wszystkich wtorków będziemy więc odejmować 1 (ponieważ poniedziałek jest 1 dzień wcześniej), dla śród 2 (ponieważ poniedziałek jest 2 dni wcześniej) i tak dalej. Dla poniedziałków oczywiście nic nie odejmujemy (zero).

Malina Cierzniewska-Skweres

Zaloguj się, aby dodać komentarz

Nie masz konta? Zarejestruj się »

Zobacz także

Jak zatrzeć ślady po przeglądaniu Internetu?

pobierz

Biznesplan

pobierz

Wzór Polityki Bezpieczeństwa w ochronie danych osobowych

pobierz

Konfiguracja bezpieczeństwa. Windows 10

pobierz

Polecane artykuły

Polecamy kancelarię:

Array ( [docId] => 36551 )
Array ( [docId] => 36551 )

Array ( [docId] => 36551 )