[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『重複している数値を1として数える』(匿名)
どなたか教えてください。
A 1 200 2 200 3 195 4 185 5 200 6 170
という風に、A列に数値が並んでいるとします。
このとき、A1から順にA6まで数値の個数を数えるとき、COUNT(A1:A6)では「6」と返ってきますが、
A1からA6の間で、重複している「200」を「1」として数え、A6の170を「4」と数えることができる関数は
ありますでしょうか?
つまり、数値の種類の個数を調べる関数です。どなたかご存知の方教えてください。
おそらく、他の先生方からもっとスマートな回答が出てくると思いますが、 もし作業列の使用が許されるのでしたら、こんなのを思いつきました。 A1:A6にデータがあるとした場合 B1=IF(COUNTIF($A$1:$A$6,A1)=1,COUNTIF($A$1:$A$6,A1),1/COUNTIF($A$1:$A$6,A1)) として、B6までフィルハンドルでコピーします。 そして、B7=SUM(B1:B6)で個数がでます。 チョット格好の悪い数式でしたね。・・・・反省 (SS)
こちらも作業列を使う方法です。 B1セルに、=IF(COUNTIF($A$1:A1,A1)=1,1,"") C1セルに、=IF(B1=1,SUM($B$1:B1),"") とそれぞれ入力。 後は下へコピーして下さい。(純丸)
これでよいかな? Shift + Ctrl + Enter で配列数式として入力します。 (ramrun)
=COUNT(FREQUENCY(A:A,A:A)^0)
私の作業列を使うなら、=VLOOKUP(170,$A$1:$C$6,3,FALSE) で 4 が返りますが、 多分作業列無しで出したいのでしょう。もうちょっと考えてみます。(純丸)
お久しぶりです。
A1の値は常にユニークなので、B1に 1 と入力 B2に =IF(COUNTIF(A$1:A2,A2)=1,COUNT(B$1:B1)+1,"") としてフィルダウン
こういうことですか? (jindon)
上から数えることがSMALLに使えるというのに疑問ですが、 これでどうですか? B1に入力し、Shift + Ctrl + Enter。 (ramrun)
=IF(COUNTIF(A$1:A1,A1)>1,VLOOKUP(A1,A$1:B1,2,FALSE),COUNT(FREQUENCY(A$1:A1,A$1:A1)^0))
私も一案 =SUMPRODUCT(N(MATCH($A$1:A1,$A$1:A1,)=ROW($A$1:A1))) (ケン)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.