• ベストアンサー

エクセルの検索

お世話になります。 エクセルの検索でやり方が分からないので質問させて頂きます。 A列:商品名 B列:金額 を下に入力していきます。それに対して C1セルに検索する商品名を入力する事で D1~D20に検索した商品の金額を表示していきます。 ただしB列の下から順に検索し、D1~D20に上から順に表示したいです。 例: A列  B列 りんご 100円 みかん 150円 キウイ 160円 りんご 130円 キウイ 500円 りんご 300円 これに対しC1に「りんご」と入力する事で、 D1:300円 D2:130円 D3:100円 と表示したいです。 ネットで調べて D1=LOOKUP(2,1/(入力!$A:$A=$C$1),入力!B:B) と入れて下へコピペしたのですが、 全て同じ数値が表示されてしまいます。 分かる方がいましたら、回答お願いします。

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

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

>D1=LOOKUP(2,1/(入力!$A:$A=$C$1),入力!B:B) >と入れて下へコピペしたのですが、 > 全て同じ数値が表示されてしまいます。 LOOKUP関数は検査値が最初に見つかった位置に対応する対象セルの値を返しますので複数の検査値を順次抽出することはできません。 提示の数式では検査範囲を前処理して故意にエラーを起こして検査対象を絞り込んでいます。更に、数値の場合の特性を使って検査範囲の最大値より大きい値を指定することで最後に見つかった検査値以下の値を抽出しています。 従って、あなたの目的に合った数式ではありません。 下記の数式を試してください。 但し、「入力」シートのB列に文字列が混在しているときはエラーになりますので注意して下さい。 =IF(COUNTIF(入力!A:A,$C$1)>=ROW(),LARGE(INDEX((入力!A:A=$C$1)*入力!B:B,0),ROW()),"")

rutohamuni2012
質問者

補足

ありがとうございます。できました!

その他の回答 (3)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.4

こんにちは Excelのフィルターと並び替えの2つのツールで出来ますが 1.1行目を項目名として使います。 2.C列に連番を入力 3.セルA2クリック⇒データリボンクリック⇒フィルタツールクリック  ⇒商品の右端の▼クリック  ここ迄で添付の画像になります 4.⇒すべて選択の?をクリック⇒リンゴの□をクリック⇒OKをクリック  これでリンゴのみのリストになります 5.⇒セルC1の▼をクリック⇒降順ををクリック

rutohamuni2012
質問者

補足

回答ありがとうございます。でも本来の目的とちょっとずれています、ごめんなさい。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.3

[No.1補足]へのコメント、 [No.1]で提示した式を次のように変更されたし =IFERROR(INDEX(B$1:B$7,LARGE(IF(A$2:A$7=C$1,ROW(B$2:B$7)),ROW(A1))),"") 【お断り】上式も必ず配列数式として入力のこと [並べ替え]の順序がデータの降順(昇順)でなければ、アナ雪(Frozen)の映画挿入歌♪ありのままで(Let It Go)♪(つまり、行番号の昇順ネ)が常識的かと考えますが、私には非常識に見える行番号の降順に貴方が希望する理由は何ですか?参考までに教えてください。

rutohamuni2012
質問者

お礼

こちらでもできましたが、No2さんの回答で解決したので、No2さんでベストアンサーを付けたいと思います。 ちなみに理由は、入力する時と表示する時の感覚的な問題です。明確な理由はありません。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.1

添付図参照 【お断り】提示式は必ず配列数式として入力のこと

rutohamuni2012
質問者

補足

回答ありがとうございます。 やってみたのですが、結果が正しく表示されません。 恐らく、「B列の下から順に検索し、D1~D20に上から順に表示」ではなく 「B列を検索し、大きい順に表示」 となってしまっているのではないでしょうか。 上記の例が誤認させる例になってしまっていますが、 例: A列  B列 りんご 130円 みかん 150円 キウイ 160円 りんご 100円 キウイ 500円 りんご 300円 この例だとC1に「りんご」と入力する事で、 D1:300円 D2:100円 D3:130円 と表示させたいです。 紛らわしい例で申し訳ありません。 分かりましたら回答お願いします。

関連するQ&A