「みんな教えて! 選手権!!」開催のお知らせ

皆さんの力を借りて、
式=IFERROR(INDEX($B:$B,AGGREGATE(15,6,ROW($B$4:$B$23)/($C$4:$C$23=$C4)/(ROW($B$4:$B$23)<>ROW($B4)),COLUMN(A1))),"")
により重複を抽出することができました。
次に添付図を使って式の具体的な説明をしていていただきたく、よろしくお願いいたします。

「重複データを抽出する式の説明をお願いしま」の質問画像

A 回答 (1件)

こんにちは


回答がつかないようですので・・・
ご提示の式は、スピル機能のあるバージョンが、まだあまり広まっていない頃の式だと想像します。

>式の具体的な説明をしていていただきたく~
式を設定してあるセルから見て、
『C列の範囲から自分自身の品名(=C列)と同じものを探し、その項番(=B列)の値で自分の番号以外のものを順にD、E・・列に表示する』
というものです。

使われている関数は、IFERROR, INDEX, AGGREGATE, ROW, COLUMN の5つだけなので、式を分解して、内側のものから順に理解してゆけば良いでしょう。
AGGREGATE関数が少しわかりにくいかもしれませんが、それぞれ調べれば詳しい説明があります。
https://support.microsoft.com/ja-jp/office/aggre …
他の関数に関しても同様ですが、ここの限られた回答蘭で説明するよりも、はるかに詳細で(図や例示付きなので)わかりやすいものと思います。


一方で、最近のスピル機能を使えるバージョンであれば、抽出のための関数(=FILTER)が使える様になりましたので、目的そのままに
 =FILTER(B$4:B$23,抽出条件,"")
の式として入力すれば、結果が自動でスピルされます。
ただし、上式のままだと下方(=1列内)にスピルされてしまうので、行・列を入れ替えるために、TRANSPOSE関数を使えば右方向(=1行内)にスピルできるようになります。
こちらの方が式が短くてすむこともあり、視認性は遥かに良くなりますね。
    • good
    • 0

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


おすすめ情報