フィルターなどを使用して既に整理された大きなテーブルがあります。特定の列の下に、その列の個別の値の数を含む要約を追加したいと思います。
機能がない=COUNTDISTINCT(A2:A100)
ので、代わりに何ができますか?(Excel 2003)
テーブルやフィルタリングを変更したくないので、この同様の質問に対する答えを正確に使用することはできません。変更ではなく、ワークシートに追加する必要があります。
フィルターなどを使用して既に整理された大きなテーブルがあります。特定の列の下に、その列の個別の値の数を含む要約を追加したいと思います。
機能がない=COUNTDISTINCT(A2:A100)
ので、代わりに何ができますか?(Excel 2003)
テーブルやフィルタリングを変更したくないので、この同様の質問に対する答えを正確に使用することはできません。変更ではなく、ワークシートに追加する必要があります。
回答:
=SUMPRODUCT((A2:A100 <> "")/COUNTIF(A2:A100,A2:A100 & ""))
配列式を使用せずにそれを行います。
for each [i] in A2:A100 DO:{ sum += (([i]<>"")/COUNTIF(A2:A100,[i])) }
、 ?私はそれが条件と第二COUNTIFパラメータの両方を列挙するために知っている方法を理解少し問題が発生したが、午前ない第一COUNTIFパラメータ?このDWIM-magicは、MSによってどこでも文書化/説明されていますか?これらを意図的に書く方法を知っておくといいでしょう。
ここで解決策を見つけましたが、これはそれを解決するための信じられないほどの迂回方法と思われます。しかし、ちょっと、それは動作します...
= SUM(IF(COUNTIF(A2:A100、A2:A100)= 0、 ""、1 / COUNTIF(A2:A100、A2:A100)))
次にCtrl+ Shift+ を押しEnterます。押すだけでEnter間違った結果が得られます。
次の2つのリソースが見つかりました。
http://www.excelforum.com/excel-worksheet-functions/365877-count-distinct-values.html
そして
http://www.cpearson.com/excel/Duplicates.aspx
そこから実行可能なソリューションを見つけることができるはずです。
=SUM(IF(FREQUENCY(IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""), IF(LEN(C3:C25)>0,MATCH(C3:C25,C3:C25,0),""))>0,1))
数値の場合:
=SUM(IF(FREQUENCY(C3:C25, C3:C25)>0,1))
この記事では、同様の式を示しますが、フィルターを使用する方法も示します。
フィルターを使用して一意の値の数を数える
拡張フィルターを使用して、データの列から一意の値を抽出し、新しい場所に貼り付けることができます。次に、ROWS関数を使用して、新しい範囲内のアイテムの数をカウントできます。
- 列の最初の行に列ヘッダーがあることを確認してください。
- [データ]メニューの[フィルター]をポイントし、[高度なフィルター]をクリックします。
- [詳細フィルター]ダイアログボックスで、[別の場所にコピー]をクリックします。
- カウントする範囲がまだ選択されていない場合は、[リスト範囲]ボックスの情報を削除してから、データを含む列をクリックします(または範囲を選択します)。
- [コピー先]ボックスで、ボックス内の情報を削除するか、ボックス内をクリックしてから、一意の値をコピーする空白の列をクリックします。
[一意のレコードのみ]チェックボックスをオンにして、[OK]をクリックします。
選択した範囲の一意の値が新しい列にコピーされます。
範囲の最後のセルの下の空白のセルに、ROWS関数を入力します。引数としてコピーした一意の値の範囲を使用します。たとえば、一意の値の範囲がB1:B45の場合、
= ROWS(B1:B45)を入力します。
= SUM(1 / COUNTIF(A2:A100; A2:A100))
Ctrl + Shift + Enterで確定
セルごとに、それが発生した回数をカウントし、これらすべての値の逆数を合計します。いくつかの文字列または数のオッカスを5回仮定します。その逆数は0.2で、5回合計されるため、1が加算されます。最後に、異なる値の数を提供します。
注:空白が発生すると機能しません!
このリンクを試してください。これは、空白セルを省略してリスト内の一意の値をカウントする方法を示しています。
http://www.functioninexcel.com/lists-arrays/count-unique-values-in-a-list/
= sum(if(frequency(match(List、List、0)、match(List、List、0))> 0、1))
「リスト」は、たとえばセルの範囲です。
リスト= $ A $ 2:$ A $ 12 OR-リスト= offset($ A $ 1 ,,, match(rept( "z"、255)、$ A:$ A))-OR-リスト= offset($ A $ 1、 ,, match(value(rept( "9"、255))、$ A:$ A))