方法

文字列フィールドを数値フィールドに変換する

Last Published: January 13, 2023

サマリー

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

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

手順

ArcGIS Pro 1.x および 2.x の場合

  1. ArcGIS Pro プロジェクトを開き、該当するデータまたはテーブルをプロジェクトに追加します。
  2. [コンテンツ] ウィンドウでデータかテーブルを右クリックし、[属性テーブル] を選択します。
  3. [追加] ボタンをクリックして新しいフィールドを作成します。 [追加] ボタンの画像
  4. [フィールド] リスト ビューで、次のプロパティを設定します。
    1. 新しいフィールドの名前を設定します。
    2. [データ タイプ] を数値タイプに設定します。 最も一般的なのは、Long または Double フィールド タイプです。
    3. [数値形式][数値] に設定し、必要に応じて設定を調整します。
    4. 必要に応じて、ドメイン、デフォルト、フィールドの長さの値を設定します。
  5. 上部のリボンで ([フィールド] タブ)、[保存] をクリックし、編集内容をテーブルに保存して、[フィールド] ビューを閉じます。
  6. 新しく作成した数値フィールドの見出しを右クリックし、[フィールド演算 (Calculate Field)] を選択します。 [フィールド演算] ジオプロセシング ダイアログ ボックスが開きます。
  7. [入力テーブル][フィールド名]、および [式の種類] は自動的に入力されています。 [条件式フィールド] リスト ウィンドウで、新しく作成された数値フィールドに移行する必要がある属性を含む文字列フィールドを特定し、ダブルクリックします。 [条件式] テキスト ボックスには次のように入力されます。
!<String field name>!
[フィールド演算] ウィンドウのダイアログ ボックスの画像
  1. [実行] をクリックして、ツールを実行します。
注意: 文字列フィールドに NULL (空) の値があると、ツールの実行に失敗する可能性があります。 詳細については、ArcGIS Pro Web ヘルプ ドキュメント「新規フィールドの作成とドメインおよびデフォルト値の適用」をご参照ください。

ArcGIS Desktop 10.x の場合

  1. ArcMap を開き、レイヤーまたはファイル ジオデータベースの属性テーブルを開きます。
  2. ArcMap でフィールドのデータ タイプを確認するには、フィールドの見出しを右クリックし、[プロパティ] を選択します。
[フィールド プロパティ] ダイアログ ボックスの画像。
  1. [テーブル] ウィンドウの左上で、[テーブル オプション] ドロップダウン ボタン ユーザー追加された画像 をクリックして [フィールドの追加] を選択します。
注意: [フィールドの追加] オプションは、ユーザーがデータへのアクセス権を持ち、かつデータが他のユーザーやアプリケーションからアクセスされていない場合にのみ使用されます。 このオプションは、マップが編集セッションである場合にも無効になります。
  1. 新しいフィールドの [名前] を指定します。
  2. フィールドの [タイプ][Long Integer] または [Double] などの数値タイプに設定します。
  3. 必要に応じて、[全桁数][小数点以下桁数] を設定します。
  4. [OK] をクリックします。
  1. 新しく作成したフィールドの見出しを右クリックして、[フィールド演算] を選択します。
  2. 文字列フィールドに数値しか含まれない場合、次の手順を実行して、数値フィールドに属性をコピーします。
    1. [形式][VB Script] に設定します。
    2. 条件式のウィンドウに「String field nameを入力するか、[フィールド] ボックスで文字列フィールドを選択して [OK] をクリックします。
[フィールド演算] ダイアログ ボックスの画像
  1. 文字列フィールドに英数字が混合している場合は、次の手順を実行して属性をコピーします。
    1. [形式][VB Script] に設定し、[コードブロックを表示] チェックボックスをオンにします。
    2. 以下のコードをコピーして [事前に作成したスクリプト コード] テキスト ウィンドウに貼り付け、「String field name」を変換するフィールドの名前に置き換えます。 左右の角括弧はそのままにしておきます。
Dim String, Check String = [String field name] Check = IsNumeric(String) If Check = True then Output = CDbl(String) else Output = null End if
注意: 5 行目の「CDbl(String)」を、手順 3 (b) で選択した数値フィールド タイプに応じて、次の関数に置換します。 - Integer: CInt(String) - Long: CLng(String) - Double: CDbl(String)
  1. 2 つ目の条件式ウィンドウで (この例では「DoubleV =」)、次のように入力します。
出力
次の図に、[フィールド演算] ダイアログ ボックスを示します。 この例では、文字列フィールドを [Double] フィールドに変換します。
[フィールド演算] ウィンドウに入力されたコードの画像。
  1. [OK] をクリックします。 スクリプトを実行すると、数値フィールドに文字列フィールドの値が入ります。
注意: 文字列フィールドに数値以外の文字またはシンボルが含まれている場合、数値フィールドに変換してもそのセルの値はデフォルトの <Null> のままです。

ArcView GIS 3.x の場合

注意: ArcView GIS は、2012 年 12 月の時点で廃止された製品です。 以下の手順は、情報提供のみを目的としています。

文字列フィールドを数値フィールドに変換するには、新しい数値フィールドを作成して、元のフィールドから新しいフィールドに値をコピーします。

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

記事 ID:000002287

ArcGIS の専門家からヘルプを受ける

テクニカル サポートへのお問い合わせ

Esri Support アプリのダウンロード

ダウンロード オプションに移動