このSUMPRODUCT(COUNTIF( ))関数はどのように機能しますか?

このSUMPRODUCT(COUNTIF( ))関数はどのように機能しますか?

範囲内の異なる値をカウントするソリューションを探していたところ、この記事この例では、4 つの一意のエントリで構成される 10 個の名前のリストが提供されます。次に、次の数式を使用して 4 つの一意のエントリをカウントします。=SUMPRODUCT(1/COUNTIF(B3:B12,B3:B12))

SUMPRODUCT関数と関数の仕組みについては基本的に理解していますCOUNTIF。しかし、この式は理解できません。

  • COUNTIF{1,2,2,3,3,3} の配列を生成するために何をしているのでしょうか?
  • SUMPRODUCT彼はそれに対してどのように対処して譲歩するのでしょうか4?

データを複製して と入力すると=COUNTIF(B3:B12,B3:B12)、 が生成されます3

  • この値はどういう意味ですか?
  • それは {1,2,2,3,3,3} 配列とどのように結びついているのでしょうか?

答え1

この{1,2,2,3,3,3}例は実際には完全に恣意的であり、実際の結果とは何の関係もありません。 はCOUNTIF()実際にはこれを返します{3,3,3,2,2,3,3,3,2,2}。 この配列は、2 番目の引数の各要素を計算した結果ですCOUNTIF()。 次に、記事に書かれているように、この配列の各要素は分子として 1 を使用した除算に使用されます。 つまり、配列は になり、{1/3,1/3,1/3,1/2...} SUMPRODUCT()配列のすべての要素を合計して 4 になります。

関連情報