0
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?

【DataMagic】データ加工やってみた!CSV形式からExcel形式へ・・・の続き

0
Last updated at Posted at 2026-09-05

はじめに

ここ最近は[ヘッダ][明細行][フッタ]で構成されたExcelの伝票【図1】に、1レコードが[ヘッダ][明細行:1件分][フッタ]のフォーマットで構成されているCSV形式の入力データ【図2】を出力する記事を投稿してきました。

【図1】Excel 出力伝票フォーム
Qiita_055-01.jpg

【図2】CSV 入力データ([フッタ]部分に項目はありませんが)
Qiita_055-02.jpg

しか~し:exclamation:

世の中には無数の入力フォーマットのレコードが存在する訳でして。

【図2】のように、1レコード=明細1行(複数レコードで伝票1枚分)の入力データではなく、1レコード=明細複数行(1レコードに伝票1枚分)の入力データの場合は :interrobang:

1レコード = 明細1行

念のため【図2】のような、1レコード=明細1行(複数レコードで伝票1枚分)の入力データの場合は、以下の記事で確認してください。

また、次に説明する〝 1レコード = 明細複数行 〟の設定の一部も、この記事と同じ(既に説明済)なので割愛させていただきます。

1レコード = 明細複数行

1レコード = 明細複数行

例えば【図3】のような、1レコードが[ヘッダ][明細1行目][明細2行目]・・・[明細最終行目]のフォーマットで構成されているCSV形式の入力データを【図1】のExcelの伝票に出力するはどうすれば :thinking:

Qiita_055-03.jpg

入力データ

【図3】のデータを使用するならこちら :arrow_down:

入力データ
"日付","請求書番号","顧客ID","品目1","数量1","単価1","金額1","品目2","数量2","単価2","金額2","品目3","数量3","単価3","金額3","品目4","数量4","単価4","金額4","品目5","数量5","単価5","金額5"
"2026/08/05","R0808051816","73841","シャインマスカット",15,880.00,13200.00,"巨峰",15,660.00,9900.00,"プラム",5,500.00,2500.00,"白桃",10,400.00,4000.00,"",0.00,0.00,0.00
"2026/08/13","R0808131820","57918","にんじん",5,123.00,615.00,"じゃがいも",5,234.00,1170.00,"かぼちゃ",5,456.00,2280.00,"",0.00,0.00,0.00,"",0.00,0.00,0.00
"2026/08/14","R0808141822","91423","バナナ",3,111.00,333.00,"キーウィ",3,222.00,666.00,"なす",2,333.00,666.00,"ピーマン",2,444.00,888.00,"",0.00,0.00,0.00

データ加工

1.入力ファイルエリアの編集

この説明は、〝 1レコード = 明細1行 〟の設定と同じになるので割愛させていただきます。

なお、入力ファイル名は今回用のファイル名で設定してくださいね。

2.出力ファイルエリアの編集

現段階では〝 1レコード = 明細1行 〟と同じ設定で登録してみてください。

なお、出力ファイル名は今回用のファイル名で設定してくださいね。

3.抽出条件の設定

初期設定のまま使用

4.関係線の設定1〔抽出条件と出力ファイル〕

抽出条件のアイコンを選んで、出力ファイルのアイコンの上にドラッグ&ドロップし、アイコン間の関係線をつなぎます。

5.関係線の設定2〔入力項目と出力項目をマッピング〕

先ず、マッピング設定画面を開いて、今まで通りに関係線を引いていくとこんな感じ。
※ 説明用に入力設定用のCSV定義を登録し、各項目名を表示しています。

明細1行目の項目:品目1、数量1、単価1、金額1 は、下図のように出力側の表の各項目と関係線を引けますが、明細2行目の項目は:question:

Qiita_055-04.jpg

試しに、明細2行目の各項目も表の各項目と関係線を引いてみました。

Qiita_055-05.jpg

ここまで登録して保存し、データ加工処理を実行すると、やっぱり失敗しました :sweat_smile:

Qiita_055-06.jpg

まぁ、この関係線の引き方は、項目1の後ろに項目2を追加しているってことなので、〝 1レコード = 明細1行 〟と同じExcelの出力レイアウトには正しく出力できないようです。

Qiita_055-07.jpg

レイアウト情報

じゃあ、〝 1レコード = 明細複数行 〟の場合のExcelの出力レイアウトは :interrobang:

明細行の各項目も ぜ~んぶ 単一セル で登録するしかないようです。

Qiita_055-08.jpg

設定しているExcelのレイアウトIDを複写して、13行目から17行目までの5行分。
面倒ですがコツコツ単一セルで登録したレイアウトを新しく登録します。

<改>データ加工

<改>2.出力ファイルエリアの編集

新しく登録したIDに置き換えます。

以下の確認は[はい]で閉じます。

Qiita_055-09.jpg

抽出条件と出力ファイル間の関係線が消えるので、引き直してください。

<改>5.関係線の設定2〔入力項目と出力項目をマッピング〕

設定画面を開いた直後【左】から、【右】のように項目間の関係線を引きます。

Qiita_055-10.jpg

6.データ加工処理

<改>の設定が終わったら定義を保存して、データ加工を実行します。

出力結果がこちら :arrow_down: 

Qiita_055-11.jpg

一応、出力できました。

他に良い手をご存知の方はご一報を。

以上です。

0
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
0
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?