• ベストアンサー

Excelの関数について

VLOOKUP関数では出来ないのでご相談で御座います! 横一列(2:2)で特定文字列を検索し、特定文字列セルの右隣のセルの情報を返したいです。 仮に、2:2行を全て選択して「テスト」という文言がある右隣の1つめ(2つめも可能なら)のセルを返したい場合はどのうような関数でやれば宜しいでしょうか。 Excelマスターの方、ご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>横一列(2:2)で特定文字列を検索し、特定文字列セルの右隣のセルの情報を返したいです。 Excelでは行と列を明確に区別していますので紛らわしい表現は判断の誤りに繋がります。 つまり、「横一列(2:2)」ではなく「特定の行(2:2)」のように表現します。 >仮に、2:2行を全て選択して「テスト」という文言がある右隣の1つめ(2つめも可能なら)のセルを返したい場合はどのうような関数でやれば宜しいでしょうか。 VLOOKUP関数は列を対象にする検索に使うためのものであり行を対象に検索するときはHLOOKUP関数を使います。 しかし、質問の内容ではHLOOKUP関数でも抽出できません。 MATCH関数とINDEX関数の組み合わせで抽出できると思われます。 但し、検索値の「テスト」と言う文字列が複数のときは最初に検出したものだけになります。 右隣の値=INDEX(2:2,MATCH("テスト",2:2,0)+1) 2つ目の値=INDEX(2:2,MATCH("テスト",2:2,0)+2) MATCH関数で「テスト」が検出できないときはエラーになりますので、その対策は別途考えてください。 Excel 2007以降のバージョンではIFERROR関数を使い、エラーのときは""を代入する方法で良いでしょう。 =IFERROR(INDEX(2:2,MATCH("テスト",2:2,0)+1),"")

fasdkfa
質問者

お礼

素晴らしいです!私のやりたいことが見事出来ました。 2つの関数初めて知りました。 大変勉強になりました。有り難うございます!

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>2:2行を全て選択して…検索し、特定文字列セルの右隣のセルの情報を返したい 検索して見つけた右隣を返したいなら、10何行目みたいに複数個テストが見つかった場合に一体どーしたいのか、キチンと説明が必要です。 見つけたいんじゃなくただ合計したいだけなら、 =SUMIF(A2:Z2,"テスト",B2:AA2) =SUMIF(A2:Z2,"テスト",C2:AB2) とかで十分です。

fasdkfa
質問者

お礼

説明不足で申し訳ありません。 いずれか一つ返せれば問題ありませんでした。 作成したサンプルが良くなかったです。 失礼しました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

該当列が複数ある場合は数値の合計でいのでしょうか? 1列目(複数ある場合は合計値になります。) =SUMPRODUCT(ISNUMBER(FIND("テスト",$A2:$IV2))*1,$B2:$IW2) 2列目(複数ある場合は合計値になります。) =SUMPRODUCT(ISNUMBER(FIND("テスト",$A2:$IV2))*1,$C2:$IX2) 1列目と2列目の積の和なら =SUMPRODUCT(ISNUMBER(FIND("テスト",$A2:$IV2))*1,$B2:$IW2,$C2:$IX2)

fasdkfa
質問者

お礼

大変失礼しました。 用意した画像サンプルが良くなかったです。 新たな関数の勉強となりました。有り難うございます!

関連するQ&A

専門家に質問してみよう