- ベストアンサー
顧客の売上データをリスト化する方法
- この質問では、売上データをリスト化する方法についてのアイディアを求めています。具体的には顧客ごとに購入回数や初回購入日から最終購入日までの日数を計算したリストを作成したいとのことです。使用ソフトはAccessとExcelであり、VBAを使用せずに解決したいとのことです。
- 現在購入回数や初回購入日までは問題なく出力できているが、2回目以降の購入日から最終購入日までの期間を計算することで困っているとのことです。ピボットテーブルによる日付の並べ方では顧客によって空白セルが発生してしまい、期間の計算方法も難しいです。
- 回答者はVBAを使用しない方法で解決したいとのことで、アイディアや具体的な手順などを教えてほしいとのことです。不足している情報があれば追記いただけるようにお願いしています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
んじゃ,もっとベタに次のようにすれば,必ず出来ます。 A列顧客名 AやBやCがずらずらと B列顧客ごと連番 B2: =IF(A2="","",A2&"-"&COUNTIF($A$2:A2,A2)) C列日付 2010/3/10のようにずらずらと。 作成例 E2セルに Aを記入 F2セルに =IF(OR($E2="",COLUMN(A2)>COUNTIF($A:$A,$E2)-1),"",VLOOKUP($E2&"-"&COLUMN(B2),$B:$C,2,FALSE)-VLOOKUP($E2&"-"&COLUMN(A2),$B:$C,2,FALSE)) 右にコピー,下にコピー。 #参考: 「実際のデータ」が,ホントにあなたが例示されたようにキチンと顧客の昇順などで並べ替え済みであるなら,もうちょっとだけ簡単な式でも出来ます。 >できない 回答した手順が出来ていないか,若しくはあなたの説明に何か決定的に違っている内容があるのでしょう。ちゃんとやればちゃんと出来ますので,練習ブックを作ってもう一度練習して出来るようになってみて下さい。
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
エクセルのピボットテーブルレポートを使ってみます。 ご利用のエクセルのバージョンが不明ですが,仮に2003までのエクセルでお話しします。 簡単には,まず行に顧客を入れ,続けて行に日付を入れます。 さらにデータにも日付を入れます。行の日付を移動するのではなく,再録するような格好になるので間違えないよう注意して下さい。 注意)同一日付に同一顧客の実績が複数発生する(前回との差日数がゼロ日になる)データがあるときは,日付ではなく「データ番号(たとえば取引履歴番号)」で作成しなければなりません データに入れた日付を右クリックしてフィールドの設定を開始し, 集計の方法は合計にしておき, オプション>>を開いて 計算の種類は「基準値との差分」を選び 基準フィールドは「日付」にして 基準アイテムを「(前へ)」 として作成すると,完成です。
補足
ご回答ありがとうございます。 今ためしてみました。 私の説明不足だったのだとおもうのですが、 同じ顧客が毎日購入されているわけではないので、 教えていただいた方法ですと、すべて0になってしまいました・・・ データはこんな感じなのです。 顧客名 購入日 金額 A 20100101 3000 A 20100210 5000 A 20100315 3000 B 20100101 6000 B 20100131 6000 C 20100205 5000 C 20100215 6000 ・・・ という感じで 結果 顧客名 1回目から2回目 2回目から3回目 A 40 33 B 30 C 10 にしたいのです。
お礼
ありがとうございます。 補足で入力したデータでためしてみたら、確かにピボットでできましたので、 なんでだろう、と元データみてみたら、日付が日付として認識されていないのではないかと思い(セルの左によっていた)、一度csvにし、再インポートで日付にして、試してみたら、ばっちり出来ました! 今回は「基準値との差分」等、勉強になりました。 ありがとうございます!