- 締切済み
Excel2000:検索値が複数のLOOKUPは
<元一覧> 部門 ID 内容 カテゴリ 経理 1 あ A 経理 2 い B 総務 3 う C 営業 4 え B 営業 5 お A 営業 6 か C 営業 7 き D 現在、上記のようなシート「元一覧」が300行あります。 これを下のようなシート「新一覧」を作成したいんです。 別シートの<新一覧> 部門 ID A B C D 経理 1 あ 経理 2 い 総務 3 う 営業 4 え 営業 5 お 営業 6 か 営業 7 き LOOKUPを考えましたが、検索値が「ID」と「カテゴリ」と複数になりますので、今は少し考えて、元一覧に「ID」と「カテゴリ」を「&」で合わせた「Key」という列を足しました。 部門 ID 内容 カテゴリ Key 経理 1 あ A 1A 経理 2 い B 2B 総務 3 う C 3C 営業 4 え B 4B 営業 5 お A 5A 営業 6 か C 6C 営業 7 き D 7D 別シートに新一覧を作るので、そこにも「Key」を、A~Dのカテゴリ4つ分作り、それを検索値に、元一覧の「Key」列を検索範囲にして、元一覧の「内容」の対応範囲を別シートの新一覧に表示してます。 =LOOKUP("新一覧!2B","元一覧!「Key」の範囲","元一覧!「内容」の範囲")=い でも、何故かきちんと反映してくれません。 例えば、「ID」「1」の「内容」は「A」に「あ」です。 それは入りました。 でも「B」にも「あ」が入ってしまいます。 *「ID」を3桁の「001」にしたり、「Key」もソートしてますがダメです。 それに当たり前ですが、当てはまらない部分は全て「#N/A」となり、新一覧の見た目とてもウザいです(^^;) こんな具合で下手な説明ですが、どなたか、上手い具合になれるようご指導よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- macchan1
- ベストアンサー率38% (52/136)
セルの配置が不明なので確かではありませんが、現在の補助列を使った数式ならC2セルに以下のように入力すれば求められます。 =IF(ISNA(MATCH($B2&C$1,元一覧!「Key」の範囲,0)),"",INDEX(元一覧!「内容」の範囲"),MATCH($B2&C$1,Sheet2!$K$2:$K$8,0),0)) もちろん、元一覧セルは絶対参照で記入してください。
- macchan1
- ベストアンサー率38% (52/136)
今回のご質問は補助列を使わないでも配列を利用した関数だけで求めることができます。 具体的な式は、以下のスレッドの私の回答を参考にして下さい。
お礼
macchan1さん、何度も回答ありがとうございます。 それが、実は自宅PCにはOfficeが入ってないので検証できません。 明日会社でさっそく両方のアドバイスで試してみますね。 その時は、不明な点でも出るかと思うので、またお付き合いいただけたら嬉しいです。
補足
>=IF(ISNA(MATCH($B2&C$1,元一覧!「Key」の範囲,0)),"",INDEX(元一覧!「内容」の範囲"),MATCH($B2&C$1,Sheet2!$K$2:$K$8,0),0)) 会社で検証してみましたが、最後の「Sheet2!$K$2:$K$8,0),0))」が、一覧のどこを指すのか分かりませんでした。 けれど、作成はしないといけないので、色々自分なりにいじっていたら、「Key」列は使用せずに、違う数式で出来てしまいました。 =IF(元一覧!$D2=C$1,元一覧!$C2,"") *新一覧のC2セルに記述して、縦横オートフィル。 でも、お付き合いいただいてありがとうございました。 これからも、違う質問でお見かけしましたら、またよろしくお願い致します。