- 締切済み
エクセルの関数を教えて下さい。
顧客管理表を作成しており、全顧客のうち、実際に売上につながっている顧客数が知りたいです。 A列に顧客名(重複している顧客複数あり) B列に対象サービス C列に売上 A列 B列 C列 顧客a eサービス 3000円 顧客b fサービス 2000円 顧客c gサービス 0円 顧客d hサービス 1000円 顧客a fサービス 2000円 顧客a gサービス 1000円
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- bunjii
- ベストアンサー率43% (3589/8249)
作業用の列を使う方法では次のような処理が可能です。 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としてありますが実情に合わせて修正してください。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
- kagakusuki
- ベストアンサー率51% (2610/5101)
適当な列を作業列として使用します。(ここでは仮に、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)
単純に売り上げの一覧を見たいだけならピボットテーブルを作成することをお勧めしますが、売り上げのある顧客を売り上げ順に並べ替えたり、特定の顧客データの一覧を作成するようなデータ処理をしたいなら、以下のような手順で関数やフィルタを利用するのが便利かも知れません。 まず、準備として元データのシートで、データタブの「詳細設定」をクリックしてフィルタオプションの設定ダイアログを出して、リスト範囲をA列の顧客名の列を選択し、「重複するレコードは無視する」にチェックを入れ「OK」します。 そのまま、右クリック「コピー」でA列をコピーし、新規シートのA1セルに貼り付けます(元データは適宜フィルタを解除)。 このようにして得られた重複のないA列の顧客名に対する売上額の合計は以下の式で表示できます。 B2セル: =SUMIF(Sheet1!A:A,A2,Sheet1!C:C) このシートのデータで、例えば金額欄で並べ替えすれば、売り上げが0の顧客はまとめて表示されます。 もちろん、フィルタの機能を利用して、金額欄が0以外を抽出することでも該当データを表示できます。
- aokii
- ベストアンサー率23% (5210/22062)
挿入→ピボットテーブル→OK で、 右の表で、A列、B列、C列にチェックを入れて、A列を列ラベルに持ってきて、見て下さい。