• ベストアンサー

excelで○○と入力されているセル番地を返す方法

excelについて質問です。 シートAに下記の記述をします。    A    B 1 項目名 セル番地 2 ○○  B7 のような形で、シートBからセル番地を引っ張ってくる方法はありますでしょうか。 セル番地が難しいようであれば、行、列を返す形でもよいです。 上手く質問ができず、申し訳ありません。 できればVBAは使わず、関数で処理できるとベターです。 宜しくお願いいたします。

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

  • ベストアンサー
noname#52504
noname#52504
回答No.4

「対象のセルが複数存在することはない」というのが前提になりますが。 A2の値をSheetBのA1:Z99の範囲から探し、そのセルのセルアドレスを返す。 =IF(COUNTIF(SheetB!$A$1:$Z$99,A2)=1,ADDRESS(SUMPRODUCT(ROW(SheetB!$A$1:$Z$99)*(SheetB!$A$1:$Z$99=A2)),SUMPRODUCT(COLUMN(SheetB!$A$1:$Z$99)*(SheetB!$A$1:$Z$99=A2)),4),"#Error!") Excel2003で動作確認済。 ■ある範囲のセルから任意の値を検索して、  その隣のセルの値を取得するという関数はありますか? http://oshiete1.goo.ne.jp/qa3680269.html

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

もっと順を追った形の質問にできないのかな。 Sheet1の    A    B 1 項目名 セル番地 2 ○○  B7 のA2に文字列を入れる。 Sheet2のシートからその文字列の入っているセルを探したい。 そして番地をB2に表示したい。 ーーー また質問の不完全なところ。 (1)Sheet2のB列・1列の中を探すのか。多列の中を探すのか。 関数では制限があるのだ。VLOOKUPの類と、MATCHぐらいしかないが どちらも多列の検索はできない。 (2)1回限り出現ないし、該当なしを前提にできるのか。2つ以上 現れるのか。 VLOOKUPの類と、MATCHとも2度目以降の出現行は捉えられない。 探索に使う関数は数個しかないのだが、関数を知らないから、上記のことも思い及ばないのだろう。 VLOOKUPの類と、MATCHぐらいしかない。 WEBででも「エクセル 関数 検索」で照会したら、どういう関数があるかすぐ判るはずだ。それらの解説を読んで、わからない点を質問すべし。 ーー 以上関数ではできないケースでは、VBAを勉強する必要がある。 関数で 例データ Sheet2 B列   C列 タナゴ B1 りんご B2 ほうれん草 B3 バター B4 C列はオートフィルで、自動で作れる Sheet1で A2に バター B4 B2には =VLOOKUP(A2,Sheet2!$B$1:$C$100,2,FALSE) の式を入れる。 B2に番地そのものを出しても余り使い道内と思うが、それでよいのかな。 普通はバターの単価とかその属性を取るのだが。 質問を全貌的にしないと、回答が直使えないし、再質問が必要になるよ。

noname#176215
noname#176215
回答No.2

> セル番地が難しいようであれば、行、列を返す形でもよいです。 難しいというより いちいち番地で返す意味がないのでは? 二度手間かと思います。 =INDEX(SheetB!B:B,MATCH(A2,Sheet!A:A,0)) エラー対策は入れていませんが やりたいことはこういうことではない のでしょうか?

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

B3:B100にデータがあるとして ="B"&(MATCH(A2,B3:B100,0)+2) または =ADDRESS(MATCH(A2,B3:B100,0)+2,2,4) MATCH(検索値,対象範囲,検索方法)は対象範囲(1列or1行)の先頭を1として、該当する位置を表示します。 上記の場合、B3→1,B4→2,B5→3,B6→4,B7→5となるので+2すればOK 横方向の場合はADDRESS関数の方を使ってください。 =ADDRESS(2,MATCH(A2,C2:AZ2,0)+2) 上記の場合、C2→1,D2→2,E2→3,F2→4,G2→5となるのでC=3にするのに+2すればOK

関連するQ&A

専門家に質問してみよう