• 締切済み

エクセルの関数を教えて下さい。

顧客管理表を作成しており、全顧客のうち、実際に売上につながっている顧客数が知りたいです。 A列に顧客名(重複している顧客複数あり) B列に対象サービス C列に売上 A列    B列     C列 顧客a  eサービス  3000円 顧客b  fサービス  2000円 顧客c  gサービス  0円 顧客d  hサービス  1000円 顧客a  fサービス  2000円 顧客a  gサービス  1000円

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

作業用の列を使う方法では次のような処理が可能です。 D列を作業用としました。 D2=IF(($A$2:$A$1000=A2)*($C$2:$C$1000>0)*(COUNTIF($A$1:$A1,A2)=0),ROW(),"") E列に貢献顧客を抽出しました。 E2=IFERROR(INDEX(A:A,SMALL(D$2:D$1000,ROWS(D$2:D2))),"") F列に貢献顧客毎の売上合計を集計しました。 F2=IF(E2="","",SUMIF(A$2:A$1000,E2,C$2:C$1000)) D列はA~C列が記載されているすべての行にC2セルをコピーします。 E列とF列は2行目を必要数だけ下へコピーします。 尚、各式の最大行は1000としてありますが実情に合わせて修正してください。

回答No.4

添付図は、ピボットテーブルの「行ラベル」と「値」のフィールドの両方に「料金(円)」という列を指定し、値フィールドの右クリックによりその「データの集計方法」を「データの個数」に設定し、行ラベルのプルダウンのボタンから「0」のみ除外して表示したという、易しい分析の一例です。 なお各セルに「円」を付加してしまっていると、集計方法を合計などに変更した場合に計算できないし、各種の数式で計算する場合にも常に邪魔者なので、置換(Ctrl+H)によって「円」を列全体から削除したデータを元データとして使っています。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 適当な列を作業列として使用します。(ここでは仮に、H列を作業列として使用するものとします)  まず、H1セルに次の関数を入力して下さい。 =IF(INDEX($A:$A,ROW())="","",IF(AND(COUNTIF($A$1:INDEX($A:$A,ROW()),INDEX($A:$A,ROW()))=1,SUMIF($A:$A,INDEX($A:$A,ROW()),$C:$C)>0),ROW(),""))  次に、H1セルをコピーして、H3以下に貼り付けて下さい。  その上で、実際に売上につながっている顧客数を表示させたいセルに、次の関数を入力して下さい。 =COUNT($H:$H)  以上です。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

単純に売り上げの一覧を見たいだけならピボットテーブルを作成することをお勧めしますが、売り上げのある顧客を売り上げ順に並べ替えたり、特定の顧客データの一覧を作成するようなデータ処理をしたいなら、以下のような手順で関数やフィルタを利用するのが便利かも知れません。 まず、準備として元データのシートで、データタブの「詳細設定」をクリックしてフィルタオプションの設定ダイアログを出して、リスト範囲をA列の顧客名の列を選択し、「重複するレコードは無視する」にチェックを入れ「OK」します。 そのまま、右クリック「コピー」でA列をコピーし、新規シートのA1セルに貼り付けます(元データは適宜フィルタを解除)。 このようにして得られた重複のないA列の顧客名に対する売上額の合計は以下の式で表示できます。 B2セル: =SUMIF(Sheet1!A:A,A2,Sheet1!C:C) このシートのデータで、例えば金額欄で並べ替えすれば、売り上げが0の顧客はまとめて表示されます。 もちろん、フィルタの機能を利用して、金額欄が0以外を抽出することでも該当データを表示できます。

  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

挿入→ピボットテーブル→OK で、 右の表で、A列、B列、C列にチェックを入れて、A列を列ラベルに持ってきて、見て下さい。

関連するQ&A

専門家に質問してみよう