- ベストアンサー
【Excel】 部分一致検索の関数
shiotan99の回答
こんにちは~ 該当するのが複数あったとき、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列に同じ名前のものはないことが前提になります。 * 少量のデータでしか検証していませんが、一応どちらの方法でもうまくいきました。 とりあえず試してみてくださいっ (^^)/
関連するQ&A
- 【Excel】一致するデータの検索
Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2007で、検索をしたいのですが…。
Excel2007で、検索をしたいのですが…。 A列にNo. B列に品名 であればVLOOKUPで検索出来るのですが、教えて頂きたいのは A列にNo. B列に品名 C列にもNo. D列にNo.入力 E列に表示 例) 01 机 91 02 椅子 92 03 布 93 01 と入力した場合も 91 と入力した場合もどちらも『机』と表示されて欲しいのです。 この場合、VLOOKUPでは対応出来ない気がするのですが、何か別の関数ありますか? 当方、関数は苦手で、ほぼ初心者のようなものです。 宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- 部分一致検索
A列 B列 C列 12345 あい 愛 23456 かき 柿 34567 さし 差 上記のように入力されているデータがあります。 同じフォーマットで入力内容の異なる別ファイルからA列の内容をコピーして、D列に貼り付けます。 D列 23523 12381 34111 この時、D列の最初の3バイトとA列の最初の3バイトを比較し、A列に同じデータがあった場合にC列の内容をE列にコピーする作業をさせ、最終的に以下のように表示させたいのですが、これを関数で行う事は可能でしょうか。 A列 B列 C列 D列 E列 12345 あい 愛 23523 23456 かき 柿 12381 愛 34567 さし 差 34111 もしくはE列については「○」「×」等でデータが存在するかしないかを選別するだけでも構いません。 以上、宜しくお願いします。
- ベストアンサー
- その他MS Office製品
- VLOOKUP関数で検索できません
A列に勤務時間帯、B列に人数を入力したリストがあります。 E1にVLOOKUP関数を入力しましたがエラーになるので困っています。 A1 → 8:00~18:00 B1 = 5 A2 → 9:00~19:00 B2 = 7 D1 → 8:00~18:00 E1 → =VLOOKUP(D1,A1:B2,2,0) チルダを抜くと検索できるようになりますが、 VLOOKUP関数でチルダは使えないのでしょうか。 チルダありでも検索できるうまい方法があれば教えて下さい。
- ベストアンサー
- オフィス系ソフト
- excel関数教えてください。
表にしてあって、A列には任意の数字がはいるようなってます。関数はB、C、D列に使いたいのですが B列:Aを3で割り小数点以下に.666が出たときには整数に2を足して、.333の場合は整数に1を足して表示したい。 C列:Aを3で割り小数点以下に.666か.333の場合小数点以下を切り捨てたい D列:Aを3で割り小数点以下に.666か.333の場合小数点以下を切り上げたい 例としては A B C D 1 10,000 33,334 33,333 33,333 2 20,000 66,668 66,666 66,666 上のような表です。Aに入る数値はいろんな 数値があります。関数に該当しないものは 3で割った数字をそのまま表示したいです。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- 関数について
関数について VLOOKUP関数を使ってみようと思っているのですが1列目のデータの抽出に仕方がわかりません。 入力例 sheet1 B列__C列__D列 1_______A____現金 2_______B____現金 3_______C____カード 4_______D____カード 5_______E____現金 抽出例 sheet2 B列__C列__D列 1_______A____現金 2_______B____現金 5_______E____現金 抽出例のC、D列はVLOOKUPを使おうと思っています。 B列の抽出にはどのようにしたらいいかおしえてください。
- 締切済み
- オフィス系ソフト
- 関数 数式 Excel
すみませんが教えてください! E列に下のような関数を入れたところ正しく表示されませんでした・・・ どうぞよろしくお願いします。 A列(数字・空白を含む)が 1 の場合”◎” A列が1以外の場合は B列(別シートから参照のVLOOKUP関数が入っている)と C列(別シートから参照ののVLOOKUP関数が入っている) を足した数字が D列(別シートから参照ののVLOOKUP関数が入っている) が同じなら ”OK” 違うなら ”NG" と表示させたいので =IF(A1=1,"◎",IF(D181=(B181+C181),"OK","NG")) としてみましたが"◎"が表示される表示は正しいのですが "OK" "NG"が正しく表示されません。 これに加えていずれのセルにも空白が存在するのでエラーを出さないようにしたいです。 よろしくおねがいします!!
- ベストアンサー
- Windows XP
- Excel関数について(初級者)
例えば以下の表データがあり、 A B 1 数字 記号 ←タイトル行 2 1 a 3 2 b 4 3 c A行のある数字を入力するとB行の同じ列の記号を表示させるのは(入力欄をC2、結果表示セルをD2として) D2に VLOOKUP(C2,A2:B4,2) でうまくいきました。つまり2を入力するとbという答えです。 でも逆にB行のある文字を入力するとA行の同じ列の数字を表示させるのに(入力欄をC3、結果表示セルをD3として) D3に VLOOKUP(C3,A2:B4,1) つまりcと入力すると3の答え でやってみたが#N/Aのエラーがでてうまくいきません。 間違った点のアドバイスをお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel日付の部分一致(年月が一致)検索する関数について教えてくださ
Excel日付の部分一致(年月が一致)検索する関数について教えてください。 A列に日付データがあります。 A列が2010年3月だったら、B列に、1003 2010年4月だったら、1004、以下末尾を+1を反映させる関数を教えてください。 A列 B列 2010/3/6 10:23:19 1003 2010/5/6 9:23:19 1005
- ベストアンサー
- オフィス系ソフト
お礼
おはようございます! とても親切丁寧に教えて下さり、ありがとうございます!! それと、お返事が遅くなってしまい申し訳ありませんm(_ _)m 早速試しましたところ、全てうまくいきました!!!! どの数式も知らない関数や呪文(?)が沢山あったので 私ではとうてい思いつかないようなものだったようです。 私もshiotan99さまのように、関数を使いこなせるようになるため、がんばろうと思います。 本当に助かりました、どうもありがとうございました!!! (^∇^)/~~~