- ベストアンサー
Excel 複数行の抽出について
Excel 複数行の抽出について Sheet1に商品リストがあります。 Sheet2に商談IDがあります。 Sheet3にSheet2の商談IDがある商品だけ、抽出したいです。 Excelの関数もしくはマクロで解決できますでしょうか。 ご回答お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たしかに、関連性が見出せませんね 数式で求めてみました Sheet1 A列 商品リスト B列 商談ID Sheet2 A列 商談ID 回答の(理解していただきたい)ために同一シートにします。 E2セルは対象商談IDの個数 =COUNTIF($B$2:$B$10,D2) 下へオートフィル 商談IDを必要数表示させる G2セル =D2 G3セル =IF(SUM($E$2:$E$5)<=ROW(A1),"", IF(INDEX($E$2:$E$5,MATCH(G2,$D$2:$D$5,0))=COUNTIF($G$2:G2,G2), INDEX($D$2:$D$5,MATCH(G2,$D$2:$D$5,0)+1),G2)) 下へオートフィル 求める行を見つける H2セル =MATCH(G2,$B$2:$B$10,0) H3セル =IF(G3="","",IF(G2<>G3,MATCH(G3,$B$2:$B$10,0), MATCH(G3,INDEX($B$2:$B$10,H2+1):$B$10,0)+H2)) 下へオートフィル 商品を表示させる H2セルに =IF(H2="","",INDEX($A$2:$A$10,H2)) 下へオートフィル 添付図参照 参考まで
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
> Sheet1に商品リストがあります。 > Sheet2に商談IDがあります。 > Sheet3にSheet2の商談IDがある商品だけ、抽出したいです。 商品だけのリストとIDだけのリストでは関連付けがわからないのでどうやっても無理です。 Σ( ̄ロ ̄lll) でも、まさかそんな馬鹿な質問ではないと思うのでこちらで勝手に想像した前提で回答します。 Sheet1の商品リスト A列に商品名、B列に「商談ID」(ってなんだろう?) Sheet2の商談ID A列に「商談ID」 (ANo.1の補足によると、別な商品であっても同一IDがある。) Sheet3のA列にヒットした商品名、B列にその商談IDを転記する。 Sub test01() Dim myW, myX, myY Dim i As Long, n As Long, j As Long With Sheets("Sheet1") myW = .Range("A1", .Cells(Rows.Count, "B").End(xlUp)).Value End With With Sheets("Sheet2") myX = .Range("A1", .Cells(Rows.Count, "A").End(xlUp)).Value End With ReDim myY(1 To UBound(myW), 1 To 2) For i = 1 To UBound(myW) For n = 1 To UBound(myX) If myW(i, 2) = myX(n, 1) Then j = j + 1 myY(j, 1) = myW(i, 1) myY(j, 2) = myW(i, 2) End If Next n Next i With Sheets("Sheet3") .UsedRange.ClearContents .Range("A1").Resize(j, 2).Value = myY End With End Sub
お礼
ご回答ありがとうございました。わかりづらい質問で大変申し訳ありませんでした。
- aokii
- ベストアンサー率23% (5210/22062)
vlookup関数で、Sheet2の商談IDがある商品だけ抽出してはいかがでしょうか。
補足
ご回答ありがとうございます。すみません。質問の内容が悪かったです。同じIDでも商品名が異なります。たとえばIDが2でりんごとももがあった場合にはりんごとももの両方の行を抽出したいです。よろしくお願いいたします。
お礼
ご回答ありがとうございました。完成図まで掲載して頂き助かります。