• ベストアンサー

関数によるエクセル検索について

エクセル 検索方法についての質問です。 区分 品名 数量 1  りんご 10 1  いちご 5 2  みかん 2 3  いちご 8 4  ぶどう 10 5  いちご 2 5  いちご 8 5  りんご 3 6  みかん 7 このような表の場合 区分 1を選択し、 りんご 10 いちご 5 というようにエクセルに表示させたいです。 VLOOKUP関数をつかうと上の行の 「りんご10」 しか表示させることができません。 同じ区分のものを一度に表示させたいのですが、関数を使って表現することはできますか?? よろしくおねがいします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.8

No.5です! たびたびお邪魔します。 前回の配列数式はデータ量が多い場合はコンピュータに負担がかかりますので、 作業用の列を使う方法も書いておきます。 ↓の画像で、G1セルに区分を入力するとそのデータが表示される方法です。 作業列D2セルに =IF(OR(A2="",A2<>$G$1),"",ROW(A1)) という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。 そして、F2セルに =IF(COUNT($D$2:$D$1000)<ROW(A1),"",INDEX(B$2:B$1000,SMALL($D$2:$D$1000,ROW(A1)))) という数式を入れ、列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 (1000行まで対応できるようにしています) 今回は配列数式ではありませんので、そのままコピー&ペーストでも問題ないと思います。 以上、長々と書きましたが 参考になれば幸いです。m(__)m

nyoro_2002
質問者

お礼

このお礼欄を借りて皆さんにお礼いたします。 回答ありがとうございました。 恥ずかしながら配列数式というものを初めて知りました。そちらの勉強をしようと思います。見につければ他のものにも応用がききそうですね! とても参考になる回答ありがとうございました!

その他の回答 (7)

回答No.7

区分が昇順として G2:I2セルを選択する =IF(COUNTIF(A:A,$E$2)<=ROW()-2,"", INDEX(A:C,MATCH($E$2,A:A,0)+ROW()-2,)) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) 下へオートフィル

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

次のようにしてはどうでしょう。 お示しの表がA列からC列に入力されているとします。 D列とE列は作業列とします。 D2セルには次の式を入力します。 =IF(A2="","",IF(COUNTIF(D$1:D1,A2&"/"&B2)>0,"",A2&"/"&B2)) E2セルには次の式を入力します。 =IF(D2="","",A2&"/"&COUNTIF(D$2:D2,A2&"/*")) D2セルをE2セルを選択したのちに下方にオートフィルドラッグします。 F1セルには区分と入力し、F2セルにはその番号を入力します。 G1セルには品名と入力し、G2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(OR(F$2="",COUNTIF(E:E,F$2&"/"&ROW(A1))=0),"",INDIRECT("B"&MATCH(F$2&"/"&ROW(A1),E:E,0))) H1セルには総量と入力しH2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(G2="","",SUMPRODUCT((A$2:A$10000=F$2)*(B$2:B$10000=G2)*(C$2:C$10000)))

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんにちは! すでに回答は出ていて、重複するかもしれませんが・・・ E1セルに区分の数字を入力すると E2セル以下に「品名」、F2セル以下に「数量」を表示させる方法です。 配列数式になってしまいますので、 この画面からE2セルにコピー&ペーストしただけではエラーになると思いますので、 貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので Shift+Ctrl+Enterキーで確定してください。 数式の前後に{ }マークが入り配列数式になります。 尚、数式は1000行まで対応できるようにしていますが、データ量によって 範囲指定の領域はアレンジしてみてください。 E2セルに =IF($E$1="","",IF(COUNTIF($A:$A,$E$1)<ROW(A1),"",INDEX(B$2:B$1000,SMALL(IF($A$2:$A$1000=$E$1,ROW($1:$999)),ROW(A1))))) という数式を入れ、Shift+Ctrl+Enterキーで確定です。 これを列方向と行方向にオートフィルでコピーしてみてください。 以上、長々と書きましたが 参考になれば幸いです。m(__)m

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

質問で上げられているように、区分でソートされている物とします。 表がA1から始まっていると仮定。 抽出したい区分をE1セルに入れるものとする。 F1セルに =IF(ROW()>COUNTIF(A:A,$E$1),"",INDEX(A:C,MATCH($E$1,A:A,0)+ROW()-1,2)) G1セルに =IF(F1="","",INDEX(A:C,MATCH($E$1,A:A,0)+ROW()-1,3)) F1:G1を下方向に(一つの区分に含まれる最大要素分)コピー 無理やりですがこれで出来ます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

複数の該当データを関数で表示するなら配列数式を使う必要があります。 たとえば、D2セルに検索文字「1」が入力されている場合、以下の式を入力してCtrl+Shift;Enterで確定して配列数式にして、右方向に1つ下方向に適当数オートフィルしてください。 =IF(COUNTIF($A$2:$A$100,$D$2)<ROW(A1),"",INDEX(B:B,SMALL(IF($A$2:$A$100=$D$2,ROW($A$2:$A$100),""),ROW(A1))))

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

関数だとMATCH、INDEXあたりを使うことになりますかね・・・ 意外と面倒ですよ。 でも、フィルタオプションあたりでやる方が楽だと思いますけど。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

「関数」限定ですか?オートフィルタを使うべき内容だと思いますが……。

nyoro_2002
質問者

補足

できれば関数限定でお願いいたします。 よろしくお願いします。

関連するQ&A

  • エクセルでの検索

    エクセル2000です。 品名を入れると以前に入力した時と同じ番号を表示できるようにしたいです。 例えば、    C   D 1  005  みかん 2  003  ぶどう 3  009  りんご 4  005  みかん 5  009  りんご 6       ぶどう のようにデータが入っています。 「D6」に「ぶどう」と入力した際に「C6」に「003」と 表示されるような計算式をいれたいのです。 自分なりに 「VLOOKUP(C6,C1:D5,3,FALSE)」 まで考えて みたのですが、なにぶん初心者ですので限界です。 ご存知の方にお教え頂きたく質問させて頂きます。 なにとぞよろしくお願い致します。

  • エクセルの関数についてです、よろしくお願いします

    エクセルの関数についてです、よろしくお願いします。 sheet1に以下の様なデータが何百行とあります。 A B C D E 日付  顧客名  品名  数量  金額 上記のsheet1のデータを基にsheet2へ抽出して転記する ものを作りたいと考えています。 具体的に言いますと sheet2のA1に2014/11/21、 B1に2014/12/20、 C1に ○○商店と入力するとその下に A      B     C     D 日付   品名   数量 金額 2014/11/23  りんご 5 750 2014/11/28  みかん 2 300 2014/12/2   いちご 3 600 2014/12/10  りんご 5 750 sheet1のリストから該当するものを引っ張ってきて sheet2へ表示させるものです オートフィルタ等でなく、関数で出来ないでしょうか お詳しい先生方よろしくお願いします。

  • エクセル関数でおしえてください。

    エクセル関数でおしえてください。 以下のような表があります。   A     B     C     D     E  1 いちご   1 2 バナナ        1  3 ぶどう             1 4 サクランボ                1 5 もも    1 6 りんご        1 7 なし              1 8 すいか                  1 9 果物(1) いちご バナナ ぶどう サクランボ 10果物(2) もも  りんご なし  すいか B1~E8に「1」のフラグをたてます。 (フラグはランダムにたちます) 9、10行目に関数をいれて、いちご、もも・・と果物の名前を表示させたいです。 どなたかいい知恵をかしてください。 よろしくお願いします。

  • Excel VLOOKUP関数の縦検索は出来ないのでしょうか?

    A列   B列   C列   D列 --------------- 品名   数量  数量  数量      12/1  12/5  12/10 みかん  10箱  15箱  10箱 いちご      3箱 りんご  5箱   2箱  10箱 上記のような表を、日付で抽出し、発注書を作成したいのですが、縦で抽出することなんて出来ませんか? 今は、別のシートに行列を入れ替えて貼り付けをして、そこからVLOOKUPで参照しています。 よろしくおねがいいたします!

  • エクセル いろいろな品名ごとに条件付きのカウントをしたい。

    エクセルマクロについて教えてください。 以下の「元の表」から「抽出した表」のように、○がついているもののカウントをしたいのですが、マクロでやるにはどのようにしたらよいでしょうか。 品名は特定なものではなく、無限にあります。 〔元の表〕 品名 区分 りんご ○ りんご × みかん ○ バナナ ○ バナナ × キウイ ○ りんご × キウイ ○ りんご ○   :   : 〔抽出した表〕 品名  区分 数量 りんご ○ 2 みかん ○ 1 バナナ ○ 1 キウイ ○ 2   :   :

  • Excel データの個数を複数条件付きでカウントしたい

    OS:XP Ver.:Excel2003 Excelの関数で質問です。 いろいろ調べたのですがどうしてもわかりません。 お知恵をご拝借下さい。 A B C D 1月 2月 3月 りんご 250 0 300 みかん 150 80 0 りんご 88 150 200 いちご 0 300 85 ぶどう 0 350 89 (確認画面にするとずれてしまいますが、A列には品名、B~D列には月が入るようになっています。) 上記のような元データがあり、(実際はもっとたくさん) 1月    2月    3月 りんご みかん いちご ぶどう (こちらもずれてしまいますが、それぞれの月の品名ごとの集計を入れたいのです。) のような表を完成させたいと思います。 (1)表に入れるのは、合計数量ではなく【データの個数】です。 1月のりんごは2、みかんは1、という感じです。 ただし、0はカウントしたくないので、1月のいちごとぶどうは0を 返してほしいのです。 countifやsumproductなど考え付くあたり試してみましたが、うまくできません。 どういう数式(関数)を入れればよいのでしょうか? (2)2月以降のデータ範囲を指定する場合はどうすればいいのでしょうか?  1月ならA2:B6とするのかもしれませんが、2月の場合は1月列(B列)が不要ですよね?

  • エクセル関数何を使ったら良いのかわかりません

    エクセル関数についてお尋ねします。 例として項目を果物にしております↓ 表1でリンゴ・みかん・ぶどう・・・などの1年と2年の平均値を出したのですが、同じシート内の表2にその平均値をとばすようにしたいですがどうしたら良いのかわかりません。 表2のセル(B28)にリンゴと入力したら表1のリンゴの平均値がB29にとんでくるようにしたいです。B28はみかんのときもありぶどうのときもありますので、入力した文字にあった平均値をとばしたいのですが可能でしょうか? いろいろ関数などを調べてみましたが何を使用したら良いのかわからずずっと悩んでおります。

  • (エクセル)積み上げ棒グラフの作成について

    エクセルで積み上げの棒グラフを作成しようと思います。 既に表にデータが入力されており、これをグラフにします。 (表)      品目   数量 1月1日  りんご   10 1月2日  みかん   20 1月3日  ぶどう   30 1月4日  りんご   10 1月5日  みかん   20 1月6日  ぶどう   30 1月7日  りんご   10 1月8日  みかん   20 1月9日  ぶどう   30 (積み上げ棒グラフ) 日付の列は無視して、品目(りんご、みかん、ぶどう)の数量を積み上げていきたいです。 完成イメージとしては りんご 10+10+10の積み上げ みかん 20+20+20の積み上げ ぶどう 30+30+30の積み上げ  に出来たらと思ってます。 積み上げグラフを選択しても、 9つの項目(りんご3個、みかん3個、ぶどう3個)がそれぞれ独立して表示されてしまい、積み上げになりません。 項目軸のラベルを変更しても同じ結果です。 どのようにしたら出来ますでしょうか。 りんご   10   10   10 みかん   20   20   20 ぶどう   30   30   30 と、表を作り直したらできるかと思うのですが、できれば今の表のままで作成できたらと思います。 ちなみに将来的には、さらに行が増えていきます。 積み上げグラフでも「横棒」で作成しようとしていますが、もし縦棒なら出来るならば縦棒でも良いです。 よろしくお願いします。

  • エクセル重複セルについて

    例えば    A   B 1  品名 数量 2 みかん  2 3 りんご  2 4 みかん  1 5 いちご  1 6 りんご  1  とあるとして、 他のセルに    C   D 1  品名  個数 2  みかん  3 3  りんご  3 4  いちご  1  のように 重複セルを削除し、なおかつ 個数もまとめるというようなことは エクセルでできないでしょうか? 宜しくお願いします。

  • エクセル 関数

    エクセル関数が少し使えるレベルの者です IF分についてですが  IF(データ,(IF(リンゴ*,数量の総和,0)),0) データ 数量 リンゴC   4 ミカンA  6 ブドウT  7 リンゴA  2 上記の答えは"6"ですが、6の内訳は    リンゴC   4    リンゴA  2 となります、ピボットテーブルを使うと表のセル"6"をWクリで 別シートに内訳が表示されるのですが、IF文条件より抽出 されたデータ表示はできませんか? 可能な操作の仕方があれば教えてください。

専門家に質問してみよう