Skip To Content

フィールドの計算

[データ テーブルの表示] ウィンドウを使用して、新しいフィールドをデータセットに追加できます。[データ テーブルの表示] を使用すると、データセットからフィールドを選択して、演算子関数を適用することで、成長率や損失率などの新しいフィールドや時間の経過に伴う変化を追加することができます。

注意:
  • データ テーブルは、データの代表的な内容を表示するもので、2,000 行に制限されています。テーブルを昇順と降順に並べ替えることで、それぞれ上位 2,000 行と下位 2,000 行を表示できます。すべての計算がデータセット全体に対して実行されます。
  • 計算された新しいフィールドは、ワークブックのみに表示され、元のデータセットには表示されません。たとえば、Microsoft Excel から追加された CommodityPrices データセットに、計算された percentchange フィールドを追加すると、percentchange フィールドはワークブックで使用可能になりますが、元の Excel ファイルには追加されません。計算フィールドをワークブックの範囲外に保持したい場合は、データセットを共有することで、新しいフィーチャ レイヤーを作成できます。
  • また、[回答の検索] にある [変化 (%) の計算][比率の計算][Z スコアの計算] を使用して、フィールドを計算することもできます。
ヒント:

[データ テーブルの表示] を使用して、正規化されたデータをマップ、チャート、テーブルのデータセットに追加します。データが計算され、データセットに追加されたら、フィールドが割合/比率フィールド 割合/比率フィールド として識別されるようにフィールドの役割を変更します。

データセットへのフィールドの追加

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

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

    注意:

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

  4. 新しい列の見出しをクリックして、よりわかりやすい名前を指定します。
  5. [fx] または [計算関数の入力] をクリックし、関数、フィールド名、演算子のメニューを表示して、式を作成します。同等のキーボード コマンドを使用して、[fx] メニューのボタンを置き換えることもできます。
  6. 必要に応じて、関数、フィールド、演算子を使用して、計算を完了します。
  7. [実行] をクリックします。[実行] ボタンが有効化されていない場合、計算の構文にエラーが発生します。
  8. 計算された新しいフィールドが、データセットの下部に表示されます。計算フィールドを削除するには、それを選択して [計算フィールドの削除] ボタン 計算フィールドの削除 をクリックします。

演算子

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

演算子使用

+

加算

-

減算

×

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

÷

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

xy

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

<

より小さい

>

より大きい

=

等しい

<=

以下

>=

以上

<>

等しくない

,

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

(

左括弧

)

右括弧

AND

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

または

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

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

注意:

フィールドを計算するとき、AND と OR は IF() 関数内で使用する必要があります。

Function演算子

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 は異なります。start_num 関数を使用して、FIND() を見つけることができます。

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

LEFT(text, num_chars)

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

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

交通事故のデータセットには事故発生日のカテゴリ フィールドがあり、曜日、日付、年が含まれています。曜日別の事故を調査する目的で、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 の値が文字列の長さより大きい場合、空白文字が返されることはありません。

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

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

RIGHT(text, num_chars)

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

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

国立公園のデータセットには、公園名と 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 = "Spew"
  • 結果のテキスト: "SPEW"

VALUE(text, [format])

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

  • format: 数値の小数点として使用する文字を指定します。format は、カンマ (",") またはドット (".") にすることができます。format を指定しない場合、デフォルトの小数点はドットです。

注意:

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

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 where:
θ = the angle in degrees
π ≈ 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(field)
  • field の数値の例: 4、5、11、6.5
  • 結果: 11

MIN(number)

最小値を返します。

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

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 where:
θ = the angle in degrees
π ≈ 3.14

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

SUM(number)

合計値を返します。

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

TAN(number)

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

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

radians = θπ/180 where:
θ = the angle in degrees
π ≈ 3.14

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

日付関数

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

構文説明

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 パラメーター以外のすべての入力フィールドには、数値または文字列を指定できます。数値は整数値である必要があります。

あるレストランのデータセットには、最近の衛生検査の日時を含む文字列フィールドがあります。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")

DATEDIF(start_date, end_date, unit)

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

  • start_dateend_date は、日付フィールドまたは DATEVALUE() 関数にすることができます。
  • unit: 返される時間の単位。サポートされている単位の値は次のとおりです。
    • "ss" : 秒 (デフォルト)
    • "mm" : 分
    • "h" : 時
    • "D" : 日
    • "M" : 月
    • "Y" : 年

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

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

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" : 大文字小文字が区別されない

注意:

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

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

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

"AM"/"PM" 以外の文字は日付の指定に使用できません。このため、"31 Oct 2016" のような日付はサポートされません。

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

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

  • 関数の構文: DATEDIF(Inspection_date, DATEVALUE("10/31/2016", "DD/MM/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 pm", "MM/DD/YYYY HH:mm:ss AM")
  • DATEVALUE("25-08-2008 08:40:13 am", "DD/MM/YYYY hh:mm:ss PM")

NOW()

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

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

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

論理関数

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

構文説明

AND(condition,condition, ...)

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

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

OR(condition,condition, ...)

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

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

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

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