日本語

操作手順: 文字列フィールドを数値フィールドに変換

概要

属性テーブルの元のデータ型が適切に設定されていないことが原因でデータ分析の実行ができない場合、文字列フィールドの値を数値に変換する場合がよくあります。 (特に外部ソースのデータを共有またはインポートする場合) データの整合性を確保するために、フィールドを別のタイプに変換する方法は、データを目的のタイプの新しいフィールドにコピーすることです。

次に示す 3 つの解決策は、1 つ目は ArcGIS for Desktop 10.1 ~ 10.4.1 に対応し、2 つ目の解決策は ArcGIS Pro 1.x、3 つ目はもっと古いソフトウェア (ArcView GIS 3.x など) に対応します。

手順

ArcGIS Desktop 10.1 ~ 10.4.1

  1. ArcMap を開き、レイヤーまたはファイル ジオデータベースの属性テーブルを開きます。
  2. ArcMap でフィールドのデータ タイプを確認するには、フィールドの見出しを右クリックし、[プロパティ] を選択します。この例では、String タイプのフィールドを Double に変換します。
    A picture of the Field Properties window.
  3. [テーブル] ウィンドウの左上で、[テーブル オプション] ドロップダウン ボタン User-added image をクリックして [フィールドの追加] を選択します。
    1. タイプが Double のフィールドを作成します。
    2. 名前を指定します。
    3. 必要に応じて、全桁数と小数点以下桁数を設定します。
    4. [OK] をクリックします。
  4. 新しく作成したフィールドの見出しを右クリックして、[フィールド演算] をクリックします。
  5. 文字列フィールドに数値しか含まれていない場合は、次の手順を実行することで目的の結果を得られます。
    1. 条件式のウィンドウに [文字列フィールド名] を入力します。
    2. [OK] をクリックします。
  6. ただし、文字列フィールドに英数字と数値が混在している場合は、もっと詳細なアプローチが必要になります。
    1. [形式][VB Script] に設定し、[コードブロックを表示] をオンにした状態で、以下のコードをコピーして [事前に作成したスクリプト コード] テキスト ウィンドウに貼りつけ、コード内の String field name を変換するフィールドの名前に置き換えます。 左右の角括弧はそのままにしておきます。
    2. Dim String, Check
      String = [String field name]
      Check = IsNumeric(String)
      If Check = True then
      Output = CDbl(String)
      else
      Output = null
      End if
      In the (in this example, "DoubleV =") expression window, type:
      出力
      
    3. [フィールド演算] ウィンドウは次のようになります。
      A picture of the code entered into the Field Calculator window.
    4. [OK] をクリックします。
  7. スクリプトを実行すると、Double フィールドに String フィールドの値が入ります。
注意:
String フィールドに数値以外の文字またはシンボルが含まれている場合、Double フィールドに変換してもそのセルの値はデフォルトのゼロのままです。

ArcGIS Pro 1.x

  1. ArcGIS Pro プロジェクトを開きます。 該当するデータまたはテーブルをプロジェクトに追加します。
  2. データまたはテーブルを右クリックして、[属性テーブル] を選択します。
  3. [新規作成] ボタン User-added image をクリックして、新しいフィールドを作成します。 [フィールド] リスト ビューで、フィールドに名前を付け、[データ タイプ][Double] に設定し、[数字の形式][数値] になっていることを確認します (さらに必要に応じて設定を調整します)。 必要に応じて、ドメイン、デフォルト、長さの値を設定します。
  4. 上部のリボンで、[保存] をクリックし、編集内容をテーブルに保存して、[フィールド] タブを閉じます。
  5. 新しく作成した Double フィールドの見出しを右クリックし、[フィールド演算 (Calculate Field)] を選択します。 [フィールド演算のジオプロセシング] ダイアログが開きます。
  6. String フィールドに (空) の値がある場合、計算を実行する前にそれらを除くサブセットを選択して、[条件式] テキスト ボックスに次のように入力します。
    !!
    条件式を確認して、ツールを実行します。
注意:
String フィールドに NULL (空) の値があると、ツールの実行に失敗する可能性があります。 詳細については、ArcGIS Pro Web ヘルプ ドキュメント「新規フィールドの作成とドメインおよびデフォルト値の適用」をご参照ください。

ArcView GIS 3.x

文字列フィールドを数値フィールドに変換するには、新しい数値フィールドを作成して、元のフィールドから新しいフィールドに値をコピーします。
  1. テーブルに数値フィールドを追加します。
    1. テーブルを開き、[テーブル] メニューで [編集の開始] を選択します。
    2. [編集] メニューから [フィールドの追加] を選択します。
    3. [フィールド定義] ダイアログ ボックスで、次の操作を行います。
      1. [名前] を適切な名前に設定します (Area など)。
      2. [タイプ][数値] に設定します。
      3. [幅] を適切な数値に設定します (32 など)。
      4. [桁数] を目的の数値に設定します (6 など)。
      5. [OK] をクリックします。
    4. [テーブル] メニューで [編集の終了] を選択して、編集内容を保存します。
  2. [フィールド演算] を使用して、新しいフィールドに値をコピーし、その値を数値に変換します。
    1. 必要に応じて、テーブルを開いて [編集の開始] を選択します。
    2. [数値] フィールドを選択します。
    3. [フィールド] メニューから [計算] を選択します。
    4. [フィールド] リストの文字列フィールドをダブルクリックします。
    5. [タイプ][文字列] に設定します。
    6. [リクエスト] リストを下にスクロールして、[AsNumber] をダブルクリックします。
最終的な条件式は、次のようになります。
	[Strng_fld].AsNumber
  1. [OK] をクリックします。
  2. [テーブル] メニューで [編集の終了] を選択して、編集内容を保存します。

関連情報