フィールドの計算

Insights in ArcGIS Online
Insights in ArcGIS Enterprise
Insights desktop

データ テーブルデータ エンジニアリングを使用して、データセットで新しいフィールドを追加して計算できます。 計算フィールドでは、データセットからフィールドを選択して、演算子関数を適用することで、成長率や損失率などの値や時間の経過に伴う変化を作成できます。

また、[回答の検索] にある [変化率の計算][比率の計算][Z スコアの計算] を使用して、フィールドを計算することもできます。

ヒント:

データ テーブルを使用して、正規化されたデータをマップ、チャート、テーブルのデータセットに追加します。 データが計算され、データセットに追加されたら、フィールドが割合/比率フィールド 割合/比率フィールド として識別されるようにフィールド タイプを変更します。 データの正規化の詳細については、「コロプレス マップ」をご参照ください。

データ テーブルのフィールドの計算

データ テーブルで計算されたフィールドはワークブックにのみ表示され、元のデータセットには追加されません。 計算フィールドをワークブックの範囲外に保持したい場合は、データセットを共有するか、データ エンジニアリングを使用することで、新しいフィーチャ レイヤーを作成できます。

注意:

データ テーブルは、データの代表的な内容を表示するもので、2,000 行に制限されています。 テーブルを昇順と降順に並べ替えることで、それぞれ上位 2,000 行と下位 2,000 行を表示できます。 すべての計算がデータセット全体に対して実行されます。

データ テーブルのフィールドを計算するには、以下の手順を実行します。

  1. ワークブックを開き、必要に応じてデータを追加します。
  2. データ ウィンドウで、計算されたフィールドを追加するデータセットの横にある [データセット オプション] ボタン データセットのオプション をクリックします。
  3. [データ テーブルの表示] をクリックします。
  4. [+ フィールド] をクリックします。

    [新しいフィールド] という名前の列がテーブルに追加されます。

    注意:

    列のサイズ変更および並べ替えが可能ですが、これらの変更は保存されません。

  5. 新しい列の見出しをクリックして、よりわかりやすい名前を指定します。
  6. [fx] または [計算関数の入力] をクリックし、関数、フィールド名、演算子のメニューを表示して、式を作成します。

    同等のキーボード コマンドを使用して、[fx] メニューのボタンを置き換えることもできます。

  7. 必要に応じて、関数、フィールド、演算子を使用して、計算を完了します。
  8. [実行] をクリックします。

    [実行] ボタンが有効化されていない場合、計算の構文にエラーがあります。

計算された新しいフィールドが、データセットの最後に表示されます。 計算フィールドを削除するには、それを選択して [計算フィールドの削除] ボタン 計算フィールドの削除 をクリックします。

データ エンジニアリングを使用した列の計算

Insights desktop
注意:

データ エンジニアリングは、Insights desktop で使用できます。 すべての Insights in ArcGIS Online および Insights in ArcGIS Enterprise ユーザーは、Insights desktop にアクセスすることができます。 詳細については、「ArcGIS Insights の概要」をご参照ください。

データ エンジニアリングは現時点でプレビュー版です。

[列の計算] ツールをデータ モデルに追加し、出力データセットへの列の追加に使用できます。 データ ワークブックで計算された列は、ワークブックだけに存在するのではなく、出力データセットに永続的に追加されます。

データ エンジニアリングを使用して列を計算するには、以下の手順を実行します。

  1. Insights desktopデータ ワークブックを開き、必要に応じてデータを追加します。
  2. サイド ツールバーで [列の計算] ボタン 列の計算 をクリックします。
  3. [新しい列の名前] パラメーターで新しい列の名前を入力します。
    注意:

    Insights でサポートされているデータベースは、列名に文字、数字、およびアンダースコアのみをサポートしています。 列名でサポートされていない文字は、データベースに保存するときにアンダースコアに変換されます (たとえば、population/sq milepopulation_sq_mile に変換されます)。 最適な結果を得るためには、サポートされている文字のみを使用する列名を適用してから、必要に応じて他の文字で列のエイリアスを更新します。

  4. [列の式] ボックスで、必要に応じて、関数、列名、演算子を使用して計算を完了します。

    同等のキーボード コマンドを使用してボタンを置き換えることもできます。

    注意:

    データ ワークブックに複数のデータセットがある場合、入力オプションはアクティブなテーブルに基づきます。

  5. [実行] をクリックします。

    [実行] ボタンが有効化されていない場合、計算の構文にエラーがあります。

新しい計算済み列がテーブルに追加され、[列の計算] ツールがデータ モデルに追加されます。

演算子

フィールドの計算には、算術演算子と論理演算子の両方が必要になる場合があります。 フィールドの計算には、次の演算子が使用できます。

演算子使用

+

加算

-

減算

×

乗算 同等のキーボード コマンドは * です。

÷

除算 同等のキーボード コマンドは / です。

xy

Power 関数 同等のキーボード コマンドは ^ です。

<

未満。

>

より大きい。

=

「等しい」を意味します。

<=

以下。

>=

以上。

<>

等しくない。

,

カンマ。関数内で構文のコンポーネント間の区切りとして使用されます。

(

左括弧

)

右括弧

AND

すべての条件を満たす必要がある論理演算子。

OR

条件の 1 つを満たす必要がある論理演算子。

IS NULL

フィールドの値が NULL かどうかをテストするバイナリ演算子。 テストの結果、値が NULL 以外の場合は出力値 0 が割り当てられ、値が NULL の場合は出力値 1 が割り当てられます。

IS NOT NULL

フィールドの値が NULL 以外かどうかをテストするバイナリ演算子。 テストの結果、値が NULL の場合は出力値 0 が割り当てられ、値が NULL 以外の場合は出力値 1 が割り当てられます。

注意:

数学演算子 (+、-、>、= など) には、数値フィールドおよび割合/比率フィールドとの互換性があります。 CONCATENATE() 関数と DATEDIF() 関数は、それぞれ文字列フィールドと日付/時間フィールドを表す数学演算子の代わりに使用できます。

IS NULL および IS NOT NULL 演算子には、位置を除くすべてのフィールド タイプ (文字列、数値、割合/比率、および日付/時間) との互換性があります。 NULL 値を含む一部の文字列フィールドは空の文字列として構成されることがあります。 この場合には、IS NULL および IS NOT NULL から予想された結果が返されません。 field IS NULL および field IS NOT NULL の代わりに、それぞれ field="" および field<>"" を使用する必要があります。

AND および OR 演算子を使用すると、対応する論理関数とは異なる構文の条件を結合できます。 次の例は、関数と演算子を使用した同等の計算を示しています。

注意:

フィールド演算を実行する場合は、AND および ORIF() 関数内で使用する必要があります。

関数演算子

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")

関数

関数にアクセスするには、データ テーブルの [fx] ボタンまたは [計算関数の入力] フィールドを使用します。 関数には次の 4 種類があります。 文字列数値日付、および論理

計算に関数を追加するとき、関数の構文がポップアップに表示されます。 閉じるボタン 閉じる を使用してポップアップを削除したり、[計算関数の入力] フィールドの関数をクリックしてポップアップを再表示したりできます。

文字列関数

多くの文字列関数は、文字列入力を使用して文字列出力を生成します。 例外は VALUE() 関数と FIND() 関数の 2 つであり、両方とも文字列入力を使用して数値出力を生成します。

文字列関数の入力テキストには、リテラル (引用符で囲んだテキスト) またはカテゴリ フィールドの値を使用できます。 次の表では、例としてカテゴリ フィールドと、それらのフィールドに含まれていると考えられるサンプル値を使用しています。 フィールド値で使用されている引用符は、フィールドが、カテゴリに分類されたデータを含むことを示します。

構文説明

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

2 つ以上の文字列値を連結します。

カリフォルニア州の学校のデータセットには、Address (住所)、City (市区町村)、および ZIP (郵便番号) のフィールドがあります。 CONCATENATE() 関数を使用して、所在地住所の単一フィールドを作成できます。

  • 関数の構文: CONCATENATE(Address,", ", City," , CA, ",ZIP)
  • 例のフィールド値:
    • Address = "380 New York St"
    • City = "Redlands"
    • ZIP = "92373"
  • 結果のテキスト: "380 New York St, Redlands, CA, 92373"

FIND(find_text, within_text, [start_num])

文字列フィールドまたはテキスト フィールド内で、指定されたテキスト (1 文字以上) の位置を返します。 FIND() 関数は、MID()LEFT()RIGHT() など、他の関数を組み合わせて使用すると非常に便利な場合があります。

あるデータセットには、住所 (番地と道路名を含む) のフィールドがあります。 道路別にデータを分類するには、MID() 関数を使用して、住所から道路名を削除する必要があります。 ただし、それぞれの番地は長さが異なるため、行ごとに start_num は異なります。 FIND() 関数を使用して、start_num を見つけることができます。

  • 関数の構文: FIND(" ", Address)
  • 例のフィールド値:
    • Address = "380 New York St"
  • 結果の数値: 4

LEFT(text, [num_chars])

テキスト フィールドの一部を返します。

  • num_chars: 返される式の文字数を指定します。整数でなければなりません。 文字数は、最初の文字から始めて、左から右に数えられます。 num_chars を指定しない場合、デフォルトは 1 文字になります。

交通事故のデータセットには事故発生日のカテゴリ フィールドがあり、曜日、日付、年が含まれています。 曜日別の事故を調査するために、LEFT() 関数を使用して新しいフィールドを計算し、フィールド (曜日で始まる) の最初の 3 文字を表示することができます。

  • 関数の構文: LEFT(Accident_Date, 3)
  • 例のフィールド値:
    • Accident_Date = "Monday, November 14, 2016"
  • 結果のテキスト: "Mon"

LOWER(text)

すべてのデータを小文字に変換した文字式を返します。

ある公共事業の部署が、交換を必要とする道路標識のリストを作成しています。 新しいエントリがリストに追加されるにつれ、Status フィールドの書式が標準から逸脱し、一意の値を使用して標識を表示することが困難になっています。 LOWER() 関数を使用して、Status フィールドのすべての文字が小文字になるように標準化できます。

  • 関数の構文: LOWER(Status)
  • 例のフィールド値:
    • Status = "Installed"
  • 結果のテキスト: "installed"

MID(text, start_num, [num_chars])

テキスト フィールドの一部を返します。

  • start_num: 最初の文字の位置を指定します (1 文字目は 1)。 start_num は整数でなければなりません。
  • num_chars: 返される式の文字数を指定します。整数でなければなりません。 num_chars の値が文字列の長さより大きい場合、空白文字が返されることはありません。 num_chars が指定されていない場合、デフォルトは先頭文字の後のすべての文字になります。

カリフォルニア州の学校のデータセットには、Address (住所)、City (市区町村)、および ZIP (郵便番号) のフィールドがあります。 MID() 関数を使用して、住所から道路名を取り出すことができます。

  • 関数の構文: MID(Address, 5, 20)
  • 例のフィールド値:
    • Address = "380 New York St"
  • 結果のテキスト: "New York St"

RIGHT(text, [num_chars])

テキスト フィールドの一部を返します。

  • num_chars: 返される式の文字数を指定します。整数でなければなりません。 文字数は、最後の文字から始めて、右から左に数えられます。 num_chars を指定しない場合、デフォルトは 1 文字になります。

国立公園のデータセットには、公園名と 2 桁の州コードを持つフィールドがあります。 州別に公園をシンボル表示するために、新しいフィールドを追加し、RIGHT() 関数を使用してそのフィールドを計算できます。

  • 関数の構文: RIGHT(Park, 2)
  • 例のフィールド値:
    • Park = "Hawai'i Volcanoes National Park, HI"
  • 結果のテキスト: "HI"

SUBSTITUTE(source_text, old_text, new_text)

文字列内の古いテキストを、指定した新しいテキストに置き換えます。

  • source_text: 元のテキストまたはテキストを含むフィールド。
  • old_text: 置き換える source_text 内のテキスト。
  • new_text: old_text を置き換えるテキスト。

道路のくぼみの位置のデータセットには、道路名が格納されたフィールドが含まれています。 「Main Street」という名前が「5th Street」に変更された場合、このデータセットを更新する必要があります。 SUBSTITUTE() 関数を使用して、street_name フィールドを更新できます。

  • 関数の構文: SUBSTITUTE(street_name, "Main", "5th")

注意:

SUBSTITUTE() 関数は、old_text のすべての出現を new_text に置き換えます。 たとえば、関数 SUBSTITUTE("aba", "a", "c") の結果のテキストは「cbc」です。

TRIM(text)

末尾の余分なスペースを削除して、文字列を返します。

フィーチャ サービスのテキスト フィールドの値には、先頭と末尾に余分なスペースがあります。 TRIM() 関数を使用して、余分なスペースを削除できます。

  • 関数の構文: TRIM(City)
  • 例のフィールド値:
    • City = " Redlands "
  • 結果のテキスト: "Redlands"

UPPER(text)

すべてのデータを大文字に変換した文字式を返します。

NGO 組織本部の位置のデータセットには、組織の正式名称とその略称 (該当する場合) を持つフィールドがあります。 UPPER() 関数を使用して、略称がすべて大文字になるように標準化できます。

  • 関数の構文: UPPER(Org)
  • 例のフィールド値:
    • Org = "Nasa"
  • 結果のテキスト: "NASA"

VALUE(text, [format])

テキストを数値に変換します。

  • format: 数値の小数点として使用する文字を指定します。 format は小数記号のカンマ (",") でも小数記号のピリオド (".") のどちらでもかまいません。 format を指定しなかった場合、デフォルトの区切り文字は小数記号のピリオドになります。

注意:

format を指定しない場合、VALUE() 関数内にネストされた関数が予期しない結果を出力することがあります。 このため、VALUE() 関数を使用する場合は format を指定することをお勧めします。

VALUE() 関数は現在、テキストから負の数値への変換をサポートしていません。

小売店のデータセットには、売上金額のカテゴリ フィールドがあります。 VALUE() 関数を使用して、Revenue フィールドを数値に変換できます。

  • 関数の構文: VALUE(Revenue, ".")
  • 例のフィールド値:
    • Revenue = "1,000.00"
  • 結果の数値: 1000.00

数値関数

数値関数は、数値入力を使用して数値出力を生成します。 数値関数は多くの場合、他の関数と組み合わせて、またはデータ変換の方法として使用されます。

入力数値には、リテラルの数値または数値フィールドを使用できます。 以下のいくつかの例では、各関数の使用方法をよりよく示すために、フィールドではなく入力として数値を使用します。

構文説明

ABS(number)

絶対値を返します。

  • 関数の構文: ABS(-350)
  • 結果の数値: 350

AVG(number)

平均値を返します。

  • 関数の構文: AVG(field)
  • field の数値の例: 4、5、11、6.5
  • 結果: 6.63

CEILING(number)

数値を、1 の位を切り上げます。

  • 関数の構文: CEILING(7.8)
  • 結果の数値: 8

COS(number)

指定した角度 (ラジアン単位) の余弦。

次の式を使用して、角度をラジアンに変換できます。

radians = θπ/180 (θ は角度、π ≈ 3.14)

  • 関数の構文: COS(0.35)
  • 結果の数値: 0.94

FLOOR(number)

数値を、1 の位を切り下げます。

  • 関数の構文: FLOOR(7.8)
  • 結果の数値: 7

LN(number)

指定した浮動小数点数の表現の自然対数。 自然対数は、定数 e (約 2.72) を底として使用します。

  • 関数の構文: LN(16)
  • 結果の数値: 2.77

LOG(number)

指定した値を底とする数値の対数。 デフォルトの底は 10 です。

  • 関数の構文: LOG(16, 2)
  • 結果の数値: 4

MAX(number) または MAX(date)

最大値を返します。

  • 関数の構文: MAX(num_field)
  • num_field の例: 4、5、11、6.5
  • 結果: 11

MIN(number) または MIN(date)

最小値を返します。

  • 関数の構文: MIN(date_field)
  • date_field: 03/17/2018, 02/14/2019, 10/31/2020 の値の例
  • 結果: 03/17/2018

PERCENTTOTAL(number)

フィールドの合計を使用して、各フィールド値のパーセントを計算します。

  • 関数の構文: PERCENTTOTAL(num_field)
  • num_field の例: 4、5、11、6.5
  • 結果: 0.1509、0.1887、0.4151、0.2453

POWER(number, power)

指定した指数で式を累乗した値。

  • 関数の構文: POWER(2, 4)
  • 結果の数値: 16

ROUND(number, num_digits)

数値を指定の桁数に丸めます。

  • num_digits = 出力の小数点以下の桁数
    • num_digits が正の場合、数値は対応する小数点以下の桁数に丸められます。
    • num_digits が 0 の場合、数値は最も近い整数に丸められます。
    • num_digits が負の場合、数値は対応する小数点以上の桁数に丸められます。

  • 関数の構文: ROUND(54.854827, 2)
  • 結果の数値: 54.85
  • 関数の構文: ROUND(54.854827, -1)
  • 結果の数値: 50

SIN(number)

指定した角度 (ラジアン単位) の正弦。

次の式を使用して、角度をラジアンに変換できます。

radians = θπ/180 (θ は角度、π ≈ 3.14)

  • 関数の構文: SIN(0.79)
  • 結果の数値: 0.71

STDEV(number)

数値フィールドの標準偏差。

  • 関数の構文: STDEV(field)
  • field の数値の例: 4、5、11、6.5
  • 結果: 3.09

SUM(number)

合計値を返します。

  • 関数の構文: SUM(field)
  • field の数値の例: 4、5、11、6.5
  • 結果: 26.5

TAN(number)

入力式の正接を返します。

次の式を使用して、角度をラジアンに変換できます。

radians = θπ/180 (θ は角度、π ≈ 3.14)

  • 関数の構文: TAN(1.05)
  • 結果の数値: 1.74

日付関数

日付関数は、使用する関数に応じて、日付フィールドまたはテキストを使用することができ、入力を使用しないこともできます。 DATEVALUE() 関数を使用して、DATEDIF() 関数または TIMEDIF() 関数の日付フィールドを置換できます。

注意:

DATEDIF()DATEADD() で使用される日付/時間フィールドは、日付を含む形式 (日時または日付のみ) である必要があります。 時間のみの日付/時間フィールドは使用できません。

TIMEDIF() で使用される日付/時間フィールドは、時間を含む形式 (日時または時間のみ) である必要があります。 日付のみの日付/時間フィールドは使用できません。

次の日付の区切り文字がサポートされています: ポイント (.)、ダッシュ (-)、スラッシュ (/)。

構文説明

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

3 つ以上の別々のフィールドまたは値を使用して、日付/時間フィールドを作成します。 次のように指定できます。

  • year: "YY" (2 桁の年) または "YYYY" (4 桁の年)
  • month: "MM" (1 ~ 12)
  • day: "DD" (1 ~ 31)
  • hour: "HH" (0 ~ 23) または "hh" (1 ~ 12)
  • minute: "mm" (0 ~ 59)
  • second: "ss" (0 ~ 59)
  • AM/PM: "AM"/"PM" (大文字小文字が区別されない)

注意:

AM/PM パラメーター以外のすべての入力フィールドには、数値または文字列を指定できます。 数値は整数値である必要があります。 2 桁の年は文字列である必要があります。

データベース データセットとともに DATE() 関数を使用し、いずれかの時間パラメーター (hourminute、または second) を指定した場合、すべての時間パラメーターの入力値を入力する必要があります。

あるレストランのデータセットには、最近の衛生検査の日時を含む文字列フィールドがあります。 DATE() 関数を使用して、検査の日付フィールドを作成できます。

  • 関数の構文: DATE(2016, Month, Day, Hour, Min, 00)
  • 例のフィールド値:
    • Month = 8
    • Day = 15
    • Hour = 11
    • Minute = 30
  • 結果の日付: 8/15/2016, 11:30:00

注意:

この例の結果の日付は、24 時間制を使用して書式設定されます。 12 時間制を使用するには、AM または PM を指定する必要があります。 同じ例の関数は、DATE(2016, Month, Day, Hour, Min, 00, "AM") のように記述できます。

TIME(hour, minute, second)

3 つの別々のフィールドまたは値を使用して、日付/時間フィールドを作成します。 次のように指定できます。

  • hour: "HH" (0 ~ 23) または "hh" (1 ~ 12)
  • minute: "mm" (0 ~ 59)
  • second: "ss" (0 ~ 59)
  • AM/PM: "AM"/"PM" (大文字小文字が区別されない)

注意:

AM/PM パラメーター以外のすべての入力フィールドには、数値または文字列を指定できます。 数値は整数値である必要があります。

病院レコードのデータセットには、患者の到着時間が含まれています。 TIME() 関数を使用して、レコードの時間フィールドを作成できます。

  • 関数の構文: TIME(Hour, Min, 00)
  • 例のフィールド値:
    • Hour = 11
    • Minute = 30
  • 結果の時間: 11:30:00

注意:

この例の結果の時間は、24 時間制を使用して書式設定されます。 12 時間制を使用するには、AM または PM を指定する必要があります。 同じ例の関数は、TIME(Hour, Min, 00, "AM") のように記述できます。

DATEADD(date, integer, [unit])

指定した時間数を入力フィールドの日付に加算します。

  • date は日付/時間フィールドである必要があります。 このフィールドは、日付を含む形式 (日時または日付のみ) である必要があります。 時間のみの日付/時間フィールドは使用できません。
  • integer: 入力された日付に加算する数値。 定数が使用される場合、この数値は正または負の整数である必要があります。 数値フィールドが使用される場合、小数点以下表示桁数は無視されます。 このため、整数のみを含むフィールドを使用するか、または (ROUND() 関数の使用などにより) 整数を用いて新しいフィールドを計算することをお勧めします。
  • unit: 加算する時間の単位。 サポートされている単位の値は次のとおりです。
    • "ss" = 秒
    • "mm" = 分
    • "h" = 時間
    • "D" = 日 (デフォルト)
    • "M" = 月
    • "Y" = 年

単位が設定されていない場合、"D" が使用されます。

月が日付/時間フィールドに加算される場合、出力は、月の日数に関係なく、各月の同じ日になります。 月の対応する日が新しい月で有効でない場合は、その月の最終日が使用されます。 たとえば、計算によって 3 か月が入力フィールドに加算され、元の日付の 1 つが「November 30, 2010」である場合、その出力値「February 30, 2022」は無効です。 2022 年はうるう年であるため、結果は「February 28, 2022」と記録されます。

公衆衛生部は、保健区内の患者のワクチン接種記録を残す業務を担っています。 ある特定のワクチンは、60 日以上、180 日未満の間隔をおいて 2 回目の接種を受ける必要があります。 DATEADD() を使用すると、患者が 2 回目の接種を受けられる最初の日付を含むフィールドと、最終的な接種の期日を含むフィールドを作成できます。

最短接種可能日:

  • 関数の構文: DATEADD(first_dose_date, 60, "D")
  • 例のフィールド値:
    • first_dose_date = 7/11/2021
  • 結果の日付: 9/9/2021

最終期日:

  • 関数の構文: DATEADD(first_dose_date, 180, "D")
  • 例のフィールド値:
    • first_dose_date = 7/11/2021
  • 結果の日付: 1/7/2022

TIMEADD(time, integer, unit)

指定した時間数を入力フィールドの時間に加算します。

  • time は日付/時間フィールドである必要があります。 まだ時間コンポーネントを含んでいないフィールドを含め、すべての日付/時間フィールドに時間を加算できます。
  • integer: 入力された時間に加算する数値。 定数が使用される場合、この数値は正または負の整数である必要があります。 数値フィールドが使用される場合、小数点以下表示桁数は無視されます。 このため、整数のみを含むフィールドを使用するか、または (ROUND() 関数の使用などにより) 整数を用いて新しいフィールドを計算することをお勧めします。
  • unit: 加算する時間の単位。 サポートされている単位の値は次のとおりです。
    • "ss" = 秒
    • "mm" = 分
    • "h" = 時間

データセットの日付と時間は UTC (協定世界時) で記録されているため、CST (中部標準時) に変換する必要があります。 TIMEADD() 関数を使用して、CST 時間を使用する日付/時間フィールドを作成できます。

  • 関数の構文: TIMEADD(UTC_date, -6, "h")
  • 例のフィールド値:
    • UTC_date = 7/11/2021 2:30:00 PM
  • 結果の日付: 7/11/2021 8:30:00 AM

DATEDIF(start_date, end_date, [unit])

2 つの日付間の経過時間を計算します。 start_date は、end_date より前の日付でなければなりません。そうでない場合、出力が負の値になります。

  • start_dateend_date は、日付/時間フィールドまたは DATEVALUE() 関数にすることができます。 日付/時間フィールドを使用する場合、フィールド形式に日付 (日時または日付のみ) が含まれている必要があります。 時間のみの日付/時間フィールドは使用できません。
  • unit: 返される時間の単位。 サポートされている単位の値は次のとおりです。
    • "ss" = 秒
    • "mm" = 分
    • "h" = 時間
    • "D" = 日 (デフォルト)
    • "M" = 月
    • "Y" = 年

単位が設定されていない場合、"D" が使用されます。

各単位の結果に対して、端数は次のように処理されます。

  • 秒 - 秒の端数は処理されません。
  • 分 - 日付間の 60 秒ごとに 1 分がカウントされます。 1 分に満たない結果は切り捨てられます。
  • 時間 - 日付間の 60 分ごとに 1 時間がカウントされます。 1 時間に満たない結果は切り捨てられます。
  • 日 - 日付間の 24 時間ごとに 1 日がカウントされます。 1 日に満たない結果は切り捨てられます。
  • 月 - 特定月の日数に関係なく、日付間の月 (例: 1 月 1 日から 2 月 1 日) ごとに 1 月がカウントされます。 1 月に満たない結果は切り捨てられます。 時間などの時間コンポーネントは、計算で考慮されません。
  • 年 - 日付間の 183 日 (半年) ごとに 1 年がカウントされます。 日数が 183 日未満である 1 年に満たない結果は切り捨てられます。

あるレストランのデータセットには、最近の衛生検査の日付があります。 DATEDIF() 関数を使用して、衛生検査日の間の経過日数を計算できます。

例 1:

  • 関数の構文: DATEDIF(Inspection1, Inspection2, "D")
  • 例のフィールド値:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 10/31/2016 2:30:00 PM
  • 出力時間 (日): 77

例 2:

  • 関数の構文: DATEDIF(Inspection1, Inspection2, "D")
  • 例のフィールド値:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 8/16/2016 8:00:00 AM
  • 出力時間 (日): 0

例 3:

  • 関数の構文: DATEDIF(Inspection1, Inspection2, "M")
  • 例のフィールド値:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 10/31/2016 2:30:00 PM
  • 出力時間 (月): 2

TIMEDIF(start_time, end_time, [unit])

2 つの日付/時間値間の経過時間を計算します。 start_time は、end_time より前の日付でなければなりません。そうでない場合、出力が負の値になります。

  • start_timeend_time は、日付/時間フィールドまたは DATEVALUE() 関数にすることができます。 時間 (例: hh:mm:ss) を使用する場合、start_timeend_time はどちらも時刻のみの形式である必要があります。
  • unit: 返される時間の単位。 サポートされている単位の値は次のとおりです。
    • "ss" = 秒 (デフォルト)
    • "mm" = 分
    • "h" = 時間

単位が設定されていない場合、"ss" が使用されます。

各単位の結果に対して、端数は次のように処理されます。

  • 秒 - 秒の端数は処理されません。
  • 分 - 日付間の 60 秒ごとに 1 分がカウントされます。 1 分に満たない結果は切り捨てられます。
  • 時間 - 日付間の 60 分ごとに 1 時間がカウントされます。 1 時間に満たない結果は切り捨てられます。

病院運営レコードのデータセットには、手術の開始時間と終了時間が含まれています。 それぞれの患者の手術に要した時間は、TIMEDIF() 関数を使用して計算できます。

  • 関数の構文: TIMEDIF(TimeIn, TimeOut, "mm")
  • 例のフィールド値:
    • TimeIn = 11:30:00 AM
    • TimeOut = 2:30:20 PM
  • 出力時間 (分): 180

DATEVALUE(date_text, [format])

テキストを日付に変換します。

  • date_text は、文字列フィールド、または引用符で囲んだテキストにすることができます。
  • format (オプション): 入力する日付の書式。 format は、引用符で囲んだテキストとして入力します。 format は、次の単位指定を使用して入力できます。
    • "MM": 月 (1 ~ 12)
    • "DD": 月の日 (1 ~ 31)
    • "YY": 2 桁の年
    • "YYYY": 4 桁の年
    • "HH": 時 (0 ~ 23)
    • "hh": 時 (1 ~ 12)
    • "mm": 分 (0 ~ 59)
    • "ss": 秒 (0 ~ 59)
    • "AM"/"PM" - 大文字小文字が区別されない

注意:

format を指定しない場合、DATEVALUE() 関数内にネストされた関数が予期しない結果を出力することがあります。 このため、DATEVALUE() 内に関数をネストする場合は format を指定することをお勧めします。

format を指定しない場合、区切り記号なしで指定された日付 (例: "10312016") はミリ秒として扱われます。 このため、区切り文字なしで日付を入力する場合は、書式を指定することをお勧めします。

区切り文字が指定されているが、format が指定されていない日付の場合、書式が推定されます。 書式が推定できない場合、デフォルトの "MM-DD-YY" が適用されます。

DATEVALUE() 関数は、引用符で囲まれたテキストまたは文字列フィールドに入力されたテキストだけを読み取ることができます。 日付/時間フィールドを DATEVALUE() 関数の入力として使用することはできません。

あるレストランのデータセットには、最近の衛生検査の日付があります。 現在の日付を指定する DATEVALUE() 関数を使用して、前回の衛生検査日からの経過日数を計算できます。

  • 関数の構文: DATEDIF(Inspection_date, DATEVALUE("10/31/2016", "MM/DD/YYYY"), "D")
  • 例のフィールド値:
    • Inspection_date = 8/15/2016, 11:30:00 AM
  • 結果の数値: 77

日時は、複数の書式を設定できます。 次の例は、テキストを日付書式に設定する方法を示しています。

  • 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()

日/時の書式で現在の日付と時刻を返します。 時刻は、UTC (協定世界時) に基づいて記録されます。

あるレストランのデータセットには、最近の衛生検査の日付があります。 現在の日付を指定する NOW() 関数を使用して、前回の衛生検査日からの経過日数を計算できます。

  • 関数の構文: DATEDIF(Inspection_date, NOW(), "D")
  • 例のフィールド値:
    • Inspection_date= 8/15/2016, 11:30:00 AM
  • 結果の数値: 77

論理関数

論理関数は、文字列入力または数値入力を使用して文字列出力または数値出力を生成します。 入力は、リテラル (引用符で囲んだテキストまたは定数) またはフィールド値にすることができます。 次の表では、例としてフィールド値とリテラル値の組み合わせに加えて、特定のフィールドに含まれていると考えられるサンプル値を使用しています。

構文説明

AND(condition,condition, ...)

2 つ以上の条件を検証して、すべての条件を満たしている場合は TRUE を返します。 AND() を、IF() 関数の condition パラメーター内で使用する必要があります。

  • condition: 少なくとも 1 つの条件付き演算子を含んでいる任意の条件式。 条件は、数値、文字列、およびフィールド値を含むことができます。 次の条件付き演算子を使用できます。
    • >: より大きい
    • <: より小さい
    • >=: 以上
    • <=: 以下
    • =: 等しい
    • <>: 等しくない

データセットには、各ブロック グループ内に住んでいる人の平均年齢が格納されています。 市場調査員は、どのブロック グループが主にミレニアル世代を含んでいるかを知る必要があります。 ミレニアル世代の年齢範囲内の平均年齢を含むブロック グループは、IF() 関数と AND() 関数の組み合わせを使用して見つけることができます。

  • 関数の構文: IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other")
  • 例のフィールド値:
    • MeanAge = 43
  • 結果のテキスト: "Other"

IF(condition, TRUE_expression, [FALSE_expression])

条件を検証し、その結果に基づいて TRUE または FALSE の値を返します。

  • condition: 少なくとも 1 つの条件付き演算子を含んでいる任意の条件式。 条件は、数値、文字列、およびフィールド値を含むことができます。 次の条件付き演算子を使用できます。
    • >: より大きい
    • <: より小さい
    • >=: 以上
    • <=: 以下
    • =: 等しい
    • <>: 等しくない
  • TRUE_expression: 条件が TRUE である場合に使用される条件式。 このパラメーターは必須です。
  • FALSE_expression: 条件が FALSE である場合に使用される条件式。 FALSE_expression を指定しない場合、デフォルトは null になります。

TRUE_expression および FALSE_expression は、ネストされた IF() 関数などの任意の有効な条件式にすることができます。 TRUE_expression および FALSE_expression のデータ タイプは、同じタイプ (たとえば、両方とも文字列または両方とも数値) である必要があります。

データセットには、店舗の収入と支出が格納されたフィールドが含まれています。これらのフィールドを使用して、店舗の状態 (純利益または純損失のいずれを記録したか) を確認することができます。 IF() 関数を使用して、各店舗の状態を確認することができます。

  • 関数の構文: IF(Revenue>Expenses, "Profit","Loss")
  • 例のフィールド値:
    • Revenue = 400,000
    • Expenses = 350,000
  • 結果のテキスト: "Profit"

ISNULL(field)*

フィールドの値が NULL かどうかをテストします。 テストの結果、値が NULL 以外の場合は出力値 0 が割り当てられ、値が NULL の場合は出力値 1 が割り当てられます。

  • field: 文字列、数値、割合/比率、日付/時間のフィールド タイプをサポートしています。

ISNULL() は単独で使用したり、IF() 関数の condition パラメーター内で使用したりできます。

データセットには、自転車運転者が関わった交通事故の位置と、衝突事故が発生した道路の自転車ルートのタイプが含まれています。 自転車ルートのない道路で発生した衝突事故の場合、RouteType フィールドは空白のままになります。 データセットは、IF()ISNULL() 関数の組み合わせを使用して、NULL 値を入力するように更新できます。

  • 関数の構文: IF(ISNULL(RouteType), "None", RouteType)

ISNOTNULL(field)*

フィールドの値が NULL 以外かどうかをテストします。 テストの結果、値が NULL の場合は出力値 0 が割り当てられ、値が NULL 以外の場合は出力値 1 が割り当てられます。

  • field: 文字列、数値、割合/比率、日付/時間のフィールド タイプをサポートしています。

ISNOTNULL() は単独で使用したり、IF() 関数の condition パラメーター内で使用したりできます。

データセットには、自転車運転者が関わった交通事故の位置と、衝突事故が発生した道路の自転車ルートのタイプが含まれています。 自転車ルートのない道路で発生した衝突事故の場合、RouteType フィールドは空白のままになります。 データセットは、IF()ISNOTNULL() 関数の組み合わせを使用して、NULL 値を入力するように更新できます。

  • 関数の構文: IF(ISNOTNULL(RouteType), RouteType, "None")

OR(condition,condition, ...)

2 以上の条件をテストして、少なくとも 1 つの条件を満たしている場合は TRUE を返します。 OR() を、IF() 関数の condition パラメーター内で使用する必要があります。

  • condition: 少なくとも 1 つの条件付き演算子を含んでいる任意の条件式。 条件は、数値、文字列、およびフィールド値を含むことができます。 次の条件付き演算子を使用できます。
    • >: より大きい
    • <: より小さい
    • >=: 以上
    • <=: 以下
    • =: 等しい
    • <>: 等しくない

データセットには、ある都市全体の犯罪の位置が含まれています。 犯罪分析者は、類似する他の犯罪と比較して、窃盗のパターンを分析する必要があります。 窃盗を他の犯罪と比較するために、この分析者は、各犯罪が窃盗と見なされるかどうかを最初に決定する必要があります。 犯罪の種類は、IF() 関数と OR() 関数の組み合わせを使用して決定できます。

  • 関数の構文: IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other")
  • 結果のテキスト: "Larceny"

* データのないフィールドは、NULL ではなく空として構成される場合があります。 この場合には、ISNULL() および ISNOTNULL() から予想された結果が返されません。 ISNULL(field) および ISNOTNULL(field) の代わりに、それぞれ field="" および field<>"" を使用する必要があります。