今回はPowerQueryの小技です。
サイズが(横にも縦にも)大きいテーブルを扱うとき、クエリの評価も遅くなるし、評価後の結果を確認するのも大変です。かといって列を減らすことも上位N行にフィルターしたり上位N行をスキップすることも許されない、私が今置かれているそんな過酷な状況を少しでも緩和すべく、解決策を考えてみました。
(T as table, divisor as number) =>
let
追加されたインデックス = Table.AddIndexColumn(T, "index", 1, 1, Int64.Type),
追加されたカスタム = Table.AddColumn(追加されたインデックス, "Mod", each Number.Mod([index],divisor)),
フィルターされた行 = Table.SelectRows(追加されたカスタム, each ([Mod] = 0)),
削除された列 = Table.RemoveColumns(フィルターされた行,{"index", "Mod"})
in
削除された列
この関数にSelectRowsByN
という名前を付けるとしましょう。
これでたとえばSelectRowsByN(テーブル,30)
とすればテーブルから行を30行ずつ飛ばしながら取得してくれます。
これで解決するといいのだが…。