Free Trial

ディスカッション - 日本語

答えを見つけ、質問し、Alteryx の専門知識を共有してください。
解決済み

複数のExcelファイルからすべてのシートのデータ及びファイル名とシート名を取得したい。

kobaken
メテオール

複数のExcelファイルがあり、そのファイルの中身は複数のシートで構成されています。

また、カラム名はどのファイル/シートも共通になっています。

 

上記の構成のExcelファイルのデータをファイル名とシート名情報を付加して抽出したいのですが、

ファイル名、シート名がうまく抽出できません。

 

※クラスメソッドさんのこちらの構成を参考に作成を試みています。

https://dev.classmethod.jp/business/business-analytics/alteryx-inputdata-union-dynamicinput/

→Directoryツールの情報をAppend Fieldツールを使ってくっつけようとしましたがうまくいきませんでした。

 

なにか良い方法はないでしょうか?

 

6件の返信6
AkimasaKajitani
16 - Nebula
16 - Nebula

Excelの一気読みは難易度が結構高いケースがあります。

 

ところで、どこで詰まっているのかちょっとわからないのですが、

「シート名のリストのみをインポート」(<List of Sheet Names>)が選択できていますでしょうか?(古いxls形式だと選択できない場合があります)

 

解決策として以下が提示されておりますのでご参照ください。

https://community.alteryx.com/t5/Alteryx-Designer-Discussions/Listing-the-list-of-sheet-names-from-X...

 

ちなみに、Excelは同じフィールド名を持っているように見えて実は空白の列を持っていたりすることがあるのでそのような場合はマクロで読み込む必要がありますのでご注意ください。

(こちらを参照ください:https://newssdx.kcme.jp/alteryxtips-multiple_csv_input/

 

なんでもExcelを読み込むようなマクロもあるようです(使ったことはないのでご了承ください)

https://community.alteryx.com/t5/Engine-Works-Blog/The-Ultimate-Alteryx-Holiday-gift-of-2015-Read-Al...

 

kobaken
メテオール

回答いつもありがとうございます。

 

>ところで、どこで詰まっているのかちょっとわからないのですが、

>「シート名のリストのみをインポート」(<List of Sheet Names>)が選択できていますでしょうか?(古いxls形式だと選択できない場合があります)

 

一気読みでデータは抽出できているのですが、ファイル名とシート名を取得して繋げるというところで方法が見出せませんでした。

 

回答をすべて細かく見ていないのですが、最後のマクロが素晴らしいです。

一気に解決しました!

(ぐずぐずと何時間か悩んでいたので。)

 

これだけだと悔しいので、ほかの回答方法も理解しつつできるところは自作してみたいと思います。

(最終的にはマクロに頼るかもしれませんが。)

 

本当にありがとうございました!

 

AkimasaKajitani
16 - Nebula
16 - Nebula

取り急ぎ、解決して何よりです。

 

ファイル名とシート名を取得して繋げる

 

 とのことなので、以下のような設定が解決策かと思いますが、

 いかがでしょうか?

 ポイントは、フォーミュラでReplace関数で<List of Sheet Names>を置き換える

 ところかと思います。

 

クリップボード05.png

kobaken
メテオール

追加の返信ありがとうございます。

 

早速試してみたのですが、どうもうまくいきません。

なにか不足しているのでしょうか?

 

フォーミュラからのパス取得はうまく取れています。

 

snap01.png

 

しかし、Dynamic Inputツールの後は普通にExcelデータのみ取得になってしまいます。

snap02.png

 

上記をAppend Fieldツールで結合してもデータが増えてしまい、

データとして成立しないことに気が付きました。

(SQLのCROSS JOINのような状態)

 

アウトプットイメージは以下のような感じです。

青色部分がExcelデータ部分、オレンジがExcelファイルのパスとシート名です。 

 

outputimage.JPG

 

何度もすいません。

お時間に余裕があれば助言いただければ助かります。

AkimasaKajitani
16 - Nebula
16 - Nebula

Excelの中身に読み込み元のファイルパス、シート名が付加したい、ということでしょうか?

そうなると以下のような感じになるかと思います。

 

動的入力のデータ入力ソーステンプレートの方で、「ファイル名をフィールドとして出力する」のところを「フルパス」にすれば、フォーミュラからの出力と結合することでほしい結果が得られると思います。

 

クリップボード09.png

kobaken
メテオール

ありがとうございます!

しっかりとパスとシート名が取得できました。

 

細かいパラメータの動きを把握できていない。と反省しました。

 

いつも素早く、正確な情報提供ありがとうございます。