Próbowałem użyć funkcji, aby uzyskać dzisiejszy dzień jako liczbę w programie Excel. Na przykład, kiedy napisałem to pytanie, powinienem uzyskać 18 $.
Próbowałem użyć:
- funkcja
TODAY()
która zwraca dzisiejszą datę w formacie daty. Day(<date>)
to zwraca numer dnia<date>
. To jestDAY(19/05/1984)
powinien wrócić 19.
Dlatego formuła
=DAY(TODAY())
powinien dać wynik, którego chciałem.
Jednak ten zwrot 18/01/1900 (przy użyciu tej funkcji dzisiaj)
Jeśli używam
=TODAY()
w komórce A1, a następnie
=DAY(A1)
w innej komórce otrzymuję właściwy wynik.
Dlaczego DZIEŃ (DZIŚ ()) nie daje oczekiwanego wyniku?
Z mojego tła matematyki i programisty amatorskiego (w Maple, Java i niektórych Pythonie) moja kompozycja funkcji wydaje się w porządku.
Bardziej ogólnie, w jaki sposób Excel radzi sobie ze składem formuł?
microsoft-excel
microsoft-excel-2010
Taladris
źródło
źródło
=DAY(TODAY())
... Zwraca bieżący dzień miesiąca (1 - 31) ..Odpowiedzi:
Twoja formuła jest poprawna; to sposób, w jaki Excel formatuje komórki, co jest mylące. Na przykład, jeśli ręcznie ustawisz wartość komórki na
18
a następnie zmień format na datę, wyświetli to jakoJanuary 18, 1900
.Jeśli zmienisz format komórki z formułą na „Ogólne”, powinien wyświetlić oczekiwany wynik.
źródło
TODAY()
. Naprawdę denerwujące, gdy używasz ich tylko w funkcjach dekompozycji i musisz zmienić formatowanie.Myślę, że możesz być zdezorientowany myśląc, że Excel manipuluje wartościami „daty”: nie.
Jak używać dat i godzin w programie Excel
W programie Excel liczby są używane przedstawiać daty (prawdopodobnie ułamkowa liczba dni od 0-sty-1900), ale są one przechowywane i manipulowane przez Excel jako liczby. DZIŚ () jest funkcją o wartościach liczbowych, a DAY () jest funkcją z argumentu liczbowego do wyniku numerycznego.
W twoim przypadku DAY (TODAY ()) poprawnie zwróciło 18 (liczbę), którą, jak sądzę, przypisałeś do komórki sformatowanej, aby pokazać datę w krótkiej formie - tak, że 18 wyświetla się jako 18/01/1900. Ponieważ do programu Excel, gdy 18 jest interpretowane jako data, to znaczy.
Jeśli sformatujesz tę komórkę do formatu numerycznego, zobaczysz odpowiedź wyświetlaną w oczekiwany sposób, tj. 18.
źródło
Nie ma nic złego w twojej Formule. Co chciałbym zasugerować, jeśli formuła nie daje oczekiwanego wyniku, to albo powoduje błąd, albo błędny wynik. Ponieważ nie wspomniałeś o tym, co Formuła ma, gotuj!
Tymczasem chciałbym pokazać, jakie są możliwości uzyskania wartości DAY w numerze w Excelu.
Sprawdź zrzut ekranu poniżej.
Uwaga:
Data jest w Komórka E166 . Druga kolumna F ma wyniki i 3. kolumna G pokazuje Formułę, której użyłem.
Możesz również użyć funkcji TEKST, aby uzyskać wartość Dnia jako Dane tekstowe.
Wartość to CZERWONY Kolor ma Niestandardowy format komórki DD, można zastosować na komórce (S), aby wyświetlić tylko wartości dnia daty (S).
Uwaga, Zaproponowałem ci wszystkie możliwości, ponieważ wspomniałeś, że zasadniczo nie jesteś użytkownikiem programu Excel.
Mam nadzieję, że to pomoże, nie zapomnij opublikować BŁĘDU, który podał twój Formula.
źródło
Twoja formuła jest poprawnie skomponowana. Nieoczekiwany wynik wynika z tego, jak różne typy danych są przechowywane przez Excel.
Istnieją dwa podobne systemy używane przez program Excel do przechowywania dat na podstawie ustawienia poziomu skoroszytu.
System daty 1900
System daty 1904
Te fragmenty pochodzą z: https://support.microsoft.com/en-us/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel
Numer seryjny to prosta liczba uruchomień liczby dat od 1 stycznia 1900 r., W tym fikcyjna data 29 lutego 1900 r. Funkcję DZIEŃ można jednak dodatkowo traktować jako funkcję konwersji typu danych. To trwa numer seryjny daty jako wejście i zwraca liczba całkowita jako wyjście. W twoim przykładzie, jeśli pomyślimy 18 jako reprezentujący datę szeregową i licząc 18 dni do przodu od 1 stycznia 1900 roku, kończymy na 18 stycznia 1900 roku.
Prostą poprawką na froncie jest zmiana formatu komórki na coś innego Numer lub Generał . Dzięki temu program Excel wyświetli go jako liczbę całkowitą, zamiast próbować interpretować go jako numer seryjny daty. Z tyłu wszystko jest dobre. Wynik całkowity może być użyty w dowolnej innej formule i zachowuje się poprawnie.
Jako przykład, powiedzmy, że chcieliśmy stworzyć formułę warunkową, która poinformowałaby nas, czy 15-ty minął w bieżącym miesiącu. Możemy to zrobić za pomocą:
Znacznie trudniej byłoby osiągnąć ten sam rezultat, używając daty seryjnej, więc funkcja DAY zwracająca liczbę całkowitą staje się bardziej użyteczna w kontekście typowych przypadków użycia programu Excel.
źródło