• 締切済み

エクセル 特定文字列のセル番号を返したい

宜しくお願いいたします。(エクセル2013) B1:F1の範囲内に、「AAA」という文字列があり、その文字列のセル番号をまず、初めに返したいと考えています。 そして最終的に、AAAの右隣のセルに入っている数値を返したいのですが、どうもうまくいきませんm(__)m またAAAがない場合は、空白で返したいです。 H2とG2に入れる数式をご教授お願いいたします。

みんなの回答

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

シンプルに。 I2に =SUMIF(B2:F2,"AAA",C2:G2) と記入、セルの書式設定の表示形式のユーザー定義で # と設定しておきます。 セル番地とかは使いません。

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

>どうもうまくいきませんm(__)m どのような数式を使ったかを提示して頂ければ考え方の誤りを説明できます。 H2セルへは同じ行のA列からG列に"AAA"が入力されているセルの番地を求めます。 それにはADDRESS関数を使います。 行番号は数式と同じ番号ですからROW()でH2セルではROW(H2)と等価の2が適用されます。 列番号はMATCH関数を使って同じ行の"AAA"が入力された位置を検出します。 従って、H2には次の数式を入力すれば良いでしょう。 =ADDRESS(ROW(),MATCH("AAA",A2:G2,0),4) 但し、"AAA"が見付からなかったときはエラーになりますので、IFERROR関数でエラーのときは空欄("")とするようにします。 =IFERROR(ADDRESS(ROW(),MATCH("AAA",A2:G2,0),4),"") I2(質問ではG2)にはセルのADDRESSではなく値を抽出しますので、INDEX関数またはOFFSET関数で目的のセル位置から入力されている値を取り出します。 INDEX関数の場合はADDRESS関数と同様にMATCH関数で列位置を指定しますが、位置は右隣なので1を加えます。 行位置は同じ行なので1または指定なしとします。 =IFERROR(INDEX(A2:G2,MATCH("AAA",A2:G2,0)+1),"") OFFSET関数の場合は指定セルからの距離(セル数)を行と列について指定しますので、位置についてはINDEX関数で使う数値より1少ない数値になります。 =IFERROR(OFFSET(A2,0,MATCH("AAA",A2:G2,0)),"")

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! すでに色々回答は出ていますが・・・ H2セルに =IFERROR(ADDRESS(ROW(),MATCH("AAA",A2:F2,0),4),"") I2セルに =IFERROR(OFFSET(INDIRECT(H2),,1),"") という数式を入れフィルハンドルで下へコピー! これでも大丈夫だと思います。m(_ _)m

noname#204879
noname#204879
回答No.3

余計な講釈はナシにして、次では如何? H2: =IF(ISERROR(MATCH("AAA",B2:F2,0)),"",CHAR(65+MATCH("AAA",B2:F2,0))&ROW()) I2: =IF(H2="","",INDEX(B2:G2,MATCH("AAA",B2:F2,0)+1))

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

取り敢えずこんな感じでしょうか 質問文にはG2セルとありましたがI2ですよね? H2:=IFERROR(ADDRESS(ROW(),MATCH("AAA",A2:G2),4),"") I2:=IFERROR(OFFSET(A2,,MATCH("AAA",A2:G2)),"")

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.1

いちいちセル番地を一度表示させる意味がありません。 =INDEX(B2:H2,MATCH("AAA",B2:H2,0)+1)