アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトル通りなのですが、OSはXPでEXCEL2000を使用しています。
シート内ですが
1.A列には文字列が入っています。200行まで空白は無いです。
1.B列からL列の200行までに数字がランダムに入っています。
2.数字は1~500までです。
3.行によってはL列まですべてのセルに値が入ってません。
 数字の入っていないセルは空白です。
4.数字の重複はありません。

やりたいことは
別のシートのA列に1~500までの数字を入れ、B列に上記範囲の中からその数字を検索して、その行のA列の値を返したいのですが、出来ません。
どの関数を組み合わせれば出来るのでしょうか?
vlookupの検索範囲は1列だけなのでダメでした。
よろしくお願いします。

A 回答 (2件)

一例です。


データシートをSheet1としています。
=IF($A1<>"",INDEX(Sheet1!A:A,SUMPRODUCT((Sheet1!$B$1:$L$200=$A1)*ROW(Sheet1!$A$1:$A$200))),"")
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
私の質問で理解していただいてありがとうございます。
そのまま式を入力して出来ました。助かりました。
ありがとうございました。

お礼日時:2009/01/30 11:15

実例を挙げないために、質問がごたごたしていると思う。

200行・L列有るなど、5行・4列の実例で質問しても、その回答で200行の場合も類推は易しいはず。
シート1(Sheet1)にA-D列に
ABCD
X134336435
Y211115399
Z26131634
U478275377
ーー
シート2(Sheet2)に
AB
336
399
377
・・・
と有るとして、シート1の全行のBーD列を探して、Sheet2のA列の数字を見け、見つかった行の、シート1のA列の文字列を、シート2のB列に持ってくる。
こういうように質問を書くべきです。
ーーー
多列対象の検索は、普通の既存関数(MATCH、VLOOKUP)では出来ないので、VBAを使って、ユーザー関数を作る方法もあります。
この関数は、見つかった行番号を返します。
標準モジュールに
Function findf(a, b)
n = a.Find(b).Row
findf = n
End Function
シート2のB2に
=INDEX(Sheet1!$A$1:$A$10,findf(Sheet1!$A$2:$D$10,A2))
と入れて下方向に式を複写します
AB
336X
399Y
377U
211Y
111#VALUE!
のように結果が出ます。
骨子はこういうので良いと思うが、上記で何か足らない点、不都合点が有るかな。シート1で空白セルを作っても蒸気で変えなくて済むと思う。
見つからない場合の処理は、質問者が自由に関数を工夫すること。
IF文を使って、エラーの場合は「見つからず」と言う値を返すとか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
出来ました。助かりました。
更に、質問の仕方のご指導ありがとうございます。
次回の質問時の参考にしていただきます。
ありがとうございました。

お礼日時:2009/01/30 11:13

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