Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
売上上位5割の判別の回答について
投稿日時: 20/02/17 10:42:04
投稿者: takado0310

超初心者です。教えてください。
 
売上上位5割の判別の回答につぃて、
 
 
んなっとさんが、下記の回答をしていますが意味が分かりません
 
IF(C2>=AGGREGATE(18,6,C$2:C$500/($A$2:$A$500=$A2),0.5),"○","-")
特に
($A$2:$A$500=$A2)のところの意味が分かりません
分かる方いらしゃったら教えてください。
よろしく、お願いします。
 
 
 
 
 
 
 
 
 
 

回答
投稿日時: 20/02/17 15:24:51
投稿者: んなっと

AGGREGATE(14,6,数値の範囲/(条件式),何番目)
(条件式)を満たす数値のうち、大きいほうから何番目の数値を返します。
条件式を満たさないものはわざとエラーを起こして、除外する方法です。
 
 
数値の範囲がC$2:C$11、(条件式)が($A$2:$A$11=$A2)の場合で考えましょう。
 
C$2:C$11 ($A$2:$A$11=$A2)      
   80      TRUE 
   100      TRUE 
   30      TRUE 
   60      TRUE 
   55      FALSE 
   20      FALSE 
   50      FALSE 
   45      FALSE 
   300      FALSE 
    0      FALSE 
 
 
 
C$2:C$11/($A$2:$A$11=$A2)とわり算します。
ワークシートの数式の計算ではTRUEは1、FALSEは0と見なされます。
 
C$2:C$11 ($A$2:$A$11=$A2) C$2:C$11/($A$2:$A$11=$A2)     
   80      TRUE    80/1 
   100      TRUE   100/1 
   30      TRUE    30/1 
   60      TRUE    60/1 
   55      FALSE    55/0 
   20      FALSE    20/0 
   50      FALSE    50/0 
   45      FALSE    45/0 
   300      FALSE   300/0 
    0      FALSE    0/0 
 
 
 
 
ゼロでわるとエラーになります。したがって結果は次のようになります。
これで(条件式)を満たさない余計な数値が除外されました。
 
C$2:C$11 ($A$2:$A$11=$A2) C$2:C$11/($A$2:$A$11=$A2)     
   80      TRUE      80
   100      TRUE     100
   30      TRUE      30
   60      TRUE      60
   55      FALSE   #DIV/0!
   20      FALSE   #DIV/0!
   50      FALSE   #DIV/0!
   45      FALSE   #DIV/0!
   300      FALSE   #DIV/0!
    0      FALSE   #DIV/0!
 
 
最後にAGGREGATE(14,6,数値の範囲/(条件式),何番目)の公式にあてはめてみましょう。
例えば
AGGREGATE(14,6,C$2:C$11/($A$2:$A$11=$A2),1)
とすると...
($A$2:$A$11=$A2)の条件式を満たすC$2:C$11の数値のうち、1番大きいもの
という意味ですので、下のように100が返ります。
 
C$2:C$11 ($A$2:$A$11=$A2) C$2:C$11/($A$2:$A$11=$A2)     
   80      TRUE      80
   100      TRUE     100 ←これ。
   30      TRUE      30
   60      TRUE      60
   55      FALSE   #DIV/0!
   20      FALSE   #DIV/0!
   50      FALSE   #DIV/0!
   45      FALSE   #DIV/0!
   300      FALSE   #DIV/0!
    0      FALSE   #DIV/0!

投稿日時: 20/02/18 08:28:55
投稿者: takado0310

C$2:C$11 ($A$2:$A$11=$A2)      
    80      TRUE 
    100      TRUE 
    30      TRUE 
    60      TRUE 
    55      FALSE 
    20      FALSE 
    50      FALSE 
    45      FALSE 
    300      FALSE 
     0      FALSE 

投稿日時: 20/02/18 08:41:08
投稿者: takado0310

んなっとさん
丁寧な解説ありがとうございました。
超初心者の僕にも理解できました。
 
ただ、ひとつ($A$2:$A$11=$A2)がTRUEとFALSEになるのがわからない。
僕の思いでは、全部TRUEになると思うのですが、教えてください。
     
C$2:C$11 ($A$2:$A$11=$A2)      
    80      TRUE 
    100      TRUE 
    30      TRUE 
    60      TRUE 
    55      FALSE 
    20      FALSE 
    50      FALSE 
    45      FALSE 
    300      FALSE 
     0      FALSE [/quote]

回答
投稿日時: 20/02/18 14:24:20
投稿者: んなっと

普通は /($A$2:$A$500=$A2) の部分、「なぜわり算するのですか?」という質問なんです。
しかし、 ($A$2:$A$500=$A2) の部分が引っかかっていたんですね。
書き込みが無駄になりました。
  
これ以上は面倒ですし、さらに無駄な書き込みになりそうなのでやめておきます。
 
Excel 配列数式
でGoogle検索して、自分で勉強してください。

トピックに返信