Obliczanie wartości pola

Insights in ArcGIS Online
Insights in ArcGIS Enterprise
Insights Desktop

Do zestawu danych można dodawać nowe pola za pomocą tabeli danych. Tabela danych umożliwia dodawanie pól, takich jak tempo wzrostu, strata wyrażona procentowo i zmiana w czasie, przez wybranie pól z zestawu danych oraz zastosowanie operatorów i funkcji.

Notatka:
  • Tabela danych udostępnia reprezentatywny widok danych. Ma do niej zastosowanie limit wyświetlania wynoszący 2000 wierszy. Posortowanie tabeli w kolejności rosnącej i malejącej umożliwia wyświetlenie 2000 początkowych i 2000 końcowych wierszy. Wszystkie obliczenia są wykonywane na pełnym zestawie danych.
  • Nowe pole obliczane jest wyświetlane tylko w skoroszycie (nie pojawia się w zestawie danych). Na przykład po dodaniu pola obliczanego percentchange do zestawu danych CommodityPrices, który został dodany z pliku programu Microsoft Excel, pole percentchange jest dostępne w skoroszycie, ale nie jest dodawane do oryginalnego pliku programu Excel. Aby zachować obliczone pole poza skoroszytem, można utworzyć nową warstwę obiektową przez udostępnienie zestawu danych.
  • Pola można także obliczać przy użyciu pozycji Oblicz zmianę procentową, Oblicz współczynnik oraz Oblicz wskaźnik Z na karcie Znajdź odpowiedzi.
Wskazówka:

Tabela danych umożliwia dodanie danych znormalizowanych do zestawu danych na potrzeby map, diagramów i tabel. Gdy dane zostaną obliczone i dodane do zestawu danych, należy zmienić typ pola, aby określić je jako pole wskaźnika/współczynnika Pole wskaźnika/współczynnika. Więcej informacji o normalizacji danych można znaleźć w temacie Kartogramy.

Dodawanie pola do zestawu danych

Aby dodać pole do zestawu danych, wykonaj następujące czynności:

  1. Na panelu danych kliknij przycisk Opcje zestawu danych Opcje zestawu danych znajdujący się obok zestawu danych, do którego chcesz dodać pole obliczane.
  2. Kliknij opcję Wyświetl tabelę danych.
  3. Kliknij + Pole.

    Do tabeli zostanie dołączona kolumna o nazwie Nowe pole.

    Notatka:

    Można zmieniać wielkość i kolejność kolumn, ale zmiany te nie zostaną zapisane.

  4. Kliknij nagłówek nowej kolumny i podaj bardziej opisową nazwę.
  5. Kliknij przycisk fx lub pole Wprowadź funkcję obliczeniową, aby wyświetlić menu z funkcjami, nazwami pól i operatorami służącymi do budowania formuł. Każdy z przycisków w menu fx można także zastąpić równoważnym poleceniem klawiaturowym.
  6. W zależności od potrzeb do wykonania obliczeń można użyć funkcji, pól i operatorów.
  7. Kliknij przycisk Uruchom. Jeśli przycisk Uruchom nie jest aktywny, wówczas w składni obliczenia występuje błąd.
  8. Nowe pole obliczone zostanie wyświetlone na końcu zestawu danych. Obliczane pole można usunąć, zaznaczając je i klikając przycisk Usuń pole obliczane Usuń pole obliczane.

Operatory

Obliczenie wartości pola może wymagać zastosowania zarówno operatorów matematycznych, jak i logicznych. Podczas obliczania pól można stosować następujące operatory:

OperatoryKorzystanie z

+

Dodawanie.

-

Odejmowanie.

×

Mnożenie. Równoważne polecenie klawiaturowe to *.

÷

Dzielenie. Równoważne polecenie klawiaturowe to /.

xy

Funkcja potęgowania. Równoważne polecenie klawiaturowe to ^.

<

Mniejsze niż.

>

Większe niż.

=

Jest równe.

<=

Mniejsze lub równe.

>=

Większe lub równe.

<>

Różne.

,

Przecinek używany jako separator między elementami składniowymi w funkcjach.

(

Lewy nawias.

)

Prawy nawias.

AND

Operator logiczny, w przypadku którego wszystkie warunki muszą być spełnione.

OR

Operator logiczny, w przypadku którego jeden z warunków musi być spełniony.

IS NULL

Operator binarny testujący, czy wartości w polu wynoszą null. Jeśli testowana wartość nie wynosi null, jest przypisywana wynikowa wartość 0, a jeśli testowana wartość wynosi null, jest przypisywana wynikowa wartość 1.

IS NOT NULL

Operator binarny testujący, czy wartości w polach nie wynoszą null. Jeśli testowana wartość wynosi null, jest przypisywana wynikowa wartość 0, a jeśli testowana wartość nie wynosi null, jest przypisywana wynikowa wartość 1.

Notatka:

Operatory matematyczne, takie jak +, -, > i =, są kompatybilne z polami liczbowymi i polami wskaźników/współczynników. Zamiast niektórych operatorów matematycznych w przypadku pól znakowych i pól daty/czasu można użyć odpowiednio funkcji CONCATENATE() i DATEDIF().

Operatory IS NULL i IS NOT NULL są zgodne ze wszystkimi typami pól (ciągami znakowymi, liczbami, wskaźnikami/współczynnikami oraz datami/czasem), z wyjątkiem lokalizacji. Niektóre pola znakowe o wartościach null można skonfigurować jako puste ciągi znakowe. W takich przypadkach operatory IS NULL oraz IS NOT NULL nie zwrócą oczekiwanych wyników. Należy użyć odpowiednio wyrażeń field="" i field<>"" zamiast operatorów field IS NULL i field IS NOT NULL.

Operatory AND i OR mogą służyć do łączenia warunków o innej składni niż odpowiadające im funkcje logiczne. W poniższych przykładach zaprezentowano równoważne obliczenia wykonywane z użyciem funkcji i operatorów:

Notatka:

Podczas obliczania pól operatory AND i OR muszą być używane wraz z funkcją IF().

FunkcjaOperator

IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other")

IF(MeanAge>=18 AND MeanAge<=33,"Millennial","Other")

IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other")

IF(Crime="Theft" OR Crime="Theft from vehicle" OR Crime="Shoplifting", "Larceny", "Other")

Funkcje

Dostęp do funkcji można uzyskać za pomocą przycisku fx lub pola Wprowadź funkcję obliczeniową znajdującego się w tabeli danych. Istnieją cztery typy funkcji: ciągów znakowych, numeryczne, daty i logiczne.

W przypadku dodania do obliczenia funkcji zostanie wyświetlone okno podręczne zawierające składnię tej funkcji. To okno podręczne można usunąć za pomocą przycisku zamykania Zamknij okno lub ponownie je wyświetlić, klikając daną funkcję w polu Wprowadź funkcję obliczeniową.

Funkcje ciągów znakowych

Większość funkcji ciągów znakowych generuje wynikowe ciągi znakowe na podstawie wejściowych ciągów znakowych. Istnieją dwa wyjątki. Są to funkcje VALUE() i FIND(), które na podstawie wejściowych ciągów znakowych generują liczbowe dane wynikowe.

Tekstem wejściowym w funkcjach ciągów znakowych może być literał (tekst ujęty w cudzysłowy) lub wartości pól kategorii. W poniższej tabeli przedstawiono przykłady pól kategorii oraz wartości, które mogą znajdować się w tych polach. Znaki cudzysłowu używane w wartościach pól wskazują, że w polach znajdują się dane jakościowe.

SkładniaOpisPrzykład

CONCATENATE(text1, [text2], ... )

Łączy dwa lub większą liczbę wartości znakowych.

Zestaw danych szkół w Kalifornii zawiera pola przeznaczone na nazwę ulicy, miejscowość i kod pocztowy. Pojedyncze pole z adresem pocztowym można utworzyć przy użyciu funkcji CONCATENATE():

  • Składnia funkcji: CONCATENATE(Address,", ", City," , CA, ",ZIP)
  • Przykładowe wartości pól:
    • Address = "380 New York St"
    • City = "Redlands"
    • ZIP = "92373"
  • Tekst wynikowy: "380 New York St, Redlands, CA, 92373"

FIND(find_text, within_text, [start_num])

Zwraca pozycję określonego tekstu (znak bądź znaki) w obrębie pola znakowego lub tekstowego. Funkcja FIND() może być najbardziej przydatna w połączeniu z innymi funkcjami, takimi jak MID(), LEFT() lub RIGHT().

Zestaw danych zawiera pole adresu z ulicą (nr domu i nazwa ulicy). Aby sklasyfikować dane według ulicy, nazwę ulicy należy usunąć z pozostałej części adresu za pomocą funkcji MID(). Ponieważ jednak każdy numer domu ma inną długość, argument start_num może być w każdym wierszu inny. Wartość argumentu start_num można znaleźć za pomocą funkcji FIND():

  • Składnia funkcji: FIND(" ", Address)
  • Przykładowe wartości pól:
    • Address = "380 New York St"
  • Liczba wynikowa: 4

LEFT(text, [num_chars])

Zwraca część pola tekstowego.

  • num_chars: określa liczbę znaków wyrażenia, które mają zostać zwrócone. Ta wartość powinna być liczbą całkowitą. Liczba znaków jest liczona od lewej do prawej strony, począwszy od pierwszej pozycji. Jeśli argument num_chars nie został podany, domyślną wartością będzie jeden znak.

Zestaw danych dotyczących wypadków drogowych zawiera pole kategorii zawierające dzień wypadku, w tym dzień tygodnia, datę i rok. Aby przeprowadzić badanie wypadków w zależności od dnia tygodnia, można obliczyć nowe pole zawierające trzy pierwsze znaki pola (począwszy od dnia tygodnia) przy użyciu funkcji LEFT():

  • Składnia funkcji: LEFT(Accident_Date, 3)
  • Przykładowe wartości pól:
    • Accident_Date = "Poniedziałek, 14 listopada, 2016"
  • Tekst wynikowy: "Mon"

LOWER(text)

Zwraca wyrażenie znakowe po przekształceniu wszystkich danych na małe litery.

Wydział prac publicznych kompletuje listę znaków drogowych, które wymagają wymiany. Wraz z dodawaniem nowych pozycji do listy format pola Status przestał być znormalizowany, co utrudnia wyświetlanie znaków o unikalnych wartościach. Pole Status można znormalizować, zamieniając wszystkie litery na małe przy użyciu funkcji LOWER():

  • Składnia funkcji: LOWER(Status)
  • Przykładowe wartości pól:
    • Status = "Zainstalowano"
  • Tekst wynikowy: "installed"

MID(text, start_num, [num_chars])

Zwraca część pola tekstowego.

  • start_num: określa pozycję pierwszego znaku (począwszy od 1). Wartość start_num musi być liczbą całkowitą.
  • num_chars: określa liczbę znaków wyrażenia, które mają zostać zwrócone. Ta wartość powinna być liczbą całkowitą. Puste znaki nie są zwracane, jeśli wartość num_chars jest większa niż długość ciągu znakowego. Jeśli wartość num_chars nie zostanie podana, przyjmuje się domyślnie wszystkie znaki po początkowym.

Zestaw danych szkół w Kalifornii zawiera pola przeznaczone na nazwę ulicy, miejscowość i kod pocztowy. Nazwę ulicy można wydzielić z adresu przy użyciu funkcji MID():

  • Składnia funkcji: MID(Address, 5, 20)
  • Przykładowe wartości pól:
    • Address = "380 New York St"
  • Tekst wynikowy: "New York St"

RIGHT(text, [num_chars])

Zwraca część pola tekstowego.

  • num_chars: określa liczbę znaków wyrażenia, które mają zostać zwrócone. Ta wartość powinna być liczbą całkowitą. Liczba znaków jest liczona od prawej do lewej strony, począwszy od ostatniej pozycji. Jeśli argument num_chars nie został podany, domyślną wartością będzie jeden znak.

Zestaw danych o parkach narodowych zawiera pole z nazwą parku i kodem stanu składającym się z dwóch znaków. Aby przedstawić parki według stanów, można dodać nowe pole obliczone przy użyciu funkcji RIGHT():

  • Składnia funkcji: RIGHT(Park, 2)
  • Przykładowe wartości pól:
    • Park = "Hawai'i Volcanoes National Park, HI"
  • Tekst wynikowy: "HI"

SUBSTITUTE(source_text, old_text, new_text)

Zastępuje stary tekst w ciągu znakowym podanym nowym tekstem.

  • source_text: oryginalny tekst lub pole z tekstem.
  • old_text: tekst w obrębie argumentu source_text, który ma zostać zastąpiony.
  • new_text: tekst, który ma zastąpić tekst określony w argumencie old_text.

Zestaw danych lokalizacji uszkodzeń nawierzchni jezdni zawiera pole z nazwami ulic. Zestaw danych należy zaktualizować po zmianie nazwy ulicy z Main Street na 5th Street. Pole street_name można zaktualizować za pomocą funkcji SUBSTITUTE():

  • Składnia funkcji: SUBSTITUTE(street_name, "Main", "5th")

Notatka:

Funkcja SUBSTITUTE() spowoduje zastąpienie wszystkich wystąpień wartości argumentu old_text wartością argumentu new_text. Na przykład wynikiem działania funkcji SUBSTITUTE("aba", "a", "c") jest tekst „cbc”.

TRIM(text)

Zwraca ciąg znakowy, z którego usunięto końcowe spacje.

Usługa obiektowa zawiera pola tekstowe z dodatkowymi spacjami na początku i na końcu wartości. Dodatkowe spacje można usunąć za pomocą funkcji TRIM():

  • Składnia funkcji: TRIM(City)
  • Przykładowe wartości pól:
    • City = "Redlands"
  • Tekst wynikowy: "Redlands"

UPPER(text)

Zwraca wyrażenie znakowe po przekształceniu wszystkich danych na wielkie litery.

Zestaw danych z lokalizacjami central organizacji pozarządowych zawiera pole z pełną nazwą organizacji i jej akronimem (jeśli jest używany). Akronimy można znormalizować, zamieniając wszystkie litery na wielkie przy użyciu funkcji UPPER():

  • Składnia funkcji: UPPER(Org)
  • Przykładowe wartości pól:
    • Org = "Nasa"
  • Tekst wynikowy: "NASA"

VALUE(text, [format])

Przekształca tekst w liczbę.

  • format: określa znak używany jako separator dziesiętny w liczbie. Wartością argumentu format może być przecinek (",") lub kropka ("."). Jeśli argument format nie jest określony, domyślnym separatorem jest kropka.

Notatka:

Funkcje zagnieżdżone w funkcji VALUE() mogą generować nieoczekiwane wyniki, jeśli argument format nie zostanie określony. Dlatego zaleca się określanie argumentu format podczas korzystania z funkcji VALUE().

Funkcja VALUE() nie obsługuje obecnie przekształcania tekstu na liczby ujemne.

Zestaw danych dotyczących sklepów detalicznych zawiera pole kategorii zawierające kwotę przychodu. Pole Revenue można przekształcić na wartości liczbowe przy użyciu funkcji VALUE().

  • Składnia funkcji: VALUE(Revenue, ".")
  • Przykładowe wartości pól:
    • Revenue = "1,000.00"
  • Liczba wynikowa: 1000,00

Funkcje liczbowe

Funkcje liczbowe generują liczbowe dane wynikowe na podstawie liczbowych danych wejściowych. Funkcje liczbowe są najczęściej używane w połączeniu z innymi funkcjami lub w celu przeprowadzenia transformacji danych.

Wejściowymi wartościami liczbowymi mogą być literały liczbowe lub pola liczbowe. W niektórych z poniższych przykładów danymi wejściowymi są liczby, a nie pola, co pozwala lepiej zilustrować użycie poszczególnych funkcji.

SkładniaOpisPrzykład

ABS(number)

Zwraca wartość bezwzględną.

  • Składnia funkcji: ABS(-350)
  • Liczba wynikowa: 350

AVG(number)

Zwraca wartość średnią.

  • Składnia funkcji: AVG(field)
  • Przykładowe wartości liczbowe dla pola field: 4, 5, 11, 6,5
  • Wynik: 6,63

CEILING(number)

Zaokrągla liczbę w górę do najbliższej wielokrotności wartości 1.

  • Składnia funkcji: CEILING(7.8)
  • Liczba wynikowa: 8

COS(number)

Cosinus trygonometryczny kąta podanego w radianach.

Do przekształcenia stopni w radiany można użyć następującego wzoru:

radiany = θπ/180, gdzie: θ = kąt w stopniach, π ≈ 3.14

  • Składnia funkcji: COS(0.35)
  • Liczba wynikowa: 0,94

FLOOR(number)

Zaokrągla liczbę w dół do najbliższej wielokrotności wartości 1.

  • Składnia funkcji: FLOOR(7.8)
  • Liczba wynikowa: 7

LN(number)

Logarytm naturalny określonego wyrażenia zmiennoprzecinkowego. Podstawą logarytmu naturalnego jest liczba e (równa w przybliżeniu 2,72)

  • Składnia funkcji: LN(16)
  • Liczba wynikowa: 2,77

LOG(number)

Logarytm o określonej podstawie z podanej liczby. Domyślną podstawą jest 10.

  • Składnia funkcji: LOG(16, 2)
  • Liczba wynikowa: 4

MAX(number) lub MAX(date)

Zwraca wartość maksymalną.

  • Składnia funkcji: MAX(num_field)
  • Przykładowe wartości dla pola num_field: 4, 5, 11, 6,5
  • Wynik: 11

MIN(number) lub MIN(date)

Zwraca wartości minimalną.

  • Składnia funkcji: MIN(date_field)
  • Wartości przykładowe dla pola date_field: 03/17/2018, 02/14/2019, 10/31/2020
  • Wynik: 03/17/2018

POWER(number, power)

Wartość wyrażenia podniesiona do określonej potęgi.

  • Składnia funkcji: POWER(2, 4)
  • Liczba wynikowa: 16

ROUND(number, num_digits)

Zaokrągla wartości liczbowe do określonej liczby cyfr.

  • num_digits = liczba miejsc dziesiętnych w wartości wynikowej
    • Jeśli argument num_digits jest dodatni, wartość liczbowa jest zaokrąglana do odpowiedniej liczby miejsc dziesiętnych
    • Jeśli argument num_digits ma wartość zero, wartość liczbowa jest zaokrąglana do najbliższej liczby całkowitej
    • Jeśli argument num_digits jest ujemny, wartość liczbowa jest zaokrąglana do określonej liczby cyfr po lewej stronie separatora dziesiętnego

  • Składnia funkcji: ROUND(54.854827, 2)
  • Liczba wynikowa: 54.85
  • Składnia funkcji: ROUND(54.854827, -1)
  • Liczba wynikowa: 50

SIN(number)

Sinus trygonometryczny kąta podanego w radianach.

Do przekształcenia stopni w radiany można użyć następującego wzoru:

radiany = θπ/180, gdzie: θ = kąt w stopniach, π ≈ 3.14

  • Składnia funkcji: SIN(0.79)
  • Liczba wynikowa: 0,71

STDEV(number)

Odchylenie standardowe pola liczbowego.

  • Składnia funkcji: STDEV(field)
  • Przykładowe wartości liczbowe dla pola field: 4, 5, 11, 6,5
  • Wynik: 3,09

SUM(number)

Zwraca wartość łączną.

  • Składnia funkcji: SUM(field)
  • Przykładowe wartości liczbowe dla pola field: 4, 5, 11, 6,5
  • Wynik: 26,5

TAN(number)

Zwraca wartość funkcji tangens dla wyrażenia wejściowego.

Do przekształcenia stopni w radiany można użyć następującego wzoru:

radiany = θπ/180, gdzie: θ = kąt w stopniach, π ≈ 3.14

  • Składnia funkcji: TAN(1.05)
  • Liczba wynikowa: 1,74

Funkcje daty

Danymi wejściowymi w funkcjach daty mogą być pola daty lub wartości tekstowe, a niektóre funkcje daty nie wymagają żadnych danych wejściowych. Funkcja DATEVALUE() może zastępować pole daty w funkcji DATEDIF() lub TIMEDIF().

Notatka:

Pola daty/czasu używane w funkcjach DATEDIF() i DATEADD() muszą mieć format, który zawiera datę (czyli datę i czas lub tylko datę). Pola daty/czasu zawierające tylko czas nie będą akceptowane.

Pola daty/czasu używane w funkcji TIMEDIF() muszą mieć format, który zawiera czas (czyli datę i czas lub tylko czas). Pola daty/czasu zawierające tylko datę nie będą akceptowane.

SkładniaOpisPrzykład

DATE(year, month, day, [hour, minute, second], [AM/PM])

Tworzy pole daty/czasu przy użyciu trzech lub większej liczby oddzielnych pól bądź wartości. Akceptowane są następujące specyfikacje:

  • year: "YY" (rok dwucyfrowy) lub "YYYY" (rok czterocyfrowy)
  • month: "MM" (1–12)
  • day: "DD" (1–31)
  • hour: "HH" (0–23) lub "hh" (1–12)
  • minute: "mm" (0–59)
  • second: "ss" (0–59)
  • AM/PM: "AM"/"PM" (nie jest rozróżniana wielkość liter)

Notatka:

Wszystkie pola wejściowe mogą zawierać liczby lub ciągi znakowe, z wyjątkiem parametru AM/PM. Liczby muszą być całkowite. Lata zapisane dwoma cyframi muszą być ciągami znakowymi.

Jeśli funkcja DATE() jest używana z zestawem danych bazy danych i określone zostały dowolne parametry czasu (hour, minute lub second), wartość wejściową należy wprowadzić dla wszystkich parametrów czasu.

Zestaw danych dotyczących restauracji zawiera pola znakowe z datą i czasem ostatnich kontroli sanitarnych. Pole daty na potrzeby inspekcji można utworzyć przy użyciu funkcji DATE():

  • Składnia funkcji: DATE(2016, Month, Day, Hour, Min, 00)
  • Przykładowe wartości pól:
    • Month = 8
    • Day = 15
    • Hour = 11
    • Minute = 30
  • Data wynikowa: 8/15/2016, 11:30:00

Notatka:

Data wynikowa w tym przykładzie ma format 24-godzinny. Aby użyć zegara 12-godzinnego, należy określić parametr AM lub PM. Tę samą przykładową funkcję można zapisać w postaci DATE(2016, Month, Day, Hour, Min, 00, "AM").

TIME(hour, minute, second)

Tworzy pole daty/czasu przy użyciu trzech oddzielnych pól bądź wartości. Akceptowane są następujące specyfikacje:

  • hour: "HH" (0–23) lub "hh" (1–12)
  • minute: "mm" (0–59)
  • second: "ss" (0–59)
  • AM/PM: "AM"/"PM" (nie jest rozróżniana wielkość liter)

Notatka:

Wszystkie pola wejściowe mogą zawierać liczby lub ciągi znakowe, z wyjątkiem parametru AM/PM. Liczby muszą być całkowite.

Zestaw danych zapisów szpitalnych zawiera czasy przyjazdu pacjenta. Pole czasu w rekordach tego zestawu można utworzyć przy użyciu funkcji TIME():

  • Składnia funkcji: TIME(Hour, Min, 00)
  • Przykładowe wartości pól:
    • Hour = 11
    • Minute = 30
  • Czas wynikowy: 11:30:00

Notatka:

Czas wynikowy w tym przykładzie ma format 24-godzinny. Aby użyć zegara 12-godzinnego, należy określić parametr AM lub PM. Tę samą przykładową funkcję można zapisać w postaci TIME(Hour, Min, 00, "AM").

DATEADD(date, integer, [unit])

Dodaje określoną ilość czasu do dat w polu wejściowym.

  • date musi być polem daty/czasu. To pole musi mieć format, który zawiera datę (czyli datę i czas lub tylko datę). Pola daty/czasu zawierające tylko czas nie będą akceptowane.
  • integer: liczba, która zostanie dodana do daty wejściowej. Jeśli używana jest stała, ta liczba musi być wartością całkowitą (dodatnią lub ujemną). Jeśli używane jest pole liczbowe, miejsca dziesiętne zostaną zignorowane. Dlatego najlepiej użyć pola, które zawiera tylko liczby całkowite lub obliczyć nowe pole z wartościami całkowitymi (na przykład, używając funkcji ROUND()).
  • unit: jednostka czasu do dodania. Obsługiwane są następujące wartości jednostek:
    • "ss" = sekundy
    • "mm" = minuty
    • "h" = godziny
    • "D" = dni (domyślne)
    • "M" = miesiące
    • "Y" = lata

Jeśli nie zostaną podane jednostki, zostaną użyte "D".

Gdy do pola daty/czasu są dodawane miesiące, wartością wyjściową będzie ten sam dzień miesiąca, niezależnie od liczby dni w danym miesiącu. Jeśli dany dzień miesiąca nie jest poprawny w nowym miesiącu, używany jest ostatni dzień miesiąca. Jeśli na przykład w wyniku przeprowadzenia obliczenia do pola wejściowego zostaną dodane trzy miesiące, a jedną z oryginalnych dat jest 30 listopada 2021, wówczas wartość wyjściowa (30 lutego 2022) jest nieprawidłowa. Wynik zostanie zapisany jako 28 lutego 2022, ponieważ 2022 nie jest rokiem przestępnym.

Zakład opieki zdrowotnej jest odpowiedzialny za ewidencjonowanie szczepień przeprowadzanych wśród pacjentów w danym rejonie. Pełny cykl szczepień obejmuje dwie dawki, a odstęp między podaniem każdej z dawek musi wynosić co najmniej 60 dni i nie więcej niż 180 dni. Używając funkcji DATEADD(), można utworzyć pola zawierające pierwszą możliwą datę podania pacjentowi drugiej dawki i ostateczny termin jej podania.

Pierwsza możliwa data:

  • Składnia funkcji: DATEADD(first_dose_date, 60, "D")
  • Przykładowe wartości pól:
    • first_dose_date = 7/11/2021
  • Data wynikowa: 9/9/2021

Ostateczny termin:

  • Składnia funkcji: DATEADD(first_dose_date, 180, "D")
  • Przykładowe wartości pól:
    • first_dose_date = 7/11/2021
  • Data wynikowa: 1/7/2022

TIMEADD(time, integer, unit)

Dodaje określoną ilość czasu do danych czasowych w polu wejściowym.

  • time musi być polem daty/czasu. Czas można dodać do wszystkich pól daty/czasu, w tym pól, które nie zawierają jeszcze składnika czasowego.
  • integer: liczba, która zostanie dodana do czasu wejściowego. Jeśli używana jest stała, ta liczba musi być wartością całkowitą (dodatnią lub ujemną). Jeśli używane jest pole liczbowe, miejsca dziesiętne zostaną zignorowane. Dlatego najlepiej użyć pola, które zawiera tylko liczby całkowite lub obliczyć nowe pole z wartościami całkowitymi (na przykład, używając funkcji ROUND()).
  • unit: jednostka czasu do dodania. Obsługiwane są następujące wartości jednostek:
    • "ss" = sekundy
    • "mm" = minuty
    • "h" = godziny

Zestaw danych zawiera daty i dane czasowe zarejestrowane w uniwersalnym czasie koordynowanym (UTC). Pojawiła się konieczność przekształcenia ich zgodnie z czasem CST. Pole daty czasu z danymi czasowymi w formacie CST można utworzyć przy użyciu funkcji TIMEADD():

  • Składnia funkcji: TIMEADD(UTC_date, -6, "h")
  • Przykładowe wartości pól:
    • UTC_date = 7/11/2021 2:30:00 PM
  • Dane wynikowe: 7/11/2021 8:30:00 AM

DATEDIF(start_date, end_date, [unit])

Oblicza czas, jaki upłynął między dwiema datami. Data reprezentowana przez argument start_date musi być wcześniejsza niż data reprezentowana przez argument end_date. W przeciwnym razie wartość wynikowa będzie ujemna.

  • start_date i end_date mogą być polami daty/czasu lub funkcją DATEVALUE(). Jeśli są używane pola daty/czasu, muszą mieć one format, który zawiera datę (czyli datę i czas lub tylko datę). Pola daty/czasu zawierające tylko czas nie będą akceptowane.
  • unit: zwracana jednostka czasu. Obsługiwane są następujące wartości jednostek:
    • "ss" = sekundy
    • "mm" = minuty
    • "h" = godziny
    • "D" = dni (domyślne)
    • "M" = miesiące
    • "Y" = lata

Jeśli nie zostaną podane jednostki, zostaną użyte "D".

Zaokrąglanie wyników jest w przypadku poszczególnych jednostek realizowane w następujący sposób:

  • Sekundy — sekundy nie są zaokrąglane.
  • Minuty — pełne 60 sekund między datami jest liczone jako jedna minuta. W przypadku niepełnych minut wyniki są zaokrąglane w dół.
  • Godziny — pełne 60 minut między datami jest liczone jako jedna godzina. W przypadku niepełnych godzin wyniki są zaokrąglane w dół.
  • Dni — pełne 24 godziny między datami są liczone jako jeden dzień. W przypadku niepełnych dni wyniki są zaokrąglane w dół.
  • Miesiące — pełny miesiąc między datami jest liczony jako jeden miesiąc (na przykład od 1 stycznia do 1 lutego) niezależnie od liczby dni w konkretnych miesiącach. W przypadku niepełnych miesięcy wyniki są zaokrąglane w dół. Komponenty czasowe, takie jak godziny, nie są uwzględniane w obliczeniu.
  • Rok — 183 dni (pół roku) między datami jest liczone jako jeden rok. W przypadku niepełnych lat, mających mniej niż pełne 183 dni, wyniki są zaokrąglane w dół.

Zestaw danych dotyczących restauracji zawiera daty ostatnich kontroli sanepidu. Liczbę dni, które upłynęły między kontrolami sanepidu, można obliczyć przy użyciu funkcji DATEDIF():

Przykład 1:

  • Składnia funkcji: DATEDIF(Inspection1, Inspection2, "D")
  • Przykładowe wartości pól:
    • Inspection1 = 8/15/2016, 11:30:00
    • Inspection2 = 10/31/2016 14:30:00
  • Wynikowy czas (w dniach): 77

Przykład 2:

  • Składnia funkcji: DATEDIF(Inspection1, Inspection2, "D")
  • Przykładowe wartości pól:
    • Inspection1 = 8/15/2016, 11:30:00
    • Inspection2 = 8/16/2016 8:00:00
  • Wynikowy czas (dni): 0

Przykład 3:

  • Składnia funkcji: DATEDIF(Inspection1, Inspection2, "M")
  • Przykładowe wartości pól:
    • Inspection1 = 8/15/2016, 11:30:00
    • Inspection2 = 10/31/2016 14:30:00
  • Wynikowy czas (miesiące): 2

TIMEDIF(start_time, end_time, [unit])

Oblicza czas, jaki upłynął między dwiema wartościami daty/czasu. Data reprezentowana przez argument start_time musi być wcześniejsza niż data reprezentowana przez argument end_time. W przeciwnym razie wartość wynikowa będzie ujemna.

  • start_time i end_time mogą być polami daty/czasu lub funkcją DATEVALUE(). Jeśli używany jest czas (na przykład gg:mm:ss), wtedy zarówno start_time, jak i end_time muszą mieć format uwzględniający wyłącznie czas.
  • unit: zwracana jednostka czasu. Obsługiwane są następujące wartości jednostek:
    • "ss" = sekundy (wartość domyślna)
    • "mm" = minuty
    • "h" = godziny

Jeśli nie zostaną podane jednostki, zostaną użyte "ss".

Zaokrąglanie wyników jest w przypadku poszczególnych jednostek realizowane w następujący sposób:

  • Sekundy — sekundy nie są zaokrąglane.
  • Minuty — pełne 60 sekund między datami jest liczone jako jedna minuta. W przypadku niepełnych minut wyniki są zaokrąglane w dół.
  • Godziny — pełne 60 minut między datami jest liczone jako jedna godzina. W przypadku niepełnych godzin wyniki są zaokrąglane w dół.

Zestaw danych zawierający rekordy operacji szpitalnych obejmuje czasy rozpoczęcia i zakończenia operacji chirurgicznych. Czas trwania operacji chirurgicznej można obliczyć przy użyciu funkcji TIMEDIF():

  • Składnia funkcji: TIMEDIF(TimeIn, TimeOut, "mm")
  • Przykładowe wartości pól:
    • TimeIn = 11:30:00
    • TimeOut = 14:30:20
  • Czas wynikowy (minuty): 180

DATEVALUE(date_text, [format])

Przekształca tekst w datę.

  • date_text może być polem znakowym lub tekstem ujętym w cudzysłowy.
  • format (argument opcjonalny) — format wprowadzonej daty. Argument format ma postać tekstu ujętego w cudzysłowy. Argument format można wprowadzić przy użyciu następujących jednostek:
    • "MM" — miesiąc (1–12)
    • "DD" — dzień miesiąca (1–31)
    • "YY" — rok zapisany dwoma cyframi
    • "YYYY" — rok zapisany czterema cyframi
    • "HH" — godzina (0–23)
    • "hh" — godzina (1–12)
    • "mm" — minuty (0–59)
    • "ss" — sekundy (0–59)
    • "AM"/"PM" — nie jest rozróżniana wielkość liter

Notatka:

Funkcje zagnieżdżone w funkcji DATEVALUE() mogą generować nieoczekiwane wyniki, jeśli argument format nie zostanie określony. Dlatego zaleca się określanie argumentu format podczas zagnieżdżania funkcji w obrębie funkcji DATEVALUE().

Daty określone bez separatorów (na przykład "10312016") są traktowane jako milisekundy, jeśli nie jest określony argument format. Dlatego zaleca się określanie formatu podczas wprowadzania dat bez separatorów.

W przypadku dat podanych z separatorami, ale bez argumentu format, format zostanie odgadnięty. Jeśli formatu nie można odgadnąć, domyślnie stosowany jest "MM-DD-YY".

Funkcja DATEVALUE() może odczytywać tylko tekst ujęty w cudzysłowy lub wprowadzony w polach znakowych. Wartość pola daty/czasu nie może być używana jako dane wejściowe funkcji DATEVALUE().

Zestaw danych dotyczących restauracji zawiera daty ostatnich kontroli sanepidu. Liczba dni, które upłynęły od ostatniej kontroli, można obliczyć przy użyciu funkcji DATEVALUE() w celu określenia bieżącej daty:

  • Składnia funkcji: DATEDIF(Inspection_date, DATEVALUE("10/31/2016", "MM/DD/YYYY"), "D")
  • Przykładowe wartości pól:
    • Inspection_date = 8/15/2016, 11:30:00
  • Liczba wynikowa: 77

Daty i czas można formatować na kilka sposobów. Poniżej przedstawiono przykłady sposobów formatowania tekstu jako dat:

  • DATEVALUE("12/25/2016 12:30:25 pm", "MM/DD/YYYY hh:mm:ss pm")
  • DATEVALUE("12/25/2016 14:23:45", "MM/DD/YYYY HH:mm:ss")
  • DATEVALUE("25-08-2008 08:40:13 AM", "DD/MM/YYYY hh:mm:ss AM")

NOW()

Zwraca bieżącą datę i czas w formacie daty i czasu. Czas jest rejestrowany w oparciu o czas uniwersalny (Coordinated Universal Time, UTC).

Zestaw danych dotyczących restauracji zawiera daty ostatnich kontroli sanepidu. Liczba dni, które upłynęły od ostatniej kontroli, można obliczyć przy użyciu funkcji NOW() w celu określenia bieżącej daty:

  • Składnia funkcji: DATEDIF(Inspection_date, NOW(), "D")
  • Przykładowe wartości pól:
    • Inspection_date= 8/15/2016, 11:30:00
  • Liczba wynikowa: 77

Funkcje logiczne

Funkcje logiczne generują znakowe lub liczbowe dane wynikowe na podstawie znakowych lub liczbowych danych wejściowych. Danymi wejściowymi mogą być literały (tekst ujęty w cudzysłów bądź wartość stała) lub wartości pól. W poniższej tabeli przedstawiono kombinacje wartości pól i literałów oraz wartości, które mogą znajdować się w danych polach.

SkładniaOpisPrzykład

AND(condition,condition, ...)

Testuje dwa lub większą liczbę warunków i zwraca wartość TRUE, jeśli spełnione są wszystkie warunki. AND() należy używać w obrębie parametru condition funkcji IF().

  • condition: dowolne wyrażenie, które zawiera co najmniej jeden operator warunkowy. Warunek może zawierać argumenty liczbowe, znakowe oraz wartości pól. Można używać następujących operatorów warunkowych:
    • >: większe niż
    • <: mniejsze niż
    • >=: większe lub równe
    • <=: mniejsze lub równe
    • =: równe
    • <>: nierówne

Zestaw danych zawiera średni wiek osób mieszkających w obrębie poszczególnych bloków spisowych. Analityk rynku chce wiedzieć, które bloki spisowe są zamieszkane w większości przez osoby z pokolenia Y. Bloki spisowe, w których średni wiek należy do zakresu pokolenia Y, można znaleźć przy użyciu kombinacji funkcji IF() i AND():

  • Składnia funkcji: IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other")
  • Przykładowa wartość pola:
    • MeanAge = 43
  • Tekst wynikowy: „Other” (Inne)

IF(condition, TRUE_expression, [FALSE_expression])

Testuje warunek i zwraca wartość TRUE lub FALSE w zależności od wyniku.

  • condition: dowolne wyrażenie, które zawiera co najmniej jeden operator warunkowy. Warunek może zawierać argumenty liczbowe, znakowe oraz wartości pól. Można używać następujących operatorów warunkowych:
    • >: większe niż
    • <: mniejsze niż
    • >=: większe lub równe
    • <=: mniejsze lub równe
    • =: równe
    • <>: nierówne
  • TRUE_expression: wyrażenie, które ma zostać użyte, gdy warunek jest spełniony. Ten parametr jest obowiązkowy.
  • FALSE_expression: wyrażenie, które ma zostać użyte, gdy warunek nie jest spełniony. Jeśli wyrażenie FALSE_expression nie jest podane, wartością domyślną jest null.

Wyrażenia TRUE_expression i FALSE_expression mogą być dowolnymi prawidłowymi wyrażeniami, w tym także zagnieżdżoną funkcją IF(). Typ danych dla wyrażeń TRUE_expression i FALSE_expression powinien być taki sam (na przykład oba powinny być znakowe lub liczbowe).

Zestaw danych zawiera pola z przychodami i wydatkami sklepów, których można użyć w celu określenia statusu sklepu (zaksięgowany przychód lub strata netto). Status każdego sklepu można znaleźć przy użyciu funkcji IF():

  • Składnia funkcji: IF(Revenue>Expenses, "Profit","Loss")
  • Przykładowe wartości pól:
    • Revenue = 400000
    • Expenses = 350000
  • Tekst wynikowy: „Profit” (Zysk)

ISNULL(field)*

Testuje, czy wartości w polu wynoszą null. Jeśli testowana wartość nie wynosi null, jest przypisywana wynikowa wartość 0, a jeśli testowana wartość wynosi null, jest przypisywana wynikowa wartość 1.

  • field: obsługuje pola o typach ciąg znakowy, liczba, wskaźnik/współczynnik i data/czas.

ISNULL() można używać samodzielnie lub w obrębie parametru condition funkcji IF().

Zestaw danych zawiera lokalizacje kolizji drogowych z udziałem rowerzystów, a także rodzaj ścieżki rowerowej przy ulicy, na której doszło do kolizji. W przypadku kolizji, które miały miejsce na ulicy, gdzie nie ma ścieżki rowerowej, pole RouteType pozostaje puste. Zestaw danych może być aktualizowany w celu wypełnienia wartości pustych przy użyciu kombinacji funkcji IF() i ISNULL():

  • Składnia funkcji: IF(ISNULL(RouteType), "None", RouteType)

ISNOTNULL(field)*

Testuje, czy wartości w polu nie wynoszą null. Jeśli testowana wartość wynosi null, jest przypisywana wynikowa wartość 0, a jeśli testowana wartość nie wynosi null, jest przypisywana wynikowa wartość 1.

  • field: obsługuje pola o typach ciąg znakowy, liczba, wskaźnik/współczynnik i data/czas.

ISNOTNULL() można używać samodzielnie lub w obrębie parametru condition funkcji IF().

Zestaw danych zawiera lokalizacje kolizji drogowych z udziałem rowerzystów, a także rodzaj ścieżki rowerowej przy ulicy, na której doszło do kolizji. W przypadku kolizji, które miały miejsce na ulicy, gdzie nie ma ścieżki rowerowej, pole RouteType pozostaje puste. Zestaw danych może być aktualizowany w celu wypełnienia wartości pustych przy użyciu kombinacji funkcji IF() i ISNOTNULL():

  • Składnia funkcji: IF(ISNOTNULL(RouteType), RouteType, "None")

OR(condition,condition, ...)

Testuje dwa lub większą liczbę warunków i zwraca wartość TRUE, jeśli spełniony jest przynajmniej jeden warunek. OR() należy używać w obrębie parametru condition funkcji IF().

  • condition: dowolne wyrażenie, które zawiera co najmniej jeden operator warunkowy. Warunek może zawierać argumenty liczbowe, znakowe oraz wartości pól. Można używać następujących operatorów warunkowych:
    • >: większe niż
    • <: mniejsze niż
    • >=: większe lub równe
    • <=: mniejsze lub równe
    • =: równe
    • <>: nierówne

Zestaw danych zawiera lokalizacje przestępstw w mieście. Analityk kryminalny chce zbadać wzorzec występowania kradzieży w porównaniu do innych podobnych przestępstw. Aby porównać kradzież z innymi przestępstwami, analityk musi najpierw określić, czy dane przestępstwo zostało uznane za kradzież. Typ przestępstwa można określić przy użyciu kombinacji funkcji IF() i OR():

  • Składnia funkcji: IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other")
  • Tekst wynikowy: „Larceny” (Kradzież)

* Niektóre pola bez danych można skonfigurować jako puste, a nie o wartości null. W takich przypadkach operatory ISNULL() oraz ISNOTNULL() nie zwrócą oczekiwanych wyników. Należy użyć odpowiednio wyrażeń field="" i field<>"" zamiast operatorów ISNULL(field) i ISNOTNULL(field).