なんでもエクセル(Nandemo Excel)

何でもエクセルでやってしまう そこのあなた。ようこそ

Power Query:条件テーブルを使って抽出する

検索用の条件テーブルを使って一致するデータを抜き出す場合、単純にはテーブル同士をマージしてやればいい……んだけども、マージが絶対に必要という訳ではない。

というわけで、まずはマージを使って「表1」から「表2」と複数条件で一致するデータを抜き出してみる。

let
    ソース = 表1,
    クエリのマージ = Table.NestedJoin(
        ソース, Table.ColumnNames(表2),
        表2, Table.ColumnNames(表2), "表2"
    ),
    行の抽出 = Table.SelectRows(
        クエリのマージ, each Table.RowCount([表2])>0
    ),
    列の削除 = Table.RemoveColumns(行の抽出,{"表2"})
in
    列の削除

別にこれで問題ないんだけど、先にリスト変換してから抽出してやってもいいんじゃなかろうか。

Table.FromRows(
    List.Select(
        Table.ToRows(表1),
        each List.FirstN(_, 3) = Table.ToRows(表2){0}
    ),
    type table Type.TableRow(Value.Type(表1))
)

「let~in」すらいらないから省いてしまった。「3」となっているところは、列数固定でないなら「Table.ColumnCount(表2)」とすればいい。