1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Alteryx】複数のCSVファイルやExcelシートを読み込む方法

Last updated at Posted at 2023-11-04

はじめに

弊社では昨年からAlteryxを導入しています。複数のCSV・Excelファイルからデータを読み取ることが頻繁にあるので、備忘録として残しておきます。

CSVファイルの場合

マクロの作成

まず下図のように1つのCSVファイルからデータを読み込むマクロを作成します。ここで使用しているツールは、コントロールパラメーター、アクション、マクロ出力、データ入力です。

image.png

アクションのアクションタイプにおいて「値を更新」を選択してください。

ワークフローの作成

次に、作成したマクロを使って複数のCSVファイルを読み込むワークフローを作成します。
あるフォルダにCSVファイルがすべて保存されているとすると、ディレクトリツールを使ってCSVファイルパスのリストを取得してマクロに渡し、読み取られた各ファイルのデータを複数結合ツールを使って行方向に結合します。

image.png

Excelシートの場合

マクロの作成

複数のエクセルシートを読み込む場合も、CSVファイルの場合と同様に、まず一つのシートからデータを読み込むマクロを作成します。

image.png

アクションツールのアクションタイプは、CSVファイルの場合と同様に「値を更新」を選択してください。またデータ入力ツールでExcelファイルを選択したら、オプションの「テーブルまたはクエリ」において「シートを選択」を選んでください。

image.png

image.png

ワークフローの作成

複数のExcelシートからデータを読み込む場合、下図のようにマクロに渡すまでの部分がCSVファイルの場合と異なります。

image.png

まずデータ入力ツールでエクセルファイルを指定するときに、「テーブルまたはクエリ」で「シート名のリストのみをインポート」を選択してください。

image.png

image.png

次にフォーミュラツールに以下の式を入力して、各シートのファイル名を作成します。

image.png

全てのシートからデータを読みこむ場合は、下図のようにフォーミュラツールから直接マクロへコネクタを接続してしまって問題ありません。

image.png

一方、特定のシートのみ読み込みたい場合は、フィルターやリストを用いて読み込みたいシートのみを選択する必要があります。ここでは、あらかじめ読み込みたいシート名をリストとして入力しておき、結合ツールの内部結合を使うことでそれらのシート名に一致するもののみをマクロに渡す方法を説明します。

最初の図のようにテキスト入力ツールを使って読み込むシート名のリストを作成します。ファイルパスと比較する場合、シート名は文字列でなければならないので、セレクトツールを使ってデータ型を文字列にしておきます。

image.png

次に、結合ツールをつかってシート名のリストに含まれるシートのパスのみを選択します。結合ツールのLとRにシートリストとエクセルファイルからのコネクタをそれぞれ接続し、「特定のフィールドで結合」で比較する列名を選択します。

image.png

そして結合ツールのJとマクロをコネクタで接続すると、指定したシートのパスがマクロに渡されてデータが読み込まれます。

image.png

別の方法

下記のように動的入力ツールを使って読み込む方法もあります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?