• ベストアンサー

Excel関数:最高値をカウントして総数を求める計算方法

例えば、以下のようなデータがあったとします。   A   B   C 1 50  50  25 2 80  80  80 3 45  50  60 4 35  70  45 5 50  40  30 このデータから1から5行目まで見て、「A」「B」「C」の中で最高値をカウントします。 「1」の場合、最高値は「A」と「B」になります。 「2」の場合、最高値は「A」「B」「C」全てになります。 「3」の場合、最高値は「C」になります。 これをカウント数にすると、   A   B   C 1  1   1   0 2  1   1   1 3  0   0   1 4  0   1   0 5  1   0   0 となり、カウントの総数は「8」となります。 このカウントの総数を一つのセルで計算する方法を教えてください。 関数は詳しくないのでまた質問するかもしれませんが、解説もよろしくお願いします。 回答よろしくお願いします。

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

  • ベストアンサー
回答No.2

一つにセルという条件というのはよくわかりませんが、計算用の行列を使います。例えば、与えられた表がA1から始まっているとします。 F2に「=IF(B2=MAX($B2:$D2),1,0)」G2に「=IF(C2=MAX($B2:$D2),1,0)」、H2に「=IF(D2=MAX($B2:$D2),1,0)」と入力します。式の意味は「そのセルが最大値と等しいのなら、1,違っているのなら0を表示する」ということです。「$」は絶対セルという意味です。たの列にコピーしても列は変わりません。その3列を下4行分コピーします。これで計算用の部分は終わり。E2に「=SUM(F2:H6)」と入力すれば8と表示されます。

miya_HN
質問者

お礼

確かにそれぞれ行に計算式を出して合計するとカウントの総数が出ますね。 しかし、一つのセルで計算するという条件に当てはまっていないのでちょっと。 ありがとうございました。

その他の回答 (1)

回答No.1

=MAX(A1:C1)*COUNTIF(A1:C1,MAX(A1:C1))+MAX(A2:C2)*COUNTIF(A2:C2,MAX(A2:C2))+MAX(A3:C3)*COUNTIF(A3:C3,MAX(A3:C3))+MAX(A4:C4)*COUNTIF(A4:C4,MAX(A4:C4))+MAX(A5:C5)*COUNTIF(A5:C5,MAX(A5:C5)) これでいけるかと^^ あまりスマートではないのでほかの方のご回答を待った方がいいかと

miya_HN
質問者

お礼

なるほど。行ずつの最高値をカウントしてるんですね。 しかし、実際のデータでは1000(1から5の部分)を超えることもあるので残念ながら使えません; ありがとうございました。