Skip To Content

フィールド操作

ホスト フィーチャ レイヤーの所有者、または組織の管理者は、ホスト フィーチャ レイヤー上のフィールドを追加、削除、および計算できます。制限がいくつかあります。たとえば、OBJECTID フィールドの削除や計算はできません。制限の完全なリストについては、「制限」セクションをご参照ください。

前提条件:

テーブル上のフィールドを追加、削除、または計算するには、まずテーブルを表示する必要があります。テーブルの詳細については、「テーブルの表示」をご参照ください。

  1. テーブルに表示するフィーチャ データがあるマップを開きます。
  2. [詳細] をクリックし、[コンテンツ] をクリックします。
  3. フィーチャ レイヤーを参照して選択し、[テーブルの表示] をクリックします。マップの下部にテーブルが表示されます。

フィールドの追加

  1. [テーブル オプション] をクリックします。
  2. [フィールドの追加] をクリックします。
    • [名前] - フィールド名には、空白、ハイフン、括弧、ブラケットなどの特殊文字や、$、%、# のような文字を使用できません。一般的にデータベースの予約済みキーワードとして認識される単語 (CHARACTERDATE など) は、フィールド名に使用しないでください。 特殊文字やデータベースの予約済みキーワードが含まれているフィールド名を追加しようとすると、エラー メッセージが表示されます。
    • [エイリアス] - フィールドの代替名であり、実際の名前より説明的でユーザーにわかりやすい名前にすることができます。エイリアスには、特殊文字やデータベースの予約済みキーワードを使用できます。
    • [タイプ] - 次のいずれかです。
      • [日付] - 日付と時刻のデータ。「日付関数」セクションの説明をご参照ください。
      • [Double (倍精度浮動小数点数)] - 小数点以下の桁がある数字。
      • [Integer (整数)] - -2,147,483,648 ~ 2,147,483,647 の自然数 (long integer)。
      • [String (文字列)] - 一連の任意の文字。
    • [長さ] - 文字列フィールドに格納できる文字の最大長。[長さ] は、[文字列] フィールド タイプに必要です。デフォルトは 256 文字です。

フィールドの削除

  1. 削除するフィールドが含まれている列をクリックします。
  2. [削除] をクリックします。フィールドを削除するか確認を求められます。

OBJECTIDCREATIONDATECREATOREDITDATEEDITOR などの特定のフィールドと、マップでスタイル設定やフィルターに使用されるフィールドでは、[削除] オプションを使用できません。ただし、他のマップがシンボルやフィルターにフィールドを使用していて、これらのフィールドがユーザー自身のマップで使用されるものと異なる場合、これらのフィールドには [削除] オプションを使用できます。他のマップ内でシンボルやフィルタリングに使用されている可能性のあるフィールドを削除する場合は注意してください。

フィールドの計算

  1. 計算する値のあるフィールドが含まれている列をクリックします。
  2. [計算] をクリックします。[式の設定] ダイアログ ボックスが開きます。

基本操作

[式の設定] ダイアログ ボックスでは、加算、減算、乗算、除算などの演算子を使用して、単純な式を作成できます。

  • SAMPLE という数値フィールド内のすべての値に 100.0 を乗算するには、式に「SAMPLE * 100.0」と入力します。
  • より複雑な方程式には、括弧を使用して計算順序を指定できます (例: SAMPLE * (BASELINE - 40))。
  • 算術演算子は、文字列フィールドには使用できません。このトピックで説明する文字列関数を使用する必要があります。
  • タイプが double のフィールドを整数のフィールドに変換する場合、式に CAST 関数が自動的に追加される場合があります。たとえば、POP という double フィールドを SAMPLE という整数フィールドに変換する場合、式は CAST(SAMPLE AS FLOAT) と表示されます。CAST 関数を削除しないでください。CAST 関数の詳細については、以下の「数値関数」をご参照ください。
  • 文字列にアポストロフィを挿入する場合は、アポストロフィを単一引用符で囲みます。例: 'Nightingale''s'。二重引用符は使用しないでください。

式を作成したら、[計算] ボタンをクリックします。エラーが発生した場合、ダイアログ ボックスの下部にエラー メッセージが表示されます。

その他の考慮事項

  • レイヤーにフィルターを適用している場合、フィルター条件を満たすレコードの値だけが計算されます。
  • [式の設定] では、フィールド名のみが使用できます。フィールド エイリアスは使用できません。[フィールド] リストには、計算に使用できるすべてのフィールド名が表示されます。このリストは、[文字列][数値]、および [日付] の各フィールド タイプでフィルタリングできます。
    • [フィールド] リスト内でフィールド名の上にポインターを合わせると、フィールド エイリアスとフィールド タイプが表示されます。
    • [フィールド] リスト内のフィールド名をクリックすると、フィールドが式に追加されます。

関数の使用

演算子を使用した単純な式だけでなく、関数も使用できます。関数には、フィールド名、リテラル、その他の関数を使用できます。たとえば、TOTALPOPPOP18 で除算する double フィールドを計算する必要があるとします。フィーチャにゼロの POP18 が含まれている場合に、この計算を実行すると、ゼロ除算エラーが発生します。後述の NULLIF 関数を使用すると、これを防ぐことができます。式は、TOTALPOP / NULLIF(POP18, 0) のようになります。

関数は引数を取ります。以下のテーブルでは、次のような引数を使用できます。

  • フィールド タイプが引数のタイプ (文字列、数値、または日付) と一致するフィールド名。
  • 'Sailboat'(単一引用符で囲まれた文字列) などのリテラル、数字の 5、または単一引用符で囲まれた MM/DD/YYYY hh:mm:ss 形式の日付。
  • 組織が標準でない SQL クエリを許可している場合、文字列リテラル内の英語以外の文字にエスケープ文字の N を使用する必要があります (例: N'针叶林')。
  • 適切なタイプ (文字列、数値、日付) の値を返す関数。たとえば、FLOOR(POWER(SAMP_ERR, 0.5)) は、SAMP_ERR の平方根以下で最大の整数を返します。

わかりやすいように、以下のテーブルの説明列にあるほとんどの例では、リテラルの引数を使用しています。これらの引数をフィールド名や別の関数に置き換えることができます。

文字列関数

関数説明

CHAR_LENGTH(string)

string の文字数を返します。結果は整数です。

例:

  • CHAR_LENGTH('Redlands') - 結果は 8 です。

CONCAT(string1, string2)

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

指定できるのは、2 つの文字列だけです。3 つ以上の文字列を連結するには、以下の例のように、CONCAT を連続して使用してネストします。

例:

  • CONCAT('A', 'B') - 結果は 'AB' です。
  • CONCAT('A', CONCAT(':', 'B')) - 結果は 'A:B' です。

NULL 値は空の文字列に変換されます。

POSITION(substring, string )*

注意:

* ポータルのホスティング サーバーが ArcGIS Data Store または PostgreSQL で管理されたデータベースを使用している場合、代わりに POSITION(string 内の substring) を使用する必要があります。

string 内で substring が最初に現れる位置を返します。substring が見つからない場合、結果は 0 になります。

例:

  • POSITION('boat', 'Sailboat') - 結果は 5 です。
  • POSITION('motor', 'Sailboat') - 結果は 0 です。

SUBSTRING(string, start, length)

string の一部を返します。start は、返される文字列の開始位置を指定する整数インデックスであり、 length は返される文字数です。

例:

  • SUBSTRING('Sailboat', 5, 4) - 結果は 'boat' です。
  • SUBSTRING('Sailboat', 1, 4) - 結果は 'Sail' です。
  • SUBSTRING('Sailboat', 5, 100) - 結果は 'boat' です。

TRIM(BOTH | LEADING | TRAILING ' ' FROM string)

string の先頭または末尾にあるすべての空白を削除した文字列を返します。

例:

  • TRIM(BOTH ' ' FROM ' San Bernardino ') - 結果は 'San Bernardino' です。

2 つ目の引数は、1 つの空白を囲んだ 2 つの単一引用符である点に注意してください。

UPPER(string)

string 内のすべての文字を大文字に変換した文字列を返します。

例:

  • UPPER('Sailboat') - 結果は 'SAILBOAT' です。

LOWER(string)

string 内のすべての文字を小文字に変換した文字列を返します。

例:

  • LOWER('Sailboat') - 結果は 'sailboat' です。

数値関数

以下に説明する数値関数に加えて、データの列の統計情報を計算できます。これらの統計情報には、レコード数、最小値および最大値、すべての値の合計、平均値、およびすべての値の標準偏差などがあります。

  1. 統計情報を取得する値のあるフィールドが含まれている列をクリックします。
  2. [統計情報] をクリックします。ダイアログ ボックスに計算された統計情報が表示されます。

関数説明

ABS(number)

number. の絶対値 (正の値) を返します。

CEILING(number)

number 以上の最も小さい整数を返します。

例:

  • CEILING(12.93) - 結果は 13 です。

COS(number)

number の角度の余弦を返します。角度の単位はラジアンです。

CAST(number AS FLOAT | INT)

数値を別のタイプに変換します。FLOAT は number を double に変換し、INT は整数に変換します。

FLOOR(number)

number 以下の最も大きい整数を返します。

例:

  • FLOOR(12.93) - 結果は 12 です。

LOG(number)*

注意:

* ポータルのホスティング サーバーが ArcGIS Data Store または PostgreSQL で管理されたデータベースを使用している場合、代わりに LN(number, decimal_place) を使用する必要があります。

number の自然対数です。

LOG10(number)*

注意:

* ポータルのホスティング サーバーが ArcGIS Data Store または PostgreSQL で管理されたデータベースを使用している場合、代わりに LOG(number, decimal_place) を使用する必要があります。

number の常用対数です。

MOD(number, n)

numbern で除算したときの余りを返します。nnumber のタイプは、整数である必要があります。

例:

  • MOD(10, 4) - 結果は 2 です。
  • MOD(CAST(DBLFIELD AS INT), 4) - DBLFIELD は タイプが double のフィールドであるため、値を double から整数に変換するために CAST 関数が必要です。

NULLIF(number, value)

numbervalue と等しい場合に、null を返します。NULLIF は、value を 0 に設定してゼロ除算エラーを防ぐためによく使用されます。

引数のフィールド値が NULL であった場合、計算結果は NULL になります。

たとえば、TOTALPOPPOP18 で除算する double フィールドを計算する必要があるとします。フィーチャにゼロの POP18 が含まれている場合に、この計算を実行すると、ゼロ除算エラーが発生します。この場合、POP18 がゼロであるレコードを非表示にするフィルターを作成してから、計算を実行できます。この場合、NULLIF を使用すると簡単です。

  • TOTALPOP / NULLIF(POP18, 0) - POP18 がゼロと等しい場合は NULL を返し、それ以外の場合は TOTALPOP / POP18 の値を返します。

POWER(number , y)

numbery 乗した値を返します。

ROUND(number , length)

number を指定の長さに丸めます。

length が正の数の場合、数値は length で指定された小数点以下の桁数に丸められます。length が負の数の場合、小数点の左側が丸められます。

例:

  • ROUND(10.9934,2) - 10.99 を返します。
  • ROUND(10.9964,2) - 11.00 を返します。
  • ROUND(111.0,-2) - 100.00 を返します。

SIN(number)

number の角度の正弦を返します。角度の単位はラジアンです。

TAN(number)

number の角度の正接を返します。角度の単位はラジアンです。

TRUNCATE(number, decimal_place)*

注意:

* ポータルのホスティング サーバーが ArcGIS Data Store または PostgreSQL で管理されたデータベースを使用している場合、代わりに TRUNC(number, decimal_place) を使用する必要があります。

指定した decimal_placenumber を切り捨てます。

decimal_place が正の数の場合、指定した小数点以下の桁数に切り捨てられます。decimal_place が負の数の場合、小数点の左側が切り捨てられます。

例:

  • TRUNCATE(111.996,2) - 10.99 を返します。
  • TRUNCATE(111.996,-2) - 100.00 を返します。

日付関数

日付フィールドには、日付と時刻を割り当てることができます。2 つの日付の差分や、日付フィールドへの時刻の追加などの操作は、サポートされていません。

日付フィールドの計算を開始する前に、注意すべき事項がいくつかあります。

日付フィールドの表示形式の変更

テーブル内の日付の表示形式を変更できます。テーブルに表示される書式は、ポップアップで構成されたものと同じです。日付フィールドの表示形式を変更するには、[ポップアップ プロパティ][属性の構成] ウィンドウでフィールド エイリアスを選択します。

MM/DD/YYYY hh:mm:ss 形式での日付の入力

テーブルに表示される日付の形式に関係なく、日付は必ず MM/DD/YYYY hh:mm:ss 形式で入力し、単一引用符で囲みます。たとえば、日付フィールドを 5:00PM on May 27, 2014 に設定するには、「'05/27/2014 05:00:00PM'」、「'05/27/2014 5:00PM'」、または「'05/27/2014 17:00:00'」 (24 時間制) と入力します。時刻のみの格納はサポートされていません。時刻は常に日付のコンポーネントです。

日付は UTC 時間で入力および格納されます

テーブル内の日付フィールドは、UTC の日付と時刻で入力されることを前提としています。UTC とは協定世界時 (Universal Time Coordinated) を表し、イギリスのグリニッジ近くに位置する地球の本初子午線 (経度ゼロ度) の現在時間とほぼ等しい時間です。UTC は、GMT (グリニッジ標準時) のより厳密なバージョンです。データをホストするサーバーは、物理的に世界中の任意の場所に配置できるので、日付は UTC を前提としています。UTC ではなくローカル タイム ゾーンの日付と時刻を格納する方法は、特にユーザーやデータをホストするサーバーが別のタイム ゾーンに移動する場合に、さまざまな種類の問題を引き起こします。

日付フィールドが表示されるとき、日付は必ず UTC 時間からローカル時間に変換されます。これは、コンピューターの設定を参照して、タイム ゾーン設定を調べることで実現しています。たとえば、コンピューターが PST (太平洋標準時) に設定されているとします。PST は UTC より 8 時間前です。UTC 時間が 9:00AM の場合、PST は 1:00AM PST (サマータイムの時期は 2:00AM) になります。

式に入力した日付は、現在のタイム ゾーンの時間ではなく、UTC 時間と見なされます。この前提により、混乱が生じる可能性があります。たとえば、PST に設定されたコンピューターを使用して「'05/27/2014 05:00:00PM'」と入力した場合、上記の時間変換のために、5/27/2014 9:00AM と表示されます。

UTC とローカル タイム ゾーンの変換に対処するためのヒントを以下に示します。

  • 現在の日付と時刻を入力する場合、以下の時間関数の 1 つを使用します。これらの関数は、必ず UTC 関数を返します。
  • 時刻コンポーネントを含まない日付を入力している場合、12 時間を日付に追加します。たとえば、「'5/27/2014'」と入力する代わりに「'5/27/2014 12:00PM'」または「'5/27/2014 12:00'」と入力します。このオフセットが必要な理由は、時刻コンポーネントのない日付を入力すると、その日付の午前 0 時として入力されるためです (5/27/2014 は 5/27/2014 00:00:00 に変換されます)。これがローカル タイム ゾーンで表示されると、時間が加算または減算されます。たとえば、PST を使用していて「5/27/2014」と入力した場合、これは 5/26/2014 と表示されます (27 日の午前 0 時から 7 時間減算されます)。
  • 時刻コンポーネントがある日付を入力している場合、タイム ゾーンのオフセットを時間に適用します。たとえば、「5/27/2014 12PM PST」を入力する必要がある場合、8 時間の時差を適用して、「'5/27/2014 8:00PM'」と入力します。タイム ゾーンのオフセットを調べるには、「UTC 時差 計算」などの検索語句を使用して、Web を検索できます。
  • 日付フィールドの内容を UTC 時間で表示するには、テーブルに文字列フィールドを追加して、日付フィールドと等しくなるように計算します。日付はタイム ゾーンのオフセットを使用せずに、文字列に変換されます。この文字列には、ミリ秒も含まれます。

日付関数

関数説明

CURRENT_DATE()*

注意:

* ポータルのホスティング サーバーが ArcGIS Data Store または PostgreSQL で管理されたデータベースを使用している場合、代わりに CURRENT_DATE を使用する必要があります。

現在の日付を UTC 時間で返します。

CURRENT_TIME()*

注意:

* ポータルのホスティング サーバーが ArcGIS Data Store または PostgreSQL で管理されたデータベースを使用している場合、代わりに CURRENT_TIME を使用する必要があります。

現在の UTC の日付と時刻 (時間、分、秒) を返します。

CURRENT_TIMESTAMP()*

注意:

* ポータルのホスティング サーバーが ArcGIS Data Store または PostgreSQL で管理されたデータベースを使用している場合、代わりに CURRENT_TIMESTAMP を使用する必要があります。

現在の UTC の日付と時刻 (時間、分、秒、ミリ秒) を返します。

制限

  • OBJECTID フィールドや、シンボル、タイム スライダー、フィルター、ラベル、または編集情報の記録に使用されるフィールドは削除できません。ただし、他のマップがシンボルやフィルターのフィールドを使用しており、これらのフィールドがユーザー自身のマップで使用されているものと異なる場合、これらのフィールドには [削除] オプションを使用できる点に注意してください。他のマップ内でシンボルやフィルタリングに使用されている可能性のあるフィールドを削除する場合は注意してください。
  • レイヤーのコピーには、追加、削除、および計算できません。
  • 追加、削除、および計算できるのは、ホスト フィーチャ レイヤーのみです。ホスト フィーチャ レイヤーの所有者または組織の管理者である必要があります。
  • 計算できるのは、ポータルのホスティング サーバーで ArcGIS Data Store が使用されている場合のみです。
  • 標準の SQL クエリのみをサポートしています。