まえがき
Yahoo!知恵袋では、様々な横に値項目が繰り返し並んだ表をリスト形式にする質問があります。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12317522767
Visual Basicカテゴリーの質問なので、VBAや人気があるワークシート関数の回答が付いていますが、Power Query Mのコードの回答も付いていました。Power Queryとワークシート関数式の意味が分からなかったのでChatGPTで調べて見ました。
回答にはありませんが、クリック操作のみで作るPower Queryも付け加えました。
この方法は各ステップ毎の表の変化を確認することにより動作を理解しやすいので、速度は遅いですが属人性は低いです。
なので、データが大きくなければお勧めです。
Power Queryだと、セルアドレス依存が少なくなるので、ワークシート関数やVBAの回答に比べて変更に影響されにくいというメリットがあります。
1. 入力表
2. 出力表
3. Power Query Mのコードを記述する方法
4. ワークシート関数による方法
5. Power Queryのクリック操作による方法
1. 入力表
本例ではCSVファイルです。パスは次の通りです。
"C:\Users\Public\Documents\250716pqyoko.csv"
| 品番 |
品名 |
店舗NO. |
納期1 |
納期2 |
納期3 |
数量1 |
数量2 |
数量3 |
受信日 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/1 |
2025/1/4 |
2025/1/20 |
35 |
200 |
1 |
2024/12/1 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/3 |
2025/1/4 |
|
13 |
20 |
|
2024/12/1 |
特徴
🔹納期と数量の組合せが隣接してなく、まず納期が横に展開され、次に数量が横に展開されています。
ヒント
本記事ではCSVファイルを取り込んでいますが、実務ではフォルダから取り込む方が良いです。そうすれば、新しいCSVファイルをフォルダに格納して、集計ファイルを更新するだけで、新しいファイルを取り込むことができます。
2. 出力表
リスト形式に整形します。
| 品番 |
品名 |
店舗NO. |
納期 |
数量 |
受信日 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/1 |
35 |
2024/12/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/4 |
200 |
2024/12/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/20 |
1 |
2024/12/1 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/3 |
13 |
2024/12/1 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/4 |
|
2024/12/1 |
本記事では省略しますが、これをピボットテーブルなどに展開して利用します。
3. Power Query Mのコードを記述する方法
コード全体
let
ソース = Csv.Document(File.Contents("C:\Users\Public\Documents\250716pqyoko.csv"),[Delimiter=",", Columns=10, Encoding=65001, QuoteStyle=QuoteStyle.None]),
昇格されたヘッダー数 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
納期数量列の追加 = Table.AddColumn(昇格されたヘッダー数, "納期数量", each
let
除外リスト = {"品番", "品名", "店舗NO.", "受信日"},
必要リスト = List.Difference(Table.ColumnNames(昇格されたヘッダー数), 除外リスト),
納期数量リスト = List.Transform(必要リスト, (x)=> Record.Field(_, x)),
リスト分割 = List.Split(納期数量リスト, List.Count(納期数量リスト)/2),
リスト入替 = List.Zip(リスト分割),
レコード変換 = List.Transform(リスト入替, (x)=> [納期=x{0}, 数量=x{1}])
in
レコード変換),
列の選択 = Table.SelectColumns(納期数量列の追加, {"品番", "品名", "店舗NO.", "納期数量", "受信日"}),
列の展開1 = Table.ExpandListColumn(列の選択, "納期数量"),
列の展開2 = Table.ExpandRecordColumn(列の展開1, "納期数量", {"納期", "数量"}),
フィルターされた行 = Table.SelectRows(列の展開2, each [数量] <> null and [数量] <> ""),
変更された型 = Table.TransformColumnTypes(フィルターされた行,{{"納期", type datetime}, {"数量", Int64.Type}, {"受信日", type datetime}})
in
変更された型
Yahoo!知恵袋の回答では"納期数量列の追加"は次のような記述になっています。
納期数量列の追加 = Table.AddColumn(昇格されたヘッダー数, "納期数量", each
[
除外リスト = {"品番", "品名", "店舗NO.", "受信日"},
必要リスト = List.Difference(Table.ColumnNames(昇格されたヘッダー数), 除外リスト),
納期数量リスト = List.Transform(必要リスト, (x)=> Record.Field(_, x)),
リスト分割 = List.Split(納期数量リスト, List.Count(納期数量リスト)/2),
リスト入替 = List.Zip(リスト分割),
レコード変換 = List.Transform(リスト入替, (x)=> [納期=x{0}, 数量=x{1}])
][レコード変換]),
この each は "レコード変換" というフィールドを持つレコードを作り、その中から レコード変換 を返します。
クリックで生成できないコードは、Power Queryエディタの[ホーム]-[詳細エディタ]に直接記述します。具体的には、"納期数量列の追加"から"列の展開2"までのコードを直接記述します。
Power Query Mのコードの各行の解説
1) ソース
= Csv.Document(File.Contents("C:\Users\Public\Documents\250716pqyoko.csv"),[Delimiter=",", Columns=10, Encoding=65001, QuoteStyle=QuoteStyle.None]),
[データ]-[データの取得v]-[ファイルから]-[テキストまたhCSVファイルから]でCSVファイルを選択し、[データの変換]で生成されるコードです。
目的:CSVファイルを読み込みます。
- File.Contents:指定したパスのファイルを読み込み。
- Csv.Document:CSV形式で読み取り、10列、UTF-8エンコードで区切り文字はカンマ。
- QuoteStyle.None:引用符で囲まれた値の扱いなし(標準的なCSV)。
2) 昇格されたヘッダー数
= Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
1)の操作で自動生成されます。1行目をヘッダにします。
目的:1行目を列ヘッダーとして使用する。
- PromoteHeaders:1行目の値を列名として昇格。
- PromoteAllScalars=true:全ての値がスカラーである前提で処理。
3) 納期数量列の追加
= Table.AddColumn(昇格されたヘッダー数, "納期数量", each
let
除外リスト = {"品番", "品名", "店舗NO.", "受信日"},
必要リスト = List.Difference(Table.ColumnNames(昇格されたヘッダー数), 除外リスト),
納期数量リスト = List.Transform(必要リスト, (x)=> Record.Field(_, x)),
リスト分割 = List.Split(納期数量リスト, List.Count(納期数量リスト)/2),
リスト入替 = List.Zip(リスト分割),
レコード変換 = List.Transform(リスト入替, (x)=> [納期=x{0}, 数量=x{1}])
in
レコード変換),
目的:各行に「納期と数量のペアのリスト(=納期数量)」を新しい列として追加。
納期数量列の追加(Table.AddColumn)の中の詳細:
🔢 対象の1行(例)
次のCSVの1行目のレコードの処理を例にして説明します。
品番, 品名, 店舗NO., 納期1, 納期2, 納期3, 数量1, 数量2, 数量3, 受信日
ABCD-123, ゴミ袋, ○○○, 2025/1/1, 2025/1/4, 2025/1/20, 35, 200, 1, 2024/12/1
🔁 ステップごとの変換詳細
🔹Step1:除外リスト:変換に不要な列(固定項目)を指定。
除外リスト = {"品番", "品名", "店舗NO.", "受信日"}
🔹Step2:必要リスト:変換対象(納期と数量)だけを抽出。列名リストから除外リストを除く。
必要リスト = List.Difference(Table.ColumnNames(昇格されたヘッダー数), 除外リスト)
🔹Table.ColumnNames : https://learn.microsoft.com/ja-jp/powerquery-m/table-columnnames
🔹List.Difference : https://learn.microsoft.com/ja-jp/powerquery-m/list-difference
📌 結果:
必要リスト = {"納期1", "納期2", "納期3", "数量1", "数量2", "数量3"}
🔹Step3:納期数量リスト:各列の値を行データから取得し、リスト化。
納期数量リスト = List.Transform(必要リスト, (x)=> Record.Field(_, x))
は、1行のレコードから「指定した列名」の値だけを取り出してリストにする処理です。
🔍 全体の構造(何をしているか)
🔹必要リスト:納期や数量の列名(文字列のリスト)です。
例:{"納期1", "納期2", "納期3", "数量1", "数量2", "数量3"}
🔹List.Transform:この文字列リストの各列名に対して処理を行い、対応する値を取り出す。
🔧 構文の詳細
🔹List.Transform(list, transformFunction) : https://learn.microsoft.com/ja-jp/powerquery-m/list-transform
Power Query の標準関数で:
🔹list の各要素に transformFunction を適用して新しいリストを作ります。
ここでは:
🔹list:必要リスト{"納期1", "納期2", "納期3", "数量1", "数量2", "数量3"}
🔹transformFunction:(x) => Record.Field(_, x)
🔹 (x) => Record.Field(_, x) : Power Queryの関数を作成する:https://qiita.com/spumoni/items/6841aec922c02ee92a2f
これはラムダ関数(無名関数)で、次のように読めます:
🧠 具体例
1行目のレコードは次のようになります。
_ = [
品番 = "ABCD-123",
品名 = "ゴミ袋",
店舗NO. = "○○○",
納期1 = "2025/1/1",
納期2 = "2025/1/4",
納期3 = "2025/1/20",
数量1 = 35,
数量2 = 200,
数量3 = 1,
受信日 = "2024/12/1"
]
このとき、必要リスト = {"納期1", "納期2", "納期3", "数量1", "数量2", "数量3"} に対して:
List.Transform(必要リスト, (x) => Record.Field(_, x))
は以下の生成します。
{
Record.Field(_, "納期1") → 2025/1/1,
Record.Field(_, "納期2") → 2025/1/4,
Record.Field(_, "納期3") → 2025/1/20,
Record.Field(_, "数量1") → 35,
Record.Field(_, "数量2") → 200,
Record.Field(_, "数量3") → 1
}
つまり
納期数量リスト = {
"2025/1/1",
"2025/1/4",
"2025/1/20",
35,
200,
1
}
📌 結果:
納期数量リスト = {2025/1/1, 2025/1/4, 2025/1/20, 35, 200, 1}
🔹Step4:リスト分割:納期と数量の2グループに分割(例:3納期+3数量 → 2つのリストに分かれる)。
リスト分割 = List.Split(納期数量リスト, List.Count(納期数量リスト)/2)
→ 要素数は3x2=6なので、2つに等分:
🔹List.Split : https://learn.microsoft.com/ja-jp/powerquery-m/list-split
📌 結果:
リスト分割 = {
{2025/1/1, 2025/1/4, 2025/1/20}, // 納期リスト
{35, 200, 1} // 数量リスト
}
🔹Step5:リスト入替(List.Zip):納期・数量をペアにして1行分のリストに変換。
リスト入替 = List.Zip(リスト分割)
納期と数量をペアに:
🔹List.Zip : https://learn.microsoft.com/ja-jp/powerquery-m/list-zip
📌 結果:
リスト入替 = {
{2025/1/1, 35},
{2025/1/4, 200},
{2025/1/20, 1}
}
🔹Step6:レコード変換:それぞれを [納期=..., 数量=...] のレコードに変換。
レコード変換 = List.Transform(リスト入替, (x)=> [納期=x{0}, 数量=x{1}])
📌結果:
納期数量 = {
[納期=2025/1/1, 数量=35],
[納期=2025/1/4, 数量=200],
[納期=2025/1/20, 数量=1]
}
このリストが新しく追加される "納期数量" 列の1セルに格納されます(リスト型)。
4) 列の選択
= Table.SelectColumns(納期数量列の追加, {"品番", "品名", "店舗NO.", "納期数量", "受信日"}),
目的:必要な列だけ残す。
5) 列の展開1
= Table.ExpandListColumn(列の選択, "納期数量"),
目的:「納期数量」列を行に展開(縦持ち化)。
6) 列の展開2
= Table.ExpandRecordColumn(列の展開1, "納期数量", {"納期", "数量"}),
目的:「納期数量」列のレコード(納期・数量)を列に展開。
| 品番 |
品名 |
店舗NO. |
納期 |
数量 |
受信日 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/1 |
35 |
2024/12/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/4 |
200 |
2024/12/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/20 |
1 |
2024/12/1 |
7) フィルターされた行
= Table.SelectRows(列の展開2, each [数量] <> null and [数量] <> ""),
目的:数量が空の行(元データで数量未入力だったもの)を削除。
8) 変更された型
= Table.TransformColumnTypes(フィルターされた行,{{"納期", type datetime}, {"数量", Int64.Type}, {"受信日", type datetime}})
4. ワークシート関数による方法の解説
ワークシート関数を用いた回答もありましたが、これも理解ができなかったのでChatGPTに聞いてみました。
この式は、Excel の LET 関数と LAMBDA, TOCOL, HSTACK などの動的配列関数を組み合わせて、「横持ち(ワイド)表」を「縦持ち(ロング)表」に変換(アンピボット)しているものです。
🔍 入力データ
A1から次の表があります。
| 品番 |
品名 |
店舗NO. |
納期1 |
納期2 |
納期3 |
数量1 |
数量2 |
数量3 |
受信日 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/1 |
2025/1/4 |
2025/1/20 |
35 |
200 |
1 |
2024/12/1 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/3 |
2025/1/4 |
|
13 |
20 |
|
2024/12/1 |
🔍 出力領域
A5から次の表があります。
| 品番 |
品名 |
店舗NO. |
納期 |
数量 |
受信日 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/1 |
35 |
2024/12/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/4 |
200 |
2024/12/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/20 |
1 |
2024/12/1 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/3 |
13 |
2024/12/1 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/4 |
20 |
2024/12/1 |
🔍 A6セルの式の目的
A6に次の式が入っています。この式は、Excel の LET 関数と LAMBDA, TOCOL, HSTACK などの動的配列関数を組み合わせて、「横持ち(ワイド)表」を「縦持ち(ロング)表」に変換(アンピボット)しているものです。
=LET(
fx,
LAMBDA(範囲,
TOCOL(範囲 & IF(D2:F3 = "", 1/0, ""), 3)
),
HSTACK(fx(A2:A3), fx(B2:B3), fx(C2:C3), TOCOL(D2:F3,1), TOCOL(G2:I3,1), fx(J2:J3)*1)
)
これは以下のような変換をしています:
- 納期1~3, 数量1~3 を「行方向に展開」して、
- 各「納期-数量」のペアを1行として出力。
- 他の列(品番・品名・店舗NO・受信日)は繰り返して展開。
- 受信日の「fx(J2:J3)*1」は、「*1」で数値化=シリアル値に変換。
🔍 fx 関数の意味
fx = LAMBDA(範囲, TOCOL(範囲 & IF(D2:F3 = "", 1/0, ""), 3))
この関数の役割は「空白行を除いて縦ベクトルに変換する」です。
- 範囲 & IF(D2:F3 = "", 1/0, "")
- D2:F3 のセルが空なら 1/0(エラー)となる。
- 範囲 & エラー ⇒ そのセルが空ならエラーになり、TOCOL(...,3) によってその行が削除される。
- TOCOL(..., 3) は「行方向に→列方向に変換+エラー削除」
つまり、fx関数に渡した範囲のうち、対応する D2:F3 が空白の行は除外して、縦並びにしてくれるというわけです。
🔍 代表例で動作を確認
たとえば「品番列」だけ見ると:
fx(A2:A3)
→ ABCD-123
→ ABCD-123
→ ABCD-123
→ ABCE-456
→ ABCE-456
- ABCD-123 → 納期3まである ⇒ 3行
- ABCE-456 → 納期3が空白 ⇒ 2行(1行分カット)
同様に fx(J2:J3) は「受信日」の展開:
fx(J2:J3)
→ 2024/12/1
→ 2024/12/1
→ 2024/12/1
→ 2024/12/1
→ 2024/12/1
🔍 全体の式構造(展開される列)
HSTACK(
品番列, 品名列, 店舗NO列, 納期列, 数量列, 受信日列
)
すべて5行になるので、次のような結果になります:
| 品番 |
品名 |
店舗NO |
納期 |
数量 |
受信日 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/1 0:00 |
35 |
2024/12/1 0:00 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/4 0:00 |
200 |
2024/12/1 0:00 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/20 0:00 |
1 |
2024/12/1 0:00 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/3 0:00 |
13 |
2024/12/1 0:00 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/4 0:00 |
20 |
2024/12/1 0:00 |
✅ まとめ:この式のポイント
- TOCOL(..., 3) で行方向データを縦持ちに変換。
- & IF(..., 1/0, "") で空白行を除外。
- LET + fx + HSTACK で項目別に一括展開。
- 結果として、横持ちの納期・数量データを「1納期1行」にアンピボット。
5. Power Queryのクリック操作による方法の解説
クリック操作で整形する方法です。
ステップ数が増え、マージもあるので遅くなりますが、ワークシート関数式やPower Query Mのプログラミングの知識が無い人でも、動作を理解しやすいというメリットがあります。
1) Click0:ソース
[ホーム]-[データの取得v]-[ファイルから]-[テクストまたはCSVファイルから]でCSVファイルを選択し[インポート]、文字コードなどが正しいことを確認して[データの変換]。
右のクエリの設定のプロパティの名前を"Click0"に変更。
2) 昇格されたヘッダ数
前記操作で自動生成されます。
変更された型は削除しても問題ありません。
| 品番 |
品名 |
店舗NO. |
納期1 |
納期2 |
納期3 |
数量1 |
数量2 |
数量3 |
受信日 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2025/1/1 |
2025/1/4 |
2025/1/20 |
35 |
200 |
1 |
2024/12/1 |
| ABCE-456 |
ブラシ |
○○○ |
2025/1/3 |
2025/1/4 |
|
13 |
20 |
|
2024/12/1 |
3) ピボット解除された他の列
Ctrtキーを押したまま"品番", "品名", "店舗NO.", "受信日"列を選択し、[変換]-[列のピボット解除v]-[その他の列のピボット解除]。
これで納期と数量が縦に並びます。
| 品番 |
品名 |
店舗NO. |
受信日 |
属性 |
値 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
納期1 |
2025/1/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
納期2 |
2025/1/4 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
納期3 |
2025/1/20 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
数量1 |
35 |
| 途中省略 |
|
|
|
|
|
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
数量2 |
20 |
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
数量3 |
|
4) 文字の移行による列の分割
"属性"列を選択し[変換]-[列の分割v]-[数字以外から数字による分割]。
これで納期と数量の項目名を統一すると同時に、それらを識別するための後ろの数字の列が生成されます。この数字は、後で納期と数量をピボットで横に展開する時のエラーを回避するために使います。
| 品番 |
品名 |
店舗NO. |
受信日 |
属性.1 |
属性.2 |
値 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
納期 |
1 |
2025/1/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
納期 |
2 |
2025/1/4 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
納期 |
3 |
2025/1/20 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
数量 |
1 |
35 |
| 途中省略 |
|
|
|
|
|
|
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
数量 |
2 |
20 |
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
数量 |
3 |
|
5) Click数量:ソース
左の"Click0"を右クリックし[参照]。
右のクエリの設定のプロパティの名前を"Click数量"に変更。
6) フィルターされた行
"属性.1"列のフィルタアイコンをクリックし、[指定の値で始まる]、"数量"を入力し[OK]。
これで数量行のみになります。
7) 削除された列
"属性.1"列を右クリックし[削除]。
8) 名前が変更された列
"値"列をWクリックし、名前を"数量"に変更。
これで"数量"が縦に並んだ表ができます。
| 品番 |
品名 |
店舗NO. |
受信日 |
属性.2 |
数量 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
1 |
35 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
2 |
200 |
| 途中省略 |
|
|
|
|
|
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
2 |
20 |
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
3 |
|
9) Click:ソース
左の"Click0"を右クリックし[参照]。
右のクエリの設定のプロパティの名前を"Click"に変更。
6) フィルターされた行
"属性.1"列のフィルタアイコンをクリックし、[指定の値で始まる]、"納期"を入力し[OK]。
これで納期行のみになります。
7) 削除された列
"属性.1"列を右クリックし[削除]。
8) 名前が変更された列
"値"列をWクリックし、名前を"納期"に変更。
これで"納期"が縦に並んだ表ができます。
| 品番 |
品名 |
店舗NO. |
受信日 |
属性.2 |
納期 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
1 |
2025/1/1 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
2 |
2025/1/4 |
| 途中省略 |
|
|
|
|
|
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
2 |
2025/1/4 |
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
3 |
|
9) マージされたクエリ数
[ホーム]-[クエリのマージv]-[クエリのマージ]で次のように選択します。
2つ目の表に[Click数量]を選択。
Ctrlキーを押したまま上下の"品番", "品名", "店舗NO.", "受信日", "属性.2"列をクリックし[OK]。

10) 展開されたClick数量
"Click数量"列の矢印展開アイコンをクリックし、"数量"のみチェックし、"元の列名をプレフィックスとして使用します"のチェックを外し[OK]。
| 品番 |
品名 |
店舗NO. |
受信日 |
属性.2 |
納期 |
数量 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
1 |
2025/1/1 |
35 |
| ABCD-123 |
ゴミ袋 |
○○○ |
2024/12/1 |
2 |
2025/1/4 |
200 |
| 途中省略 |
|
|
|
|
|
|
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
2 |
2025/1/4 |
20 |
| ABCE-456 |
ブラシ |
○○○ |
2024/12/1 |
3 |
|
|
11) 削除された列1
マージキーとして使用した"属性.2"列を右クリックして[削除]。
12) フィルタされた行1
"数量"列のフィルタアイコンをクリックし[空の削除]。
13) 並べ替えられた列
"受信日"列を選択し、[変換]-[移動v]-[末尾に移動]。
14) 変更された型
"納期"、"受信日"の型を[日付/時刻]、"数量"の型を[整数]に変更。
15) 閉じて読み込む
[ホーム]-[閉じて読み込むv]-[閉じて次に読み込む]で"接続の作成のみ"を選択し[OK]。
16) 読み込み先
[データ]-[クエリと接続]で右の"クエリと接続"から読み込みたいクエリを右クリックし[読み込み先]で、読み込み先を選び[OK]。
6. サンプル
ダウンロード - 250716pqyoko.zip
C:\Users\Public\Documents に展開してください。
7. その他
関連記事
Power Queryで表をリスト形式に整形する方法(まとめ)
https://bigarrow.tea-nifty.com/blog/2025/11/post-4925ca.html
月別に独立して横に展開されている項目の表の整形
https://bigarrow.tea-nifty.com/blog/2025/07/post-485823.html
項目が繰り返し横に伸びる、開始日と終了日のデータのみの表をモダンExcelで集計
https://bigarrow.tea-nifty.com/blog/2025/07/post-258734.html
Excel Power Queryで横項目3段のクロス表をリスト形式にする方法
https://app.cocolog-nifty.com/cms/blogs/632678/entries/95284684
最近のコメント