2016-12-08 7 views
1

重複エントリを1回カウントするcountifs式を作成しようとしています。下記のデータセットの例を参照してください。 「野菜」は細胞A1である。Excel重複したエントリを1回カウントするカウント数

データ1(列C)で「1(ASS)」が発生している、ジャガイモ(列A)の影響を受けたKPI(列B)を数えようとしています。列Dには、空白セルと「N/A」の両方がカウントされません。列Cは、複数選択リストからのデータを表示し、コンマで区切られます。

ブックにあるセルH2のKPIの合計数を数えるために数式を入力しました(画像参照)。 $ A $ 22 "ポテト"、$ B $ 3:$ B $ 22 "<>" & "マッシュ"、$ C $ 3:$答えは私が使用される式は

= COUNTIFS($ A $ 3で3です。 C $ 22 ""& $ F $ 3 &""、$ D $ 3:$ D $ 22 "<>" & ""、$ D $ 3:$ D $ 22 "<>" & "N/A")

しかし、影響を受ける一意のKPIの数を数えることはできません。ユニークなことは、最初のインスタンスをカウントすること/重複エントリを1回カウントすることを意味します。答えはH3で2になるはずです(もう一度、画像を見てください)。

私のデータセットでは、必要に応じて新しい列を作成できますが、私の推奨する解決策である式を使用してこれに答える方法がある場合は、

ありがとうございます。

Vegtable Type Data 1          KPIs 
Potato  Peeled 1 (ASS) xxx,11 (ToW) xxx     1 ABC 
Potato  Boiled 1 (ASS) xxx        1 ABC 
Potato  Mashed 1 (ASS) xxx        3 ABC 
Potato  Boiled 1 (ASS) xxx        N/A 
Potato  Boiled 1 (ASS) xxx        N/A 
Potato  Boiled 1 (ASS) xxx 
Potato  Peeled 1 (ASS) xxx        7 ABC 
Potato  Peeled 2 (ASS) xxx,8 (SGA) xxx     8 ABC 
Potato  Peeled 2 (ASS) xxx        9 ABC 
Potato  Peeled 2 (ASS) xxx        10 ABC 
Potato  Peeled 8 (SGA) xxx 
Carrot  Peeled 8 (SGA) xxx 
Carrot  Peeled 8 (SGA) xxx        1 ABC 
Carrot  Peeled 8 (SGA) xxx        2 ABC 
Carrot  Boiled 8 (SGA) xxx        3 ABC 
Carrot  Boiled 8 (SGA) xxx 
Carrot  Boiled 1 (ASS) xxx,8 (SGA) xxx,11 (ToW) xxx  
Carrot  Boiled 11 (ToW) xxx        4 ABC 
Carrot  Boiled 11 (ToW) xxx        5 ABC 
Carrot  Boiled 1 (ASS) xxx,11 (ToW) xxx     6 ABC 

enter image description here

+0

あなたはこのためにVBAでユーザー定義関数を作成する必要があります。最初のExcel 2016リリース後にいくつかの新しい関数が追加されない限り、標準関数ではできないと思います。 – JamesFaix

+0

また、ピボットテーブルを別のシートで使用することもできます。このピボットテーブルは、問題のフィールドの値ごとに1つの行を持つように構成する必要があります。次に、 'COUNT'を使ってそのシート上の行を数えることができます。 – JamesFaix

答えて

0

( + を入力しCtrlキー + Shiftキーを使用して数式を入力するために覚えておいてください!!)この配列数式を試してみてくださいと

=SUM(IF(($A$2:$A$21="Potato")*($B$2:$B$21<>"Mashed")*($C$2:$C$21="1 (ASS) xxx")*($D$2:$D$21<>"N/A")*($D$2:$D$21<>""),1/COUNTIFS($A$2:$A$21,"Potato",$B$2:$B$21,"<>"&"Mashed",$C$2:$C$21,"1 (ASS) xxx",$D$2:$D$21,"<>"&"",$D$2:$D$21,$D$2:$D$21),0)) 

式ワイルドカード検索:

ワイルドカードを持つ
=SUM(IF(($A$2:$A$21="Potato")*($B$2:$B$21<>"Mashed")*(ISNUMBER(SEARCH("*1 (ASS)*",$C$2:$C$21,1)))*($D$2:$D$21<>"N/A")*($D$2:$D$21<>""),1/COUNTIFS($A$2:$A$21,"Potato",$B$2:$B$21,"<>"&"Mashed",$C$2:$C$21,"*1 (ASS)*",$D$2:$D$21,"<>"&"",$D$2:$D$21,$D$2:$D$21),0)) 

式検索と検索テキストセルF2で:

=SUM(IF(($A$2:$A$21="Potato")*($B$2:$B$21<>"Mashed")*(ISNUMBER(SEARCH("*"&$F$2&"*",$C$2:$C$21,1)))*($D$2:$D$21<>"N/A")*($D$2:$D$21<>""),1/COUNTIFS($A$2:$A$21,"Potato",$B$2:$B$21,"<>"&"Mashed",$C$2:$C$21,"*"&$F$2&"*",$D$2:$D$21,"<>"&"",$D$2:$D$21,$D$2:$D$21),0)) 
+0

それはそれに非常に近いです。私が持っている問題は、基準($ C $ 2:$ C $ 21 = "1(ASS)xxx")の合計です。 これは、等しいことはできません。特定の文字列を検索するにはC列を検索する必要があります。各セルに複数のコンマ区切りの基準が存在する可能性があります。 & "*" は、あなたの数式でこの基準を再作成する方法がわからない... –

+0

はあなたが私もらえ$ C $ 21 "*" &1(ASS): $ C $ 2:私の元の式では、私はこれを使用しましたあなたが探している文字列の例? –

関連する問題