No pewnie, że tak. Czas przedstawiamy na wiele sposobów, ale najcześciej spotykane są wartości w postaci ułamków dziesiętnych oraz czasu trwania. Czyli na przykład 0.5 i 00:30:00. Gdybyśmy chcieli zamienić wartość 0.5 na 00:30:00 w chociażby arkuszu Google wystarczyłoby podzielić 0.5 na 24 i sformatować komórkę tak aby wyświetlała wartość w postaci czasu, jak na zdjęciu powyżej. Czy tak samo zrobimy to w AppSheet? Niestety nie, ale jeśli szukasz odpowiedzi na to pytanie zachęcam Cię do przeczytania artykułu do końca.
Odpowiedź jest stosunkowo prosta, pod warunkiem, że rozłożymy na czynniki pierwsze operacje, które należy wykonać w celu uzyskania wartości w formacie czasu, np. 02:30:00 z wartości ułamkowej, np. 2.5
Co musimy zrobić?
Obliczyć ile mamy godzin w wartości 2.5
Obliczyć ile mamy minut w wartości 2.5
Utworzyć tekst, który będzie spełniał wymogi wartości "TIME" w AppSheet
Gotowe
No dobra, ale tak naprawdę dalej nie wiadomo jak napisać tą formułę...
NIE MA ZA CO ⬇️ 🙂
(
TIME(
CONCATENATE(
MOD(FLOOR([TWÓJ_CZAS_W_POSTACI_UŁAMKA], 24),
":",
FLOOR(MOD(((60 * 60) * [TWÓJ_CZAS_W_POSTACI_UŁAMKA]), (60 * 60)) / 60),
":",
MOD(((60 * 60) * [TWÓJ_CZAS_W_POSTACI_UŁAMKA]), 60)
)
)
- "00:00:00"
)
+
(FLOOR([TWÓJ_CZAS_W_POSTACI_UŁAMKA] / 24) * 24)
(60 * 60) daje liczbę sekund w 60 minutach (jedna godzina).
(60 * 60) * [TWÓJ_CZAS_W_POSTACI_UŁAMKA] podaje liczbę sekund w okresie czasu wyrażonym przez wartość kolumny TWÓJ_CZAS_W_POSTACI_UŁAMKA.
FLOOR([TWÓJ_CZAS_W_POSTACI_UŁAMKA] / 24) podaje liczbę całych dni.
MOD(FLOOR([TWÓJ_CZAS_W_POSTACI_UŁAMKA]), 24) podaje pozostałe pełne godziny.
FLOOR(MOD(((60 * 60) * [TWÓJ_CZAS_W_POSTACI_UŁAMKA]), (60 * 60)) / 60) podaje pozostałe pełne minuty.
MOD(((60 * 60) * [TWÓJ_CZAS_W_POSTACI_UŁAMKA]), 60) podaje pozostałe sekundy.
CONCATENATE(..., ":", ..., ":", ...) tworzy wartość tekstową sformatowaną jako wartość czasu. Należy pamiętać, że obejmuje to tylko czas w ciągu jednego dnia; wartości czasu nie mogą przekraczać 24 godzin.
TIME(...) konwertuje wartość Text na wartość Time.
(... - "00:00:00") odejmuje wartość Time od wartości Time, dając wartość Duration. Wartość Duration pozwala na więcej niż 24 godziny.
... + (FLOOR([TWÓJ_CZAS_W_POSTACI_UŁAMKA] / 24) * 24) dodaje liczbę godzin w całych dniach z TWÓJ_CZAS_W_POSTACI_UŁAMKA.
Tutaj jest dużo prościej. AppSheet przygotował dla nas rozwiązanie OUT OF THE BOX.
TOTALHOURS([TWÓJ_CZAS])
Na przykład:
TOTALHOURS("000:00:18")zwraca 0.005 (liczba godzin w 18 sekundach)
TOTALHOURS("000:15:00")zwraca 0.25 (liczba godzin w 15 minutach)
TOTALHOURS("024:00:00")zwraca 24
*Zwróć uwagę, że wartości czasowe przedstawiane są w AppSheet w postaci "000:00:00", gdzie sekcja godzin zawsze zawiera dodatkowe 0 z przodu. Wartości przedstawione w taki sposób są typem Duration w tym środowisku.