GUIループを使ってファイルを出し分ける(SPSS Modeler データ加工逆引き9-13)

# ファイルを分割して出し分ける（GUIループ）

![スクリーンショット 2023-03-28 10.59.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d7938776-4a3f-5062-d85a-7bb5c925c21a.png)


＊この記事は以下のブログを基に書かれています。

https://community.ibm.com/community/user/ai-datascience/blogs/yoichiro-nishimaki/2025/01/14/modelertips23

この記事は[SPSS春のユーザーイベント2025](https://community.ibm.com/community/user/blogs/asuka-saito/2025/04/02/spss-modeler-2025-spring)でJALカード伊藤様による「JALカードにおけるデータ分析の深化」でご紹介いただきました。

## 1.想定される利用目的

・部門毎にレポートできるようにファイルを分割してCSVファイルで保存する

## 2.サンプルストリームのダウンロード

https://github.com/yoichiro0903n/blue/blob/main/split_file.str?raw=true

## 3.サンプルストリームの説明

![スクリーンショット 2023-03-28 11.02.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/131eafd1-2199-6945-2de1-daf928d9998d.png)

a.入力するデータは以下の通りです。

![スクリーンショット 2023-03-28 11.03.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/48c0fcc8-f7e8-2dc3-00cf-f887c95e5c6f.png)

[データ型]タブの　[値の読み込み]ボタンを押してデータの型を確定しておきます。
![スクリーンショット 2023-03-28 11.03.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/09204656-5953-2b1a-6ee0-b0f9688e5f75.png)

### ファイル出しわけのためのストリームパラメータをセット

以下のメニューからパラメータを設定します。

![スクリーンショット 2023-03-17 15.57.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/d9512e75-972e-e5c7-0cbb-70dbacbd7e47.png)

[名前]と[ストレージ]を設定します。プロンプトはチェックをしません。
![スクリーンショット 2023-03-28 11.04.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/a7078b4a-b70c-8863-c128-b30e62e9fb24.png)

### パラメータをノードで受け取る

b.[条件抽出]ノードを編集します。式ビルダーから[パラメータ]をドロップダウンリストで選び式を完成させます。
![スクリーンショット 2023-03-28 11.23.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/dc74332e-8835-1ae4-c0eb-ed8f9f347ed6.png)

### GUIでパラメータで分けを設定する

ノードを右クリックして[ループ/条件付き実行]＞[反復キーの定義（値）]を選択します。
![スクリーンショット 2023-03-17 16.24.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/c049cbe5-e1e1-33c8-cd0b-e3ddc517db0a.png)

以下の通りに設定します。
![スクリーンショット 2023-03-28 11.27.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/1a6670b7-1b02-02ed-a3c6-292308a1ff97.png)

ストリームのプロパティ画面の　[実行]タブが定義されました。
![スクリーンショット 2023-03-28 11.28.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/4e81b513-97af-3783-ad86-8db699120936.png)

c.[フラットファイル]出力ノードを右クリックして[反復変数の定義]を選択します。
![スクリーンショット 2023-03-28 11.29.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/72cfaf59-22a7-0d84-6ea3-70c10985545b.png)

[反復変数の定義]を設定します。[語幹]には保存先のパスを記述して[OK]を選択します。
![スクリーンショット 2023-03-28 11.36.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/99bfe258-35b4-28fd-44a1-46907384df9f.png)

このままでも動作はするのですが保存されるファイルが拡張子のないテキストファイルになるため右下の[貼り付け]ボタンを選択します。
![スクリーンショット 2023-03-28 11.37.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/31db051b-5019-67ec-4f8a-374e0a16cda9.png)

Pythonスクリプト画面にGUIで実行しようとしていたスクリプト（自動生成）が表示されます。赤枠のようにファイル拡張子がCSVになるように[ + ".csv" ]と加筆します。
![スクリーンショット 2023-03-28 11.38.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/3c53ebed-10aa-69be-5ecb-0bafca6094c6.png)

GUIスクリプトに加筆したのでストリーム上のノードからGUIループのバッジが外れていますが▶︎ボタンを押すと指定したフォルダに分割ファイルが生成されます。
![スクリーンショット 2023-03-28 11.39.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/ce3ab876-1958-ab48-6521-fe1bbb1e4d54.png)




#### 注意事項

250種類以上のカテゴリを同時に扱う場合には以下を参考にしてください。

https://qiita.com/416nishimaki/items/0522f72e897fcb222a61#%E5%B0%BA%E5%BA%A6%E4%B8%8D%E6%98%8E%E3%82%92%E5%90%8D%E7%BE%A9%E5%9E%8B%E3%81%AB%E3%81%99%E3%82%8B

## 4.参考情報

#### GUIループについて解説した記事

https://qiita.com/Makimaki2020/items/30ee2ce06cdba477edc8

https://community.ibm.com/community/user/ai-datascience/blogs/yoichiro-nishimaki/2025/01/14/modelertips23

#### SPSS Modeler ノードリファレンス目次

https://qiita.com/416nishimaki/private/503037195081d3323eee

#### SPSS Modeler 逆引きストリーム集（データ加工）

https://qiita.com/416nishimaki/private/4bf813e6cba84b2a1008