空いている行を上の値で埋めるのは「下方向にフィル」で簡単にできますが、その逆はどうでしょうか。もちろん「上方向にフィル」という意味ではなくてです。
Image may be NSFW.
Clik here to view.
つまり画像のように、先頭の値以外を表示しない設定です。「ピボットテーブルでやれ」、「クエリでやることか」といってしまえばその通りなんですが、頭の体操がてらどうやればいいか考えてみましょう。
エクセル感覚だと「上のセルと比較してー」と安易に考えがちですが、クエリでそれをやるのは非効率です。「0」開始と「1」開始のインデックス列を用意して、リストから参照したりマージしたりしてやればもちろんできますが、面倒ですし地味に重くなります。ここは一度、リスト化してから編集したほうがいいでしょう。
例によって左のテーブル(テーブル名は「テーブル1」)は既に読み込んであるものとします。
let
ソース = テーブル1,
リストに変換 = Table.ToColumns(ソース),
グループ表示 = (l as list)=> [
組み換え = List.Zip({l&{1/0}, {null}&l}),
編集 = List.Transform(
List.FirstN(組み換え, each _{0}<>1/0),
each if _{0}=_{1} then null else _{0}
)
][編集],
リストの編集 = List.Transform(リストに変換, each グループ表示(_)),
テーブルに変換 = Table.FromColumns(
リストの編集, type table Type.TableRow(Value.Type(ソース))
)
in
テーブルに変換
こんな感じです。グループ化したくない列がある場合は、最初にリストを2つに分けておいて、後から結合してテーブルに変換すればいいですね。