マンガでよめる痔のこと・薬のこと

A列:担当者番号 B列:顧客名 C列:Bの顧客が購入した商品
という形でExcelを利用しています。

Aの担当者が担当するB顧客数を計算したいのですが、B(顧客)に紐づくC(商品)は複数あるので
どうしてもC(商品)のレコード分だけ、計算されてしまいます。

例えば、このような感じです。
A列:すずきさん 
B列:さいとうさん
C列:B列のさいとうさんが購入した商品○○、△△、□□
という場合、
「3」とカウントするのではなく、「1」とカウントしたいです。

どのようにすれば可能でしょうか。
よろしくお願いいたします。

質問者からの補足コメント

  • つらい・・・

    ありがとございます!やってみたところ、総計が出てしまいました。
    抽出したいのは以下の数値となります!

    ・すずきが持つ顧客は2(さいとうさん&たかはしさん)
    ・さとうが持つ顧客は1(おおたさん)

      A B C
    1                          ← 1行目は集計欄としてあけておく
    2 担当者番号 顧客名    購入した商品
    3 すずき   さいとうさん ○○
    4 すずき   さいとうさん △△ 
    5 すずき   さいとうさん □□
    6 すずき   たかはしさん ○○
    7 さとう   おおたさん  ○○
    7 さとう   おおたさん  △△

    お手数おかけしますが、よろしくお願いいたします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2019/12/09 12:00

A 回答 (6件)

No.3です。



フィルタなしでできるようにしました。
H列の値が、その行のA列担当者の顧客数です。(添付図参照)

作業列としてD,E,F,G列を使います。邪魔でしたら列幅を小さくするなどしてください。
念のため、正しく計算されているか確認してください。
(No.5の回答は正しくないかもです)

◆手順
1.D3セルに『=A3&B3』と入力します。
2.E3セルに『=IF(COUNTIF(A$3:$A3,A3)=1,ROW(),"")』と入力します。
3.F3セルに『=IF(COUNTIF($D$3:D3,D3)=1,ROW(),"")』と入力します。
4.G3セルに『=IF(ISNUMBER(F3),A3,"")』と入力します。
5.H3セルに『=IF(E3<>"",COUNTIF(G:G,A3),"")』と入力します。
6.D3~H3セルをコピーして、データ最下行まで貼り付けます。
「Excelでの計算方法について」の回答画像6
    • good
    • 0

No.3です。



No.4の回答は誤記がありましたので、無視してください。
こちらが正しい回答です。

◆手順
1.D列を作業列として使います。D3セルに『=A3&B3』と入力して、下方向にデータ下端までコピペします。
2.E列を作業列として使います。E3セルに『=IFERROR(MATCH(D3,D4:$D$9,0),2)-1』と入力して、下方向にデータ下端までコピペします。 ⇒ $D$9はデータ下端の1行下です。
3.E1セルに『=SUBTOTAL(109,E3:E8)』を入力します。 ⇒ E8はデータ下端セルです。
4.2行目全体を選択して、メニュー ⇒ データ ⇒ フィルタ とします。
5.B2セルの▼マークをクリックして、種類数を求めたいものにチェックをつけます。
6.E3セルの値が種類数です。(フィルタをかけた後の値が求めたい値です)

※手順2の$D$9、および手順3のE8は、データ下端よりも下にあればよいです。今後行数が増加するのであれば、例えば$D$10000、E10000などにしておいてもよいです。(空白セルを含んでも影響しません)

※作業列が目障りな場合、E1セルを移動させてから、列幅を小さくするか、非表示にするか、フォント色を薄くするか、右のほうへ移動するか(AA列など)、等を行ってください。

※フィルタをクリアするときは、メニューの『フィルタ』の右隣の『クリア』をクリックします。
    • good
    • 0
この回答へのお礼

ありがとうございます!
できました~!ご丁寧に助かりました。
が、都度、B列のフィルタから対象者を選択しなければなならないってことですよね。
B列の担当者別にE列の数値を常時表示させておくことは可能でしょうか?

お礼日時:2019/12/10 15:25

No.3です。



失礼しました。修正案です。
データは補足コメントのように入力されているとします。

◆手順
1.D列を作業列として使います。D3セルに『=A3&B3』と入力して、下方向にデータ下端までコピペします。
2.E列を作業列として使います。E3セルに『=MATCH(D3,D4:$D$9,0)』と入力して、下方向にデータ下端までコピペします。 ⇒ $D$9はデータ下端の1行下です。
3.E1セルに『=SUBTOTAL(102,E3:E8)』を入力します。 ⇒ E8はデータ下端セルです。
4.2行目全体を選択して、メニュー ⇒ データ ⇒ フィルタ とします。
5.B2セルの▼マークをクリックして、種類数を求めたいものにチェックをつけます。
6.E3セルの値が種類数です。(フィルタをかけた後の値が求めたい値です)

※手順2の$D$9はデータ下端よりも下にあればよいです。今後行数が増加するのであれば、例えば$D$10000などにしておいてもよいです。(常にデータ下端よりも下にある必要があります)

※作業列が目障りな場合、E1セルを移動させてから、列幅を小さくするか、非表示にするか、フォント色を薄くするか、右のほうへ移動するか(AA列など)、等を行ってください。
    • good
    • 0

データベースとして使う場合は、1つのセルに1項目のみを入れるのが基本になります。


以下のように入力することをおすすめします。質問内容からは具体的にどのように入力されているのか把握できませんので・・・。

  A      B      C
1                          ← 1行目は集計欄としてあけておく
2 担当者番号 顧客名    購入した商品
3 すずきさん さいとうさん ○○
4 すずきさん さいとうさん △△ 
5 すずきさん さいとうさん □□


ここからが本題の、Aの担当者が担当するB顧客数の求め方です。

◆手順
1.上の例にしたがってデータを入力します。
2.D列を作業列として使います。D3セルに『=A3&B3』と入力して、下方向にデータ下端までコピペします。
3.D1セルに『=SUMPRODUCT(1/COUNTIF(D3:D5,D3:D5))』と入力します。 ⇒D5はデータ下端セルとします

※計算範囲に空白セルを含んでいると、空白セルも1種類とカウントします。(1種類多くカウントされます)
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
頂いた方法で試した見た結果を含めて、補足に記載させていただきました。
お手数なのですが、ご教示頂けないでしょうか。

お礼日時:2019/12/09 14:29

》 A列:すずきさん


自分トコの担当者に「さん」付けするのは滑稽かと。
    • good
    • 0

ピボットテーブルで集計すれば、どんな集計も自在で簡単ですよ。


https://dekiru.net/article/19214/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング