• ベストアンサー

値が同じものではないものの個数を返す関数?

こんにちは。 どう説明すればいいのかわからないのでたとえば次のような感じのリストがあるとします。 △ ▲ ▲ ○ ● △ というリストで、値が同じものではないものの合計個数は「4」になる。 といった、関数。 Count関数であるのかな?と思って探してみたのですが、 Countifも違うような気がします。。。。 関数に詳しい方、教えてください。 宜しくお願いします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

A1~A6にデータがあるとして、以下の関数で重複データを除いた個数が求められます。(範囲内に空白データはないものとします) =SUMPRODUCT(1/COUNTIF(A1:A6,A1:A6))

shimashimashima
質問者

お礼

ご回答を頂いて、ありがとうございます。 SUMPRODUCT関数、初めて知りました。 エクセルの説明を読んでもイマイチよく理解できませんし、なぜ(1/COUNTIF)なのかも理解が追いつきませんが、コピペしてみたら、うまく数えられました! ありがとうございました!

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 #3の回答者です。 >これくらい関数を使いこなせたら、もっと簡単に仕事が片付きそうです。 >いつか、そのレベルになりたいですけど、道のりは遠そうです。 それは、数式パターンの収集をするしかないと思います。そういう私も教わっただけです。 そんなに数が多いということはないと思います。せいぜい、基本パターンは、10個程度で間に合うはずですから、パターンさえ覚えれば、すぐに使えるようになります。 私は、国内外から、いろんなパターンを収集しましたが、私のは数年古いです。こういうことは、みんなが知恵を出し合っているものを共有しているに過ぎないと信じています。ここのサイトは、種々雑多ですから、収集しにくいと思いますが、他の専門サイトでは頻繁に出てきます。 最初に考えた人は、本当はえらいのですが、数式には、オリジナリティがありませんから、世界の片隅で発表されれば、いつのまにか、多くのユーザーが、その数式を使うようになります。 #4の maron--5さんの数式は、私などからすると遥か上の人ですから、この方の場合は、たぶん、ひらめくのかもしれませんね。常に新しいものを求めて、作り出す人に対しては、尊敬しかありません。

shimashimashima
質問者

お礼

ものすごく遅い御礼になってしまいますが、ありがとうございます。 日々精進ですね。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

◆こんな方法もありますよ ★途中に空白があってもいいですよ =COUNT(INDEX(1/(MATCH(A1:A100,A1:A100,)=ROW(A1:A100)),))

shimashimashima
質問者

お礼

ご回答ありがとうございます。 4つの関数を使った方法で、もう何がなにやらついていけません(笑) いつか使いこなせるようになれればと思います。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 試しに、ほかの方法を考えてみました。 =SUMPRODUCT((MATCH(A1:A6,A1:A6,0)=ROW(A1:A6))*1) または、 =SUMPRODUCT((COUNTIF(OFFSET($A$1,,,ROW(A1:A6)),A1:A6)=1)*1) (こちらは、空白があっても、エラーを出しません。) ただし、実務では、 =(COUNTIF($A$1:$A$6,A1)=1)*1 この数式をフィルハンドルを、下方向にドラッグ・コピーして、合計(SUM)を出せば出ます。上記の式は、それをひとつにまとめたものです。

shimashimashima
質問者

お礼

ご回答ありがとうございます。 本当にいろいろなやり方があるんですね。 これくらい関数を使いこなせたら、もっと簡単に仕事が片付きそうです。 いつか、そのレベルになりたいですけど、道のりは遠そうです。

noname#204879
noname#204879
回答No.2

{=SUM(1/COUNTIF(A1:A6,A1:A6))} (配列数式)

shimashimashima
質問者

お礼

ご回答ありがとうございます。 こちらはSUM関数を利用したものになるんでしょうか? いろいろなやり方があるんですね。

関連するQ&A