エクセル入門
IMPORTCSV関数(CSVファイルのインポート)

Excelの初心者向け入門解説
公開日:2026-01-19 最終更新日:2026-01-19

IMPORTCSV関数(CSVファイルのインポート)


IMPORTCSV 関数は、CSVファイルから、Excelに直接データをインポートできます。
コンマ区切りのデータを動的配列として取り込むための簡略化された方法を提供し、行をスキップまたは取得したり、ロケール設定を適用することができます。
テキストファイル全般に対応した汎用関数として、IMPORTTEXT関数が同時に公開されています。

・IMPORTTEXT関数の書式 ・IMPORTTEXT関数の引数詳細解説 ・IMPORTTEXT関数の更新タイミング ・IMPORTTEXT関数のデータ量の制限 ・日付・時刻・指数表記のデータ変換 ・IMPORTTEXT関数の使用例 ・IMPORTTEXT関数についての考察とまとめ

注: この機能は2026/1/18現在、Windows版Excelのバージョン2502(ビルド 18604.20002)以降を実行しており、かつ「Microsoft 365 Insider ベータチャネル」に登録されているサブスクリプションユーザー向けに一般公開されています。

IMPORTCSV関数は、CSVファイルを直接ワークシート関数として取り込める点で注目される新機能です。
一方で、現時点では挙動や制約に注意すべき点も多く、用途によっては期待した結果にならないケースがあります。
本ページでは、実際の挙動を確認しながら、仕様上の注意点を整理します。

  • ローカルCSV(UTF-8)
    オプション引数を全て省略
    「行のスキップ」を指定
    「行の取得」
    「ロケール」を指定
  • WebのCSV



IMPORTCSV関数の書式

IMPORTCSV 関数は、CSVファイルから Excel に動的配列としてデータをインポートします。

IMPORTTEXT関数から、区切り記号, エンコード この2つの引数を除いた関数になります。
IMPORTTEXT関数の、区切り記号をカンマ(,)、エンコードをUTF-8 に固定し、引数指定を簡略化した関数です。
したがって、これ以降の解説は、IMPORTTEXT関数とほぼ同じ内容となっています。

IMPORTCSVの構文

=IMPORTCSV(パス, [行のスキップ], [行の取得], [ロケール])

IMPORTCSVの引数

引数 説明
パス (必須)
インポートするテキスト ベースのファイルのローカル ファイル パスまたは URL
行のスキップ スキップする行数を指定する数値。
負の値を指定すると、配列の末尾から行がスキップされます。
行の取得 返す行数を指定する数値。
負の値は、配列の末尾から行を受け取ります。
ロケール 地域の書式設定 (日付、数値形式など) を決定します。
既定では、OS ロケールが使用されます。


IMPORTCSV関数の引数詳細解説

パス

(必須)です。
インポートするテキスト ベースのファイルのローカル ファイル パスまたは URL
この関数をセルに入力すると、以下のような確認メッセージが出力されます。

ローカル ファイル パス
=IMPORTCSV("C:\sample\test.csv")

IMPORTCSV関数(テキストファイルのインポート)

間違いなければ、「すべてを貼り付ける」を選択してください。

URL
=IMPORTCSV("https://excel-ubara.com/EXCEL/syukujitsu2001-2050(utf-8).csv")

IMPORTCSV関数(テキストファイルのインポート)

間違いなければ、「接続」を選択してください。

行のスキップ

スキップする行数を数値で指定します。
正の値
正の値を指定すると、データの先頭から指定行数がスキップされます。
2
最初の2行がスキップ(除外)されます。

負の値
負の値を指定すると、データの末尾から指定行数がスキップされます。
-2
末尾の2行がスキップ(除外)されます。

絶対値がデータ行数以上
データ行数以上を指定すると、「#CALC!」のエラーになります。

縦の配列を指定すると、先頭列だけが取得されます。
たとえば、
{0;2;4}
1行目、3行目、5行目の先頭列だけが取得されます。
想定外の指定だとは思いますが、かなり不思議な挙動ですし、これを期待した使い方はできません。
したがって、現時点では単一数値以外は正常に動作しないと考えてください。

行の取得

取得する行数を数値で指定します。

正の値
正の値を指定すると、データの先頭から指定行数が取得されます。
2
最初の2行が取得されます。

負の値
負の値を指定すると、データの末尾から指定行数が取得されます。
-2
末尾の2行が取得されます。

絶対値がデータ行数以上
すべての行が取得されます。

ロケール

地域の書式設定 (日付、数値形式など) を決定します。
ロケールの指定によって、日付時刻・数値形式の変換に違いが発生します。
既定では、OS ロケール(日本:ja-JP)が使用されます。
日本:ja-JPの場合、日付は「/」、時刻は「:」、数値は「,」に設定されています。
これらはコントロールパネルで設定されていますが、コントロールパネルを変更してもこの読み込み動作は変更できません。
変更されるのは、セルの出力時に既定の表示形式が変わるだけで、このインポート動作を変更することはできないようです。
※これは不便なので、正式リリースまでに変更される可能性があるかもしれません。

※言語タグの文字列を指定します。
Language 地理的な地域 言語タグ LCID
アラビア語 サウジアラビア ar-SA 1025
ブルガリア語 ブルガリア bg-BG 1026
簡体字中国語 中華人民共和国 zh-CN 2052
中国語 台湾 zh-TW 1028
クロアチア語 クロアチア hr-HR 1050
チェコ語 チェコ共和国 cs-CZ 1029
デンマーク語 デンマーク da-DK 1030
オランダ語 オランダ nl-NL 1043
英語 米国 en-US 1033
エストニア語 エストニア et-EE 1061
フィンランド語 フィンランド fi-FI 1035
フランス語 フランス fr-FR 1036
ドイツ語 ドイツ de-DE 1031
ギリシャ語 ギリシャ el-GR 1032
ヘブライ語 イスラエル he-IL 1037
ヒンディー語 インド hi-IN 1081
ハンガリー語 ハンガリー hu-HU 1038
インドネシア語 インドネシア id-ID 1057
イタリア語 イタリア it-IT 1040
日本語 日本 ja-JP 1041
カザフ語 カザフスタン kk-KZ 1087
韓国語 韓国 ko-KR 1042
ラトビア語 ラトビア lv-LV 1062
リトアニア語 リトアニア lt-LT 1063
Malay マレーシア ms-MY 1086
ノルウェー語 (ブークモール) ノルウェー nb-NO 1044
ポーランド語 ポーランド pl-PL 1045
ポルトガル語 ブラジル pt-BR 1046
ポルトガル語 ポルトガル pt-PT 2070
ルーマニア語 ルーマニア ro-RO 1048
ロシア語 ロシア ru-RU 1049
セルビア語 (ラテン) セルビア sr-latn-RS 2074
スロバキア語 スロバキア sk-SK 1051
スロベニア語 スロベニア sl-SI 1060
スペイン語 スペイン es-ES 3082
スウェーデン語 スウェーデン sv-SE 1053
タイ語 タイ th-TH 1054
トルコ語 トルコ tr-TR 1055
ウクライナ語 ウクライナ uk-UA 1058
ベトナム語 ベトナム vi-VN 1066

以下のページより当該部分のみ抜粋しました。
https://learn.microsoft.com/ja-jp/office/2016/language/language-identifiers-optionstate-id-values


IMPORTCSV関数の更新タイミング

関数を入力した直後

データ量やその時の状態によっては、一瞬「#BUSY!」が表示されます。

IMPORTCSV関数(テキストファイルのインポート)

その後に、データが表示されます。
ただし、
一度関数を入れたのちに、セル編集(F2等)で再入力しても再読み込みは行われません。

ここは、他の関数と大きく違うところです。
元データが変更されていても再読み込みされないので注意が必要です。
※引数を変更したり何かしら数式変更した場合は、別の数式を入れたことになるので再読み込みされます。

Excelファイルを開いた直後

IMPORTCSV関数(テキストファイルのインポート)

読み込んでいるマークが表示されます。
データが変更されているかどうかの確認はされないようです。
つまり、毎回全データが読み込まれてしまうようです。

この仕様は問題があります。

この挙動は、特にデータ量の大きい CSV を扱う場合、処理時間や操作性に影響を与える可能性があります。
運用によっては、更新方法を慎重に検討する必要があります。
正式リリースまでに、「すべて更新」以外では更新しないか、もしくはオプションで選択できるようになってほしいところです。

すべて更新

手動で更新する場合です。

IMPORTCSV関数(テキストファイルのインポート)

Power Queryと同じで、「すべて更新」(Ctrl+Alt+F5)することで再読み込みされます。
したがって、Power Queryの更新とは区別することはできません。
まさしく、「すべて更新」されてしまいます。

「すべて更新」でデータ更新した場合、非同期でデータ更新されるため、いつ更新されたかを見た目で判別しづらくなっています。

IMPORTCSV関数(テキストファイルのインポート)

「すべて更新」をクリックした後、他のセルを編集しているとそのうち気が付くとデータが更新されているという状態になります。

この間、アイコンやマウスカーソル等の目立った変化がないので、更新しているかどうかが分かりづらい状態になっています。
判別するには、ステータスバーの左下で、以下のメッセージが出ているかを確認してください。

IMPORTCSV関数(テキストファイルのインポート)

もちろん、Power Queryにおいて「すべて更新」がこの仕様になっていたものです。
したがって、Power Queryを良く使っていた人には違和感はないでしょうが、あまり使っていない人は戸惑うかもしれません。

数式の再計算では更新されない

これは、「すべて更新」で更新するという仕様になっており当然の事です。
「関数を入力した直後」で記載したとおり、数式再入力では更新されません。

したがって、特定セルのIMPORTCSV関数だけを更新する手段が存在しないことになります。
「すべて更新」するか、当該セルをいったん消してから入れ直すしかありません。
これは大きなデータを複数扱う場合には、不便な場合が出てくるかもしれません。


IMPORTCSV関数のデータ量の制限

シートに表示できる範囲を超えている場合は、「#スピル!」エラーになります。

IMPORTCSV関数(テキストファイルのインポート)

元のデータがセルの行数(1048576)・列数(16384)を超えている場合だけではなく、数式を入れたセルから下・右にデータを表示しきれなくなってしまう場合もエラーになります。
これは、そもそもスピル数式(動的配列数式)なので当然です。
もちろん、スピル範囲(出力範囲)に既存データがある場合も「#スピル!」エラーになります。


日付・時刻・指数表記のデータ変換

日付、時刻、指数表記については、従来の変換がそのまま適用されます。
近年追加された、「自動データ変換」は、適用されないようです。

IMPORTCSV関数(テキストファイルのインポート)

これは実用上の影響が大きい挙動です

これでは、用途が大きく制限されます。


IMPORTCSV関数の使用例

ローカルCSV(UTF-8)

IMPORTCSV関数(テキストファイルのインポート)

オプション引数を全て省略
=IMPORTCSV("C:\test\test.csv")

IMPORTCSV関数(テキストファイルのインポート)

「行のスキップ」を指定
=IMPORTCSV("C:\test\test.csv",1)

IMPORTCSV関数(テキストファイルのインポート)

「行のスキップ」に「1」が指定されているので、先頭の1行がスキップ(除外)されています。

「行の取得」
=IMPORTCSV("C:\test\test.csv",,-3)

IMPORTCSV関数(テキストファイルのインポート)

「行の取得」に「-3」を指定しているので、末尾(最後)の3行が取得されています。

「ロケール」を指定
=IMPORTCSV("C:\test\test.csv",,,"de-DE")

IMPORTCSV関数(テキストファイルのインポート)

"de-DE"はドイツです。
4行目に注目してください。
ドイツでは、
日付は「DD.MM.YYYY」形式なので「.」区切りです。
「01-16」→「01-16」
「1/17」→「1/17」
数値のカンマとピリオドが日本とは逆になります。
「"123,456"」→「123.456」

WebのCSV

=IMPORTCSV("https://excel-ubara.com/EXCEL/syukujitsu2001-2050(UTF-8).csv")

IMPORTCSV関数(テキストファイルのインポート)


IMPORTCSV関数についての考察とまとめ

以下は、IMPORTTEXT関数に掲載しているものと全く同一文章です。

IMPORTCSV関数の内部挙動についての考察

この関数の挙動を詳細に分析すると、単なるExcelのワークシート関数ではなく、内部でPower Query(データ取得と変換)のエンジンをセルから直接呼び出している可能性があるのではないかと考えられます。

その根拠として以下の点が挙げられます。
  • 確認メッセージの形式
    セルに入力した際に出力される「セキュリティの確認」や「接続」を求める確認ダイアログは、Power Queryで外部データにアクセスする際の挙動と酷似しています。
  • 「すべて更新」による再読み込み
    「すべて更新」を行う仕様は、従来の接続済みデータ(クエリ)の更新プロセスそのものです。
  • ロケールの影響
    日付や数値の変換がOSのロケール設定に依存し、かつPower Queryと同様の言語タグ("ja-JP"や"de-DE"など)を使用する点も、エンジンの共通性を示唆している可能性があります。
  • 「#BUSY!」状態の発生: 通常の関数とは異なり、バックグラウンドでデータ接続と解析(パース)を行うための待機時間が発生するのは、外部ソースからのインポート処理特有の挙動です。

これらの挙動から、IMPORTCSV 関数は内部的に Power Query と共通のデータ取得エンジンを利用している可能性が考えられます。
その場合、従来の Power Query と同様の設計思想が反映されていると推測され、仕様変更には一定の制約がある可能性もあります。

現時点での制約事項のまとめ

  • ファイルを開いたときに無条件で再読み込みされる
  • 「すべて更新」のみで、個別の更新が出来ない
  • 「すべて更新」での更新有無・更新完了が判然としない
  • 日付、時刻、指数表記のデータ変換を止める手段がない
  • 区切りなしで1行を読むと、数値とカンマだけの行は数値として解釈されてしまう

IMPORTCSV 関数は、従来 Power Query を用いて行っていたテキストデータの取り込みを、ワークシート関数として簡潔に記述できる点が特徴です。
一方で、更新制御、データ変換、ロケール依存の挙動など、Power Query と共通する制約も多く見られます。
小規模データや参照用途では有用ですが、大規模データや厳密な制御が必要なケースでは、従来手法との使い分けが必要になるでしょう。

この関数は、Excel で直接開いても問題のない比較的小規模な CSV ファイルであれば、有用に利用できます。
一方で、取り込み時の自動的なデータ変換を回避したい場合や、規模の大きい複数の CSV ファイルを扱うケースでは、用途が大きく制限されてしまいます。




同じテーマ「エクセル入門」の記事

LAMBDA以降の新関数の問題と解説(ヘルパー関数編)
LAMBDA以降の新関数の問題と解説(配列操作関数編)
PY関数(Pythonコードをセル内で実行)
GROUPBY関数(縦軸でグループ化して集計)
PIVOTBY関数(縦軸と横軸でグループ化して集計)
イータ縮小ラムダ(eta reduced lambda)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)
TRANSLATE関数(翻訳) DETECTLANGUAGE関数(言語識別)
IMPORTTEXT関数(テキストファイルのインポート)
IMPORTCSV関数(CSVファイルのインポート)


新着記事NEW ・・・新着記事一覧を見る

IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ