重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

初めて利用します。よろしくお願いします。
画像左側の水色の表のように、食べ物を種類と人気順にした表があるとします。
それを元にして、画像右側のオレンジの表の種類と順位の情報を自動表示できる数式を入れたいです。
例えば右側の表内F5「きゅうり」の種類と順位の場合、G5にはB1の「野菜」、H5にはB2の「1」が入るといった具合です。

以前も同じ使い方をしており、数年ぶりに作成しようとしましたが、いくら検索しても方法が分からず…お力を貸していただけますと幸いです。
説明が分かりづらく申し訳ありませんが、どうぞよろしくお願いいたします。

「INDEX、MATCH、OFFSET系:」の質問画像

質問者からの補足コメント

  • うれしい

    皆さまありがとうございます!
    ご回答いただいたうち、パッと見でわたしにとって一番分かりやすかったご回答の数式をさっそく試し、無事に解決しました!
    他のご回答内容も興味があるので、後程検証し勉強させていただきます。
    お礼のコメントは、検証後にさせていただきます。
    また、もし他にも方法がありましたら今後のために教えていただけますと幸いです。

    ※訂正※
    <H5には『B2』の「1」が入るといった具合です。>と記載しましたが、正しくは『A2』でしたね。。
    昨日は退社しなければならず大変慌てており、この訂正に限らず全体的に非常に拙いわたしの説明を的確にくみ取っていただき…皆さま本当にすごいです、感謝しております。

      補足日時:2019/07/30 12:42
  • すみませんもう1点訂正させていただきます。
    「この質問は特に30代・女性の方にリクエストされています!」と記載されていますが、そのような希望はありませんのでお読み捨てください。
    恐らく質問時に回答リクエスト対象を聞かれたのだと思いますが、きちんと読まずにわたし自身の情報を入力してしまったのだと思います。。
    「30代・女性」に該当されない方には大変失礼いたしました。

      補足日時:2019/07/30 12:56

A 回答 (4件)

こんにちは!



画像の配置だとG2セルに
=INDEX(B$1:D$1,SUMPRODUCT((B$2:D$6=F2)*(COLUMN(B$1:D$1)-1)))

H2セルに
=INDEX(A$2:A$6,SUMPRODUCT((B$2:D$6=F2)*(ROW(A$2:A$6)-1)))

という数式を入れフィルハンドルで下へコピーしてみてください。

※ エラー処理はしていません。m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
おかげ様で無事に解決できました!
別件のご相談にもご回答いただきありがとうございます。
またお力を貸していただけますと嬉しいです。
よろしくお願いします。

お礼日時:2019/08/06 11:44

種類G2: =index($B$1:$D$1, sumproduct(($B$2:$D$6=$F2)*{1,2,3}))


順位H2: =index($A$2:$A$6, sumproduct(($B$2:$D$6=$F2)*{1;2;3;4;5}))

もちろん重複はないものとします。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
配列数式について勉強不足ですので、これから学びたいと思います!
(補足に検証後にお礼コメントをする旨記載しましたが、時間がなく現時点では検証できておりません…申し訳ありません。)
またお力を貸していただけますと嬉しく思います。
よろしくお願いします。

お礼日時:2019/08/06 11:42

G2: =INDEX(A$1:D$1,MAX(IF(B$2:D$6=F2,COLUMN(B1:D1))))


H2: =INDEX(A$1:A$6,MAX(IF(B$2:D$6=F2,ROW(A$2:A$6))))
【お断り】上式は何れも必ず配列数式として入力のこと
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
配列数式と、途中に出て来る通常とは形式の異なるIFについて勉強不足ですので、これから学びたいと思います(補足に検証後にお礼コメントをする旨記載しましたが、時間がなく現時点では検証できておりません…申し訳ありません)。
またお力を貸していただけますと幸いです。
よろしくお願いします。

お礼日時:2019/08/06 11:42

こんにちは



ご提示の表の通りのレイアウトとして・・・

G2セルに
=IFERROR(INDEX($1:$1,AGGREGATE(15,6,INDEX(COLUMN($B$2:$D$6)/($B$2:$D$6=F3),,),1)),"")

H2セルに
=IFERROR(INDEX($A:$A,AGGREGATE(15,6,INDEX(ROW($B$2:$D$6)/($B$2:$D$6=F2),,),1)),"")

を入力して、下方にフィルコピーではいかがでしょうか?

順位の欄が必ず2行目から下に1、2、3…位の順と固定されているのなら、検索する必要がなくなるので、H2の式は
 =IFERROR(AGGREGATE(15,6,INDEX(ROW($B$2:$D$6)/($B$2:$D$6=F2),,),1)-1,"")
と、少しだけ簡単にしても同じ結果になります。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
AGGREGATE関数について知識不足でしたので今回は別方法にて解決しましたが、後日さっそく別件で活用させていただきました!
その他数式の内容についても、これから学びたいと思います。
ご丁寧にエラー処理も含めていただきありがとうございました。
またお力を貸していただけますと幸いです。
よろしくお願いします。

お礼日時:2019/08/06 11:31

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