ここから質問投稿すると、最大4000ポイント当たる!!!! >>

Excelの質問です。今、以下のようなデータがA列とB列に、1000行ぐらいずらっと並んでいます。

sp1|春の季語[あしび(馬酔木)]
sp2|春の季語[かげろふ(陽炎)]
sp3|春の季語[きじ(雉子)]
sp4|春の季語[ざんせつ(残雪)]
sp5|春の季語[ふぢのはな(藤の花)]
sp6|春の季語[やまぶき(山吹)]



su1|夏の季語[あぢさい(紫陽花)]
su2|夏の季語[かたつむり(蝸牛)]
su3|夏の季語[くものみね(雲の峰)]
su4|夏の季語[ころもがへ(衣替)]
su5|夏の季語[さみだれ(五月雨)]
su6|夏の季語[ばんりょく(万緑)]
su7|夏の季語[ひまはり(向日葵)]
su8|夏の季語[ほたる(蛍)]
su9|夏の季語[ほととぎす(時鳥)]



au1|秋の季語[あかとんぼ(赤蜻蛉)]
au2|秋の季語[あまのがわ(天の川)]
au3|秋の季語[いわしぐも(鰯雲)]
au4|秋の季語[かまきり(蟷螂)]
au5|秋の季語[きり(霧)]
au6|秋の季語[すすき(薄)]
au7|秋の季語[まんじゅしゃげ(曼珠沙華)]
au8|秋の季語[めいげつ(明月)]



wi1|冬の季語[おちば(落ち葉)]
wi2|冬の季語[かも(鴨)]
wi3|冬の季語[かれの(枯れ野)]
wi4|冬の季語[こがらし(木枯し)]
wi5|冬の季語[ゆきのこる(雪残る)]




シート名は<季語・枕詞>、ブック名は『俳句.xls』です。
A列には「sp1、sp2・・・su1、su2・・・au1、au2、・・・wi1、wi2・・・」といったIDのようなデータ、B列には「春の季語・・・」「夏の季語・・・」「秋の季語・・・」「冬の季語・・・」といったデータが入っています。
皆さまのお助け↓
http://okwave.jp/qa5096109.html
により、このデータの中から「春の季語」「夏の季語」「秋の季語」「冬の季語」といった、“種類のデータ”のみを抽出する方法は、理解することはできました。
その節はありがとうございました(>_<)

ただ、実は隣の列も、抽出しなければならない事態が生じまして(ToT)

皆様に教えていただいた方法により、別シート<季語・枕詞の種類>のA列に、「春の季語」「夏の季語」「秋の季語」「冬の季語」・・・といった“種類のデータ”は、並べることができました。

ここから、<季語・枕詞>シートのB列(季語のデータ)と、<季語・枕詞の種類>シートのA列(種類のデータ)を比較し、データが一致(完全一致ではなく部分一致でも構いません)すれば、<季語・枕詞の種類>シートのB列に、<季語・枕詞>シートのA列(ID)を、転記することはできないでしょうか?

例えば種類のデータとして<季語・枕詞の種類>シートのA列にある

「夏の季語」

に、部分一致する<季語・枕詞>シートのB列のデータは、

su1|夏の季語[あぢさい(紫陽花)]
su2|夏の季語[かたつむり(蝸牛)]
su3|夏の季語[くものみね(雲の峰)]




と、膨大にあります。
その膨大なデータ中の、一つだけでもいいのです。例えば、検索を開始して、最初に部分一致したデータが「su3|夏の季語[くものみね(雲の峰)]」であったならば、<季語・枕詞の種類>シートのA列とB列には、

夏の季語|su3

というように、転記したいのです。
“su”という情報が欲しいだけなので、三文字目の番号は、特に何でも構わないのです。

VLOOKUP関数を使おうと思ったのですが、部分一致検索で、VLOOKUPを使おうとしてもうまくいきませんでして・・・(ToT)

どうすれば、<季語・枕詞の種類>シートのB列に、<季語・枕詞>シートのA列(ID)を、転記できるでしょうか?
皆様のお力をお借しいただければ幸いです<m(__)m>

このQ&Aに関連する最新のQ&A

A 回答 (7件)

回答5です。


=IF(OR(A1="",COUNTIF(季語・枕詞!B:B,A1&"*")=0),"",LEFT(INDIRECT("季語・枕詞!A"&MATCH(A1&"*",季語・枕詞!B:B,0)),2))
LEFT関数はLEFT(文字列、文字数)のように使われますね。
上式ではINDIRECT関数を使ってその文字列を季語・枕詞のシートから取り出しています。そこでAとあるのはA列を意味しており、MATCH関数でA1セルに書かれた文字を先頭に含む文字を季語・枕詞のシートのB列で検索し、その行を取り出しています。
表示したINDIRECT関数の全体では季語・枕詞シートのA列でのその行を求め、そこにある文字列を取り出していることになります。
INDIRECT関数を使うことでA列の例えば3行、4行を取り出す場合には単に=A3や=A4とすればよいのですが3や4が定まっていない場合、例えばB1セルに入力された数値の行でA列でのデータを取り出したい場合には普通の書き方ではできません。その場合には、例えば=INDIRECT("A"&B1)のような式を使うことで解決することができます。この場合に""を省略することはできません。
    • good
    • 0
この回答へのお礼

なんとなくわかりました!
"季語・枕詞!A"と、MATCH(A1&"*",季語・枕詞!B:B,0)は、“&”でペアになっており、「MATCH(A1&"*",季語・枕詞!B:B,0)を満たすA列のデータを返す。」という意味ですね(^_^;)
ありがとうございます<m(__)m>

お礼日時:2009/07/14 21:27

#4です。



=IF(AND(A2="夏の季語",COUNTIF(C2,"*かたつむり*")>=1),MAX($E$1:E1)+1,"")
は(最初に式を入れる行は)
E2セルに入れるのです。E1に入れているので循環参照になるのです。
    • good
    • 0
この回答へのお礼

私の勘違いでした、すいません(>_<)
うまくいきました、ありがとうございます<m(__)m>

お礼日時:2009/07/14 21:28

回答No3です。

春、夏、秋、冬だけが表示されていたので、簡単な式で済むような気がしました。
たくさんの種類があるのでしたら季語・枕詞の種類のシートでB1セルには次の式を入力し、下方にオートフィルドラッグします。
=IF(OR(A1="",COUNTIF(季語・枕詞!B:B,A1&"*")=0),"",LEFT(INDIRECT("季語・枕詞!A"&MATCH(A1&"*",季語・枕詞!B:B,0)),2))
この式ではIDの頭の2文字が表示されるようになっています。
3文字のケースがあるのでしたらそれを考慮した式にすることが必要です。
    • good
    • 0
この回答へのお礼

うまくいきました(^_^;)
ありがとうございます<m(__)m>

A1セルが空白、もしくは<季語・枕詞>シートに“A1&*”の文字列が一つもない(=0)場合、空白を返して、偽の場合は、LEFT関数で左から2文字切り取るみたいですね・・・でも、INDIRECT関数の使い方が、よくわかりませんでして・・・「"季語・枕詞!A"」とは、どういう意味なのでしょうか?
よくわからないので、

LEFT(INDIRECT(MATCH(A1&"*",季語・枕詞!B:B,0)),2))

と、削除してみたら、エラーになってしまいました(ToT)
普通に<季語・枕詞>シートのA列全部を選択しようとしたら、「季語・枕詞!A:A」となり、これまたエラーになってしまいました・・・「"季語・枕詞!A"」における、一つだけポツンとある“A”は、一体何なのでしょうか?

すいません、お暇な時で構いませんので、再度ご回答いただれば幸いです(>_<)

お礼日時:2009/07/13 22:14

#1です補足して貰っても、質問の内容(何がやりたいか)のことは十分書かず、自分の場合のことばかり(こんなの不要)書いている。


ーー
A列「夏の季語」で、C列「かたつむり」を含む!行を抜き出したいと
勝手に解釈して、
例データ
Sheet1
A列   B列(空白  C列 E列
第2行目からデータとする
夏の季語かたつむり(蝸牛)の姿1
秋の季語すすき
夏の季語とんぼのはね
冬の季語雁の群れ
秋の季語かたつむりの色
夏の季語歩むかたつむり2
E列は =IF(AND(A2="夏の季語",COUNTIF(C2,"*かたつむり*")>=1),MAX($E$1:E1)+1,"")
と入れて下方向に式複写。
条件に合った行に連番を振った。
Sheet2で
A2の式 =INDEX(Sheet1!$A$1:$D$100,MATCH(ROW()-1,Sheet1!$E$1:$E$100,0),1)
B2の式 =INDEX(Sheet1!$A$1:$D$100,MATCH(ROW()-1,Sheet1!$E$1:$E$100,0),3)
最後の引数はSheet1での、データの有る列の番号を意味する。
以上「imogasi方式」。
    • good
    • 0
この回答へのお礼

う~ん、うまくいかないですね(>_<)
imogasiさんのおっしゃる通りに、A列に種類名のデータ、B列は空白、C列に区切り文字“[”で区切った、種類名より後ろの文字列のデータ、D列は空白、E列に、

=IF(AND(A2="夏の季語",COUNTIF(C2,"*かたつむり*")>=1),MAX($E$1:E1)+1,"")

を入力したのですが、循環参照の警告が出てきてしまいまして・・・

お礼日時:2009/07/13 22:23

季語・枕詞の種類のシートのB1セルに次の式を入力して下方にオートフィルドラッグすればよいでしょう。


=IF(A1="","",IF(A1="春の季語","sp",IF(A1="夏の季語","su",IF(A1="秋の季語","au",IF(A1="冬の季語","wi","")))))
    • good
    • 0
この回答へのお礼

これまたすごい関数ですね、IF関数がすごい絡み合ってます・・・こんなの初めてみました(^_^;)
もし、A1が空白であれば、空白をそのまま返して、空白ではなく「春の季語」という文字列があれば、“sp”を返して、ない場合は・・・というように続いていくみたいですね。

ただ、私の質問の仕方が悪かったのですが、種類が100や200もありそうな状況ですと、関数を入力する手間が、ものすごく大変なような気がします・・・

お礼日時:2009/07/11 12:59

リンク先はよくわからなかったが、たたき台で


D1セルに 検索文字(夏の季語)
E1セルに
=IF($D1="","",LEFT(INDEX(A:A,MATCH("*"&$D1&"*",$B:$B,0)),2))
C1:D1セルを別シートへ切りとって貼りつけ
「Excelの質問です。VLOOKUP関数」の回答画像2
    • good
    • 0
この回答へのお礼

すごいやり方ですね!
INDEX関数は詳しく知らなかったので、調べたところ、

INDEX(配列,行番号,列番号,領域番号)
http://excel.onushi.com/function/f-index.htm
ということみたいで(^_^;)

CoalTarさんが回答していただいた関数は、列番号と領域番号が省略されているみたいですね・・・A列のデータの中から、B列が"*"&$D1&"*"にマッチする行があれば、A列の行のデータを、Left関数で左から2文字切り取って、Eに表示させるのですね~ありがとうございます(>_<)

お礼日時:2009/07/11 12:51

質問文が長すぎて、読む気もしない。

何とか簡略に。
例の数を減らし、1例でよいから、どういう思考プロセスでデータがどうだから、こうしたいと言うふうに説明を短くしてほしい。
VLOOUP関数(のTRUE型に限って)は第1引数の語句が、第3引数の検索データを探す関数であるのは知ってますね。
また部分一致検索はと出来ません。
その場合第1引数の内容によって検索表を切り替えたい場合は有るでしょう。その場合は第1引数でIF関数で判断して表が2,3程度に分かれるなら、VLOOKUP関数式の中に組み込めるでしょう。
===
この質問は何なんだ?と読んでみると、A列の「AuXX」(Auがついている行)を別シートに、A,B列とも抜き出したいのか。
それならエクセルの関数の、抜き出し問題で、毎日のように質問がある、見飽きた問題だ。
そうなら質問の書き方がガラっと変わるべき。前半など要らない。
Googleで「imogasi方式」で照会すれば、何百と同類の質問と、imogasi方式でない他の方の解法も出てくる。
=====
●抜き出し問題なのかどうか補足してください。
ーー
それなら例は
a 千葉市
b 横浜市
a 甲府市
c 藤沢市
からaの分を抜き出し
a 千葉市
a 甲府市
を(別シートに)出したいと書くとおなじだよ。
自分の例を抽象化して、パターン化せよ。
    • good
    • 0
この回答へのお礼

すいません、もっと短くするように気をつけます<m(__)m>
やっぱVLOOKUは使えないみたいですね・・・。
確かに、ただの抜き出し問題かもしれませんね・・・(^_^;)

<季語・枕詞の種類>シートのA列は、

春の季語
夏の季語
秋の季語




と並んでいますが、隣のB列は、空白の状態です。
<季語・枕詞>シートから、データを抜き出したいのですが、<季語・枕詞>のB列には、「夏の季語[かたつむり(蝸牛)]」など、種類だけでなく、余計な部分([かたつむり(蝸牛)]等)がくっついているんですよね・・・。

でも、imogasiさんの助言で思いつきました、削除すればいいんですよね。“[*]”を“空白”に置換して、<季語・枕詞>シートのB列を、種類だけの文字列にして、IDのある<季語・枕詞>シートのA列も、後ろの数字の部分を削除すれば、ちょっと時間がかかりそうですが、VLOOKUP関数でもうまくいきそうです(^_^;)

お礼日時:2009/07/11 12:26

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QexcelのVLOOKUPで検索値を2つにできますか?

excelのVLOOKUPで検索値を2つにしたいです
私の知っているVLOOKだと下記のことは対応できます
例えば、A列に会社名、B列に住所、C列に電話番号 とあった場合
「住所が検索値と同一なら電話番号を表示しなさい」という指示は出せます

そこで質問です
「会社名と住所が検索値と同一なら電話番号を表示しなさい」
というような、複数の検索値を持つ事はできないのでしょうか?

参考になるURLなどでも結構ですので、ご存知の方よろしくお願いいたします

Aベストアンサー

元の表をA列に会社名、B列に住所、C列に「=A2&B2」、D列に電話番号のようにして
=VLOOKUP(会社名&住所,$D$2:$C$100,2,FALSE)
のようにすれば可能です。

QVLOOKUP関数で複数の検索値を設定したいのですが

VLOOKUP関数で複数の検索値を設定することはできるのでしょうか。
例えば5列目のセルのうち、A列に"日本人"、B列に"学生"が入力されている行のセルの内容を求めるといった具合です。
VLOOKUP関数に特にこだわってはいないので別の関数を用いた方法でもかまいません。

ExcelはExcel2000,OSはWindows2000を使用しています。
よろしくお願いします。

Aベストアンサー

手っ取り早いのは、検索値を =A1&B1 でつなげた値を作ってしまえばご希望の
形になります。

Qvlookup関数で検索値を含む文字列を検索する方法

vlookup関数で例えば E1のセルに=vlookup(D1,A:C,3,false)とした場合、D1が佐藤であれば、A列に「佐藤」がある場合には当然、「佐藤」がある行の3列目の値が返されますが、「佐藤」はなく「佐藤A」や「A佐藤」がある場合にもこれらがある行の値を返して欲しいのですが、いい方法はありませんでしょうか。*を使ってできると思ったのですがうまくいきません。上記例で、=vlookup("*佐藤*",A:C,3,false)とすればできますが、*佐藤*の部分はD1の引用を利用したいのです。
 よろしくお願いします。

Aベストアンサー

=VLOOKUP("*"&D1&"*",A:C,3,FALSE)

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QVLOOKUP関数の範囲に、複数の範囲を指定したい

VLOOKUP関数の範囲に、複数の範囲を指定したいのですが方法がわかりません。
例えば同じシート内のC3:L8の範囲とM3:V8の範囲とW13:AF18の範囲を同時に
検索範囲として指定したいと考えております。

選択範囲に名前をつけて定義し、それを範囲として指定してみても、
なかなか上手くいきません。

効果的な方法があれば、御教鞭頂きたく思います。

Aベストアンサー

ごめんなさい。手抜きですね。
以下が条件です。

検索値がA1にある
検索範囲の中で検索値に合致する値が複数ない

=IF(ISERROR(VLOOKUP(A1,C3:L8,2,0)),IF(ISERROR(VLOOKUP(A1,M3:V8,2,0)),IF(ISERROR(VLOOKUP(A1,W13:AF18,2,0)),"",VLOOKUP(A1,W13:AF18,2,0)),VLOOKUP(A1,M3:V8,2,0)),VLOOKUP(A1,C3:L8,2,0))

最初の範囲で検索値に一致する物がなければ、次の範囲を探します。
その繰り返しです。
最終的にどこにもなければ空白です。

返す値の列番号は範囲の中で左から2番目です。
たとえば最初の範囲なら、D列の値が帰ります。

QVlookupで、2つの候補のうちどちらかを検索値にしたい

既出だろうけど、検索でうまく引っ掛けられなかったので質問させて頂きます。
  A  B  C
1 球団 順位
2 大洋 1
3 巨人 2
4 広島 3
5 阪神 4

こんなデータベースがあるとして、例えば「A6」のセルに「大洋か横浜」の順位をデータベースから検索して入れたい場合の数式は、どうしたらいいのでしょうか。
「=vlookup({"大洋";"横浜"}),A1:B5,2,0)」でいいかな、と思ってやってみたんですが、これでやると「大洋」しか検索してくれず、「横浜」になったときに値が出てきません。

Aベストアンサー

#1です。
=INDEX(B2:B5,MAX((A2:A5={"大洋","横浜"})*ROW(A2:A5))-1,1)
でCtrl+Shift+Enterで配列数式

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QVLOOKUPとIFの組み合わせで困ってます

シートが2枚あり、sheet1は工事記録一覧、sheet2は納品書です。

sheet2のセルA1に、工事記録の管理番号を入力し、
セルA2以降に、管理番号に該当する住所や建物名、
工事種類などを表示させたいと思ってます。

参考にするセルが空欄の場合には、空欄のままにしたいので、
IF関数とVLOOKUP関数を組み合わせて
下のように自分で式を組んでみましたが、#N/Aになってしまいます。

=IF(A1="","",VLOOKUP(A1,sheet1!A1:J20,3,FALSE)

同一シート内で同様の式を入れた時は、希望通りの答えが返ってきましたが、
別のシートだと上手くいきません。

どなたか正しい式をご教授いただけますでしょうか。

エクセル初心者で、ネットや本で調べながら作成しているので、
分かりやすく教えていただければ助かります。

どうぞよろしくお願いいたします!

Aベストアンサー

こんばんは!

>セルA2以降に、管理番号に該当する住所や建物名、
>工事種類などを表示させたい・・・

というコトは2行目に数式を入れないといけませんよね?

方法としては
(1)手っ取り早く
=IF(A2="","",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,FALSE)&"")
としてみる。
この場合、表示されるデータは文字列となります。

(2)コツコツと
=IF(OR(A2="",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0)=""),"",VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0))
とする。

※ 余計なお世話かもしれませんが、A列に間違ったデータを入力した場合は
エラーになりますので、

=IF(COUNTIF(Sheet1!A:A,A2),VLOOKUP(A2,Sheet1!$A$1:$J$20,3,0)&"","")
のようにする方法もあります。m(_ _)m

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング