検索用の条件テーブルを使って一致するデータを抜き出す場合、単純にはテーブル同士をマージしてやればいい……んだけども、マージが絶対に必要という訳ではない。
というわけで、まずはマージを使って「表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)」とすればいい。