『別ブックで集計したものを、関数を利用して抽出したい。』(佐藤)
お世話になっております。
抽出先シート(Bブック)D列には、別ブックAのC列と完全一致する文字列があり、
抽出先シート(Bブック)I列には、別ブックAのA列と部分一致する文字列があります。
これを利用して
1.BブックのD列とAブックのC列が一致し、さらに
BブックのI列とAブックのA列が部分一致した場合、
BブックのL列にAブックのA列を表示
2.BブックのD列とAブックのC列が一致し、さらに
BブックのI列とAブックのA列が部分一致した場合、
BブックのM列にAブックのB列を表示
<Aブック>
|[A] |[B] |[C] [1]|機種|担当|品目 [2]|H3 |鈴木|木材2x4 [3]|H3 |田中|ねじ [4]|H7 |山田|脚立 [5]|H6 |佐藤|コンクリート [6]|H7 |吉田|掃除機
<Bブック>
|[D] |[E] |[F] |[G] |[H] |[I] [1]|品目名 |取引先|金額 |状態 |見積書|機種名 [2]|ねじ |A社 | 1,200|出荷待ち|印刷済|H3,H6 [3]|木材2x4 |A社 | 8,500|出荷待ち|印刷済|H3,H6 [4]|掃除機 |B社 | 44,000|発注待ち|印刷済|H3,H6 [5]|コンクリート|A社 |230,000|印刷待ち|印刷済|H5,H7 [6]|脚立 |B社 | 10,000|印刷待ち|印刷済|H5,H7
シートはテーブルになっているので、テーブルで関数が利用できないのであれば
M列、N列を利用(テーブル外)しようと考えております。
お知恵をお貸しくださいませ。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
Aブック・Bブックのテーブルからそれぞれクエリを作成(接続のみ)
PowerQueryエディタを開いて Bブックを参照した新規クエリを作成
「fx」ボタンを押して下記の式を追加
= Table.AddColumn( ソース, "x", each try Table.SelectRows( Aブック, (x)=> x[品目]=[品目名] and Text.Contains([機種名], x[機種]) ){0} otherwise null, type [機種=text, 品目=text] )
「x」列を指定して「機種」「品目」列を展開
以上です。
(d-q-t-p) 2025/03/14(金) 09:22:02
機種
=IFERROR(FILTER(Aブック[機種],(Aブック[品目]=[@品目名])*ISNUMBER(FIND(Aブック[機種],[@機種名]))),"")
品目
=IFERROR(FILTER(Aブック[品目],(Aブック[品目]=[@品目名])*ISNUMBER(FIND(Aブック[機種],[@機種名]))),"")
でいいんでしょうけど。
(d-q-t-p) 2025/03/14(金) 09:26:41
初めてパワークエリを利用してみました。
やりたかったことがこんなに簡単に出来るなんて驚きです、ありがとうございます。
そもそも関数にこだわっていたのは、パワークエリを利用したことがなかったためです。
外部参照になってしまうため、
シートごと移動した際などに教示いただいた関数を利用しようと思います。
・・・・・さま
2つの機種を同じ番号で扱っているためなのです。
たしかにBブックへ表示する方がわかりやすいかもしれません。
今回はパワークエリでうまくいきました。
ありがとうございました。
(佐藤) 2025/03/14(金) 09:52:36
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.