好きな人を振り向かせるためにしたこと

B列の文字列に「部分一致」する、A列のデータが「いくつあるか」をC列に表示させ、D列にはそれを表示させたいです。
vlookup関数のtrueやdcount関数を使ってみましたが、うまくできません…

どなたかお知恵をお貸しくださいませ。。宜しくお願いします。


 A  B C D
1煮豚 煮 2 煮豚、煮牛
2包豚 焼 1 焼豚
3煮牛 揚 0 
4焼牛 蒸 0
5包鶏 生 0

A 回答 (1件)

こんにちは~



該当するのが複数あったとき、D列の 1つのセルに「煮豚、煮牛」とまとめるのは絶対条件ですか?
YESならこの回答はこの時点でスルーしてください (T_T)/~~~

D列に煮豚、E列に煮牛‥と1つのセルに1個ずつ入れてもいいよ、という広~いココロをお持ちなら、次の方法を試してみてください。

◆ A列は、A1:A100の範囲内にデータがあるとします。

C1セル( これはカンタン )
----------------------------------
=IF(B1="","",COUNTIF($A$1:$A$100,"*"&B1&"*"))
----------------------------------
と入れて、B列のデータ最終行までフィルコピー。

D列以降ですが‥
■方法その1
D1セル
----------------------------------
=IF(OR($C1="",$C1<COLUMN(A1)),"",INDEX($A:$A,100-LARGE(INDEX(ISNUMBER(FIND($B1,$A$1:$A$100))*100-ROW($A$1:$A$100),0),COLUMN(A1))))
----------------------------------
な、長っ!て思いました?
↑の式をそのままエクセルにコピー&ペースト。
貼り付けるときは、D1セルを右クリック~形式を選択して貼り付け~テキストの方がいいかも、です。
そのあと必要なだけ右にフィルコピー( 該当するのが最大5つなら H1セルまで )
そのまますべて B列のデータ最終行まで下にフィルコピー。
A列のデータが 100を超えるなら、数式の 100をすべて修正してください。
100-LARGE と 100-ROW の 100も A列の最終行数に合わせてください。

あんまり範囲を広げすぎると処理が重くなるかもしれません。
COLUMN(A1) の A1は変更しないでください。元データが A列以外でも A1のまま。
(↑D1セルのみ。あとは右に下にコピーするだけでOK )


■方法その2
D1セル
----------------------------------
=IF(OR(C1="",C1<1),"",VLOOKUP("*"&B1&"*",$A$1:$A$100,1,FALSE))
----------------------------------

E1セル
----------------------------------
=IF(OR($C1="",$C1<COLUMN(B1)),"",VLOOKUP("*"&$B1&"*",INDEX($A$1:$A$100,MATCH(D1,$A$1:$A$100,0)+1):$A$100,1,FALSE))
----------------------------------
E1の式を必要なだけ右にフィルコピー。
D1の式も含めて、すべてB列データ最終行まで下にフィルコピー。

これも範囲は適宜修正を。
COLUMN(B1) の B1は変更しないでください。検索キーワードが B列でなくても B1のまま。
( ↑E1セルのみ。あとは右に下にコピーするだけでOK )

方法その2は、A列に同じ名前のものはないことが前提になります。
*
少量のデータでしか検証していませんが、一応どちらの方法でもうまくいきました。
とりあえず試してみてくださいっ (^^)/
    • good
    • 0
この回答へのお礼

おはようございます!
とても親切丁寧に教えて下さり、ありがとうございます!!
それと、お返事が遅くなってしまい申し訳ありませんm(_ _)m

早速試しましたところ、全てうまくいきました!!!!
どの数式も知らない関数や呪文(?)が沢山あったので
私ではとうてい思いつかないようなものだったようです。

私もshiotan99さまのように、関数を使いこなせるようになるため、がんばろうと思います。
本当に助かりました、どうもありがとうございました!!! (^∇^)/~~~

お礼日時:2006/01/31 10:23

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


おすすめ情報