プロが教える店舗&オフィスのセキュリティ対策術

エクセル2000です。

とあるシート[start]のセルF1とF2で入力した文字列をそのまま繋げ(START!F1&START!F2)たものを検索の対象にして、他のシートにあるレコードを検索したいのです。

他のシート[入金履歴]の一番左の列を検索して、検索対象と一致するレコードが欲しいのです。

が、一致するレコードはn件。つまり、一対nになってます。一対一ならばVLOOKUPで話は簡単なのですが、一致する複数のレコードをどう引っ張ってきたらいいかわかりません。

A 回答 (5件)

こんなのは参考になりませんか。


(データ)Sheet1のA1:B11に
コード内容
ax
bf
cg
bv
cx
cあ
as
ad
bf
(条件)Sheet2のA1:B2に
コード内容
b
(操作)
データ-フィルタ-フィルタオプションの設定
指定した範囲をON
リスト範囲  $A$1:$B$11
検索条件範囲 Sheet2!$A$1:$B$2
抽出範囲   $F$1:$G$11
(結果)F1:G11に
コード内容
bf
bv
bf
bb
    • good
    • 0
この回答へのお礼

これをマクロの一部に組み込んで出来ました。
ありがとうございました。

お礼日時:2003/05/22 10:44

たとえばA列にデータがあるとしたらB列に1から始まる行を示す番号を入れ、C列に


=IF(A2=START!F1&START!F2,B2,"")
とします。B列の変わりにROW関数を使ってもいいです。
レコードの表の左上のセルの上のセルがA1だとし、抽出したいデータが左からm列目の列にあるとすると
=OFFSET(A1,SMALL(C1:C100,n),),m-1)
nを1,2,3---と変えて十分な数のセルにそれぞれ入れてやります。エラー値が気になるならISERROR関数で消してください。
    • good
    • 0

検索対象がA列、抽出したいレコードがB列にあるとするとC列に


=IF(A2=START!F1&START!F2,B2&" ","")
としてやり
一致するレコードを
=CONCATENATE(C2,C3,C4,---,C100)
としてやればひとつのセルにスペースで区切られた複数のレコードを出してやることもできます。
    • good
    • 0

検出したい文字列が複数ある場合は検出先のレコードの横に作業セルを置くのは不都合だと思います。


その場合はたとえばSTART!シートのセルG1に
=MATCH(START!F1&START!F2,A2:A100,0)
セルH1に
=MATCH(START!F1&START!F2,INDIRECT("A"&2+G1&":A100"),0)+G1
としてH1を(START!$F1&START!$F2と絶対参照にして)横にコピーしてやればA2:A100の中の行位置を表すことができます。
あとはG2,H2--にG1,H1--を使って検索結果を抽出してください。
    • good
    • 0

そういやフィルタオプションはご存知ですか。



参考URL:http://homepage1.nifty.com/kenzo30/ex_kisotoku/e …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!