『閾値を超えるデータの分割処理』(ゆ)
以下の処理を行いたいのですがやり方が思いつきません
どなたか知恵を貸してください
元データ
品番 閾値 値
A 3 7
加工後
品番 閾値 値
A 3 3
A 3 3
A 3 1
パワークエリで処理できるのが理想です。。。
< 使用 Excel:Excel2021、使用 OS:Windows11 >
■シートレイアウト <Sheet1> A列 B C 1 品番 閾値 値 2 A 3 7 3 B 4 13
<Sheet2> A B C 1 品番 閾値 値 2 A 3 3 3 A 3 3 4 A 3 1 5 B 4 4 6 B 4 4 7 B 4 4 8 B 4 1
■クエリーの内容は以下。
let // 元のテーブルの読み込み Source = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
// 値を閾値で割って、分割数と余りを求める AddColumns = Table.AddColumn(Source, "Parts", each let threshold = [閾値], value = [値], quotient = Number.IntegerDivide(value, threshold), remainder = Number.Mod(value, threshold), repeatedList = List.Repeat({threshold}, quotient), finalList = if remainder > 0 then List.Combine({repeatedList, {remainder}}) else repeatedList in finalList ),
// 各Parts列のリストを展開して、1行ずつに変換 Expanded = Table.ExpandListColumn(AddColumns, "Parts"),
// 最終的に整形 Renamed = Table.RenameColumns(Expanded, {{"Parts", "値2"}}), 削除された列 = Table.RemoveColumns(Renamed,{"値"}) in 削除された列
あとは、この結果をSheet2に出力してください。
# Chat-GPTの回答に若干の修正をしたものです。
(xyz) 2025/06/11(水) 07:37:39
項目名を"値"にすべきであれば、最後の4行を以下に変更してください。
// 最終的に整形 Expanded2 = Table.RemoveColumns(Expanded,{"値"}) Renamed = Table.RenameColumns(Expanded2, {{"Parts", "値"}}), in Renamed
# ご希望どおりPowerQuery案を提示しましたが、2日経って何の音沙汰もないのは残念なことです。 # 時間が取れなくなったということでしょうか。それならその旨を一報してください。 # このまま放置するのはご勘弁願いたい。
(xyz) 2025/06/13(金) 10:34:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.