サマリー
以下の手順は、Excel スプレッドシート (*.xls) ファイルを ArcMap に取り込む方法を示しています。
ArcMap の JOIN 関数を使用して *.xls ファイルとフィーチャクラスを結合するには、*.xls ファイルが一定の基準を満たしている必要があります。
- 結合に使用するスプレッドシートとフィーチャクラスのフィールドは同じタイプでなければなりません (Double、Text、Short、Integer など)。
- *.xls ファイルの名前とワークシートの名前には、スペースなど、アンダースコア以外の特殊文字を含むことはできず、先頭を数字にすることもできません。
- スプレッドシートの 1 行目は、ArcMap にはフィールド名として読み込まれます。 スプレッドシートを ArcMap のフィーチャクラスと正常に結合するには、スプレッドシートの 1 行目にスペースやアンダースコア以外の特殊文字が含まれないようにし、1 行目のどのフィールドも先頭が数字でないようにする必要があります。
手順
次のリストは、Excel スプレッドシートがフィーチャクラスと正しく結合する上で考えられる書式設定上の問題と解決策を示しています。
- 結合に使用するスプレッドシートとフィーチャクラスのフィールドは同じデータ タイプでなければなりません (Double、Text、Short、Integer など)。
フィールドのデータ タイプをチェックするには、ArcMap の [コンテンツ] ウィンドウでフィーチャクラスを右クリックして、[プロパティ] → [フィールド] の順に選択し、リストされる属性テーブル内の各フィールドのフィールド タイプを選択します。
Excel スプレッドシートのフィールドで同じチェックを行います。
Excel スプレッドシートの数値フィールドのいずれか (Double、Integer、Float など) をテキストに変換する必要がある場合は、次の方法を使用します。 Excel の TEXT 関数は、特定の数値形式のテキストに値を変換します。 この例では、セル A2:A100 には数値が入っているとします。 これらをテキストに変換するには、次の手順に従います。
- 一時的な空白列 B を挿入します。
- セル B2 に、「=TEXT(A2,"0")」と入力します。
- セル B2 の右側に表示されるプラス記号を使用して、式をドラッグして B3:B100 を埋めます。
- セル B2:B100 を反転表示します。
- Ctrl + C キーを使用してコピーし、[編集] → [形式を選択して貼り付け] → [値] の順に選択して [OK] をクリックします。
列 B のエントリが、列 A の数値のテキスト バージョンになりました。 - 列 A を右クリックして、[貼り付け] を選択します。
- 一時的な列 B を削除します。
- *.xls ファイルの名前とワークシートの名前には、スペースなど、アンダースコア以外の特殊文字を含むことはできず、先頭を数字にすることもできません。
正しいファイル名の例は、次のとおりです。
Spreadsheet_Join.xls
結合したフィールドが NULL で返される原因となる名前の例は、次のとおりです。
Spreadsheet Join.xls
SpreadSheet/join.xls
1SpreadsheetJoin.xls
- スプレッドシートの 1 行目は、ArcMap にはフィールド名として読み込まれます。 スプレッドシートを ArcMap のフィーチャクラスと正常に結合するには、スプレッドシートの 1 行目にスペースやアンダースコア以外の特殊文字が含まれないようにし、1 行目のどのフィールドも先頭が数字でないようにする必要があります。
正しいファイル名の例は次のようになります。
ObjectID
Location
X_Long
Y_Lat
Test2
結合したフィールドが NULL で返される原因となる名前の例は、次のとおりです。
X Long
Y Lat
2ndField
Roads@Cross">Roads@Cross
House Numbers