購入回数別で商品名・区分が変わるデータの抽出方法

このQ&Aのポイント
  • ExcelやAccessを使用して、購入回数が1回目とそれ以外のデータを分ける方法について相談です。
  • 特定の「商品名・区分」を貫いている顧客を抽出する方法についてアドバイスをください。
  • 提供された出荷データから、同じ会員番号で購入回数別に商品名・区分が変わるデータを除外、または目印をつける方法を教えてください。
回答を見る
  • ベストアンサー

ACCESSかエクセルで抽出したいmm(再掲載)

以下出荷データ(xls.)があるのですが、同じ「会員番号」で見て、購入回数別で 「商品名・区分の両方ないしはいずれか」が1回目と変わっているデータ(会員番号)は 1回目含めて除外、ないしは目印をつけたいの ですが、EXCEL、ないしはACCESSで行う方法ないでしょうか。 ※浮気をしないで一貫しておなじ「商品名・区分」を貫いているお客(恋人)だけを 引っ張り出したいmm 購入回数1しかない顧客は浮気対象ではない(除外しない) 以下は出荷履歴の一部を切り取ったものです(これを活用したい) EXCELでできてしまうのか?ACCESS SQLがいいのか? 注文日       会員番号    商品名      区分     購入回数 2014/03/01     12345678    セレクト    通常購入    1 2014/04/01     98765432    通常商品    定期購入    1 2014/04/10      33333333    通常商品 通常購入 1 2014/05/20      77777777    セレクト 通常購入 1 2014/06/20      77777777    セレクト    通常購入    2 2014/07/20     77777777    セレクト    通常購入    3 2014/08/20     77777777    シリーズ    通常購入    4 2014/09/20     77777777    セレクト    通常購入    5 方法悩んでおりますmmmm 商品名・区分はそれぞれ商品名が上記3種類、区分は2種類しかないので、 これを数字に変換してもかまわない(整理ができればいいので)。 さすがに難しいですよねmmmm

質問者が選んだベストアンサー

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

>(ちなみにAccessでもおなじデータがテーブルにあるとして、クエリー等で応用できるのでしょうか。) Accessについては必要が無かったので10年ほど前に聞きかじった程度です。 従って、具体的にはアドバイスできません。 考え方としてはExcelの数式でどのような処理を行っているかを理解できれば応用力で対応できるでしょう。 記録されている会員番号の中から対象の会員番号について記録行数をカウントします。(記録されている購入回数) 対象の会員番号について商品名と区分が同じものをカウントします。(同一購入形態の数) 記録されている購入回数と同一購入形態の数が異なるときは1回以上商品名と区分の組み合わせが異なる取引があることになります。 従って、あなたが指定している削除対象になります。 論理を正しく当て嵌めれば良いのでソフトの機能でカバーできる手法を使えば良いでしょう。

mcdone
質問者

お礼

ありがとうございます。チャレンジしようとおもいます。

その他の回答 (1)

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

質問の要件が分かり難いです。 >「商品名・区分の両方ないしはいずれか」が1回目と変わっているデータ(会員番号)は1回目含めて除外、ないしは目印 と言うことは模擬データの内、会員番号=77777777のみマークされれば良いと言うことでしょうか? 貼付画像はExcel 2013で検証した結果です。 Excel 2007以降のバージョンで再現可能と思われます。 お望みと異なる結果のときは補足して頂ければ再考させて頂きます。 F列が判定結果になります。 F2=IF(COUNTIF(B:B,B2)=COUNTIFS(B:B,B2,C:C,C2,D:D,D2),"","削除") F2セルを下へ必要数コピーします。

mcdone
質問者

お礼

ありがとうございます!!!!!!!!!!!!!! 分かりづらい要件にも関わらず適切な回答に深く感謝いたします。 > と言うことは模擬データの内、会員番号=77777777のみマークされれば良いと言うことでしょうか? はい、そのとおりでございます。 EXCELで試させていただきます。 (ちなみにAccessでもおなじデータがテーブルにあるとして、クエリー等で応用できるのでしょうか。)

関連するQ&A

  • EXCELを使って特定の文字を参照、コピーしたい

    エクセルシートで以下、4列の表があるのですが、 一部商品名、区分が歯抜けです。 会員番号 商品名 区分  回数 111111111 セレクト  通常    1 111111111          2 111111111          3 111111111          4 111111111          5 222222222 通常商品 定期 1 222222222         2 333333333 通常商品 通常 1 333333333 2 これを会員番号が同じものは回数1と同じ文字列を 商品名、区分に反映できないでしょうか。 実現したい事 会員番号 商品名 区分  回数 111111111 セレクト  通常    1 111111111 セレクト  通常 2 111111111 セレクト  通常 3 111111111 セレクト  通常 4 111111111 セレクト  通常 5 222222222 通常商品 定期 1 222222222 通常商品 定期 2 333333333 通常商品 通常 1 333333333 通常商品 通常 2 ※会員番号が同じものは、空白の文字列に、 同じ商品名、区分を反映したい。 単純に会員番号に記載されている商品名・区分を 同じ会員番号で空白の箇所にも反映させたい。 (回数1にはすべて商品名、区分が入っている) エクセルの数式内で一発でできるのではとおもうのですが、 可能でしょうか。

  • ACCESSデータは5000以上ある(抽出の件)

    データは5000件以上あるのですが、以下で対応は難しいのではないでしょうか。 ソートでできますでしょうか?↓ http://okwave.jp/qa/q8755953.html ●質問した内容● ACCESSを活用して累計(経過)を表現したい 質問者:jordan232011 投稿日時:2014/09/15 21:38 困ってます ACCESSテーブルに以下情報が格納されています。 注文日    会員番号  商品名  価格 2014/03/23  123456 サンプル  500円 2014/04/23  123456 サンプル  500円 2014/05/23  123456 サンプル  500円 2014/03/21  456789 容器    1000円 2014/04/21  456789 容器    1000円 上記をクエリーを利用して、以下の抽出をする方法は ないでしょうか。 ↓ (1) 会員番号 購入回数 価格 累積価格 123456     1 500 500 123456    2 500 1000 123456   3 500 1500 456789   1 1000 1000 456789   2 1000 2000 (2) 会員番号 購入回数 LTV 123456      1 0 123456    2 30 123456    3 60 456789    1 30 456789   2 60 ※LTV:その回の注文日 - 前の注文日 ※必要であれば先頭にAUTOナンバーをつけることも可能 ※ACCESS2010を利用中 お手数ですが御教授いただけるとたすかります。。

  • ACCESS SQLクエリーの活用について

    以下データ群(テーブル名:table1)があります(会員番号はユニークをあらわします)。 注文日   会員番号  商品名  価格 2014/04/11 123456 パンツ  1000 ←一番古い注文日の行(4/11開始)が先頭 2014/04/20 123456 靴下   3000 2014/05/23 456789 半袖   2000 2014/05/23 456789 靴下   3000 2014/05/29 456789 パンツ  1000 2014/05/30 987654 靴下   3000 2014/06/09 987654 寝巻き  5000 2014/06/15 987654 下駄   4000 そして、 SELECT Q4.注文日, Q4.会員番号, Q4.商品名, Q3.購入回数, Q3.LTV FROM (SELECT Q1.注文日, Q1.会員番号, Count(Q2.会員番号)+1 AS 購入回数, DateDiff('d', Nz(Min(Q2.注文日),Q1.注文日), Q1.注文日) AS LTV FROM (SELECT 会員番号, 注文日 FROM ★★ GROUP BY 会員番号, 注文日) AS Q1 LEFT JOIN (SELECT 会員番号, 注文日 FROM ★★ GROUP BY 会員番号, 注文日) AS Q2 ON Q1.会員番号=Q2.会員番号 AND Q1.注文日>Q2.注文日 GROUP BY Q1.会員番号, Q1.注文日) AS Q3 LEFT JOIN ★★ AS Q4 ON Q3.会員番号=Q4.会員番号 AND Q3.注文日=Q4.注文日 ORDER BY Q4.会員番号, Q4.注文日 ; 達人からアドバイスいただいていた 上記SQLクエリーからの表示は 注文日 会員番号 商品名 購入回数 LTV 2014/04/11 123456 パンツ 1 0 2014/04/20 123456 靴下 2 9 2014/05/23 456789 半袖 1 0 2014/05/23 456789 靴下 1 0 2014/05/29 456789 パンツ 2 6 2014/05/30 987654 靴下 1 0 2014/06/09 987654 寝巻き 2 10 2014/06/15 987654 下駄 3 16 と出ます(GOOD!!!)。 上記に付随して、 このクエリーが参照しているテーブルの他の列(例:氏名、都道府県)もある(集計対象ではない)場合でそれも追加で(列名:氏名、都道府県を)表現するためには、 SELECT Q4.注文日, Q4.会員番号, Q4.商品名, Q3.購入回数, Q3.LTV の構文箇所に2つの列名も手打ちで追加する必要がありますでしょうか。 (テーブル列名すべてを表示する・・といった個別に列名を指定しないで表示する方法はあるのでしょうか<列名が多いときに手間が若干かかる)

  • Accessの初心者です。

    Accessの初心者です。 使用しているのは、Access2007です。 クエリの設定について、教えてください。 下記のようなものを作成しています。 会員番号、会員名、受付日、購入商品個数、発送日 これをクエリで、 会員の発送済のものの中で、一番最新の購入商品個数を表示したいのですが、 クエリの設定がうまくできません。 どのように設定したらよいか、おわかりになる方、教えてください。

  • ●最終系:ACCESSクエリーの件!懇願mm

    ACCESSクエリーで教えていただきたいことございます! 以下に関連しております。大変恐縮です。 ↓ http://okwave.jp/qa/q8756016.html ●したいこと● 累積回数、LTVを導きたいです(自動算出)。 ●何から?● 以下データ群(テーブル名:table1)があります(会員番号はユニークをあらわします)。 注文日   会員番号  商品名  価格 2014/04/11 123456 パンツ  1000 ←一番古い注文日の行(4/11開始)が先頭 2014/04/20 123456 靴下   3000 2014/05/23 456789 半袖   2000 2014/05/23 456789 靴下   3000 2014/05/29 456789 パンツ  1000 2014/05/30 987654 靴下   3000 2014/06/09 987654 寝巻き  5000 2014/06/15 987654 下駄   4000 ●SQLクエリーで導きだしたいこと● 上記データ群を、SQL(クエリー)を使用して、 以下のように表現できないでしょうか。 注文日   会員番号  購入回数  LTV  ※商品名も表示できればそのままつけたい 2014/04/11 123456      1     0 2014/04/20 123456   2 9 2014/05/23 456789     1     0 2014/05/23 456789   1 0 2014/05/29 456789   2 6 2014/05/30 987654      1 0 2014/06/09 987654   2 10 2014/06/15 987654     3 16 ※同じ注文日、同じ会員番号であれば、商品を複数購入しようが(複数行であっても)それは同日扱いにより購入回数は同じと数とする ※LTV:その回の注文日 - 最初(1回目)の注文日(最初の購入から見て何日経過か) ※ユニーク(会員番号)の方が、一度にいくつ購入したかは問わず、 何日おき(すべて初回を起点にした経過日とする)に来店したか、頻度と合わせて表現したい ※積み上がる累積金額の表示はなくてかまわないので、上記(購入回数、LTV)2つを表示できないでしょうか。 お知恵をいただければ幸いですmm LTV算出は以下のイメージが近いです。 ↓↓↓↓↓↓↓↓↓↓↓ http://okwave.jp/qa/q8756016.html なお、LTV を求める記述の Max(Q2.注文日) を Min(Q2.注文日) とすると 表示結果は、 会員番号  購入回数  LTV 123456  1  0 123456  2  31 123456  3  61 456789  1  0 456789  2  31

  • accessで困っています

    access2000で、簡単な在庫管理ソフトを作っています。 商品マスタ(商品No、商品名、在庫初期値) 入荷マスタ(日付、商品名、入荷数) 出荷マスタ(出荷履歴No、日付、得意先名、商品名、出荷数) をテーブルに設け、商品を出荷入力すれば、初期値ー出荷数+入荷数をクエリ上で計算し、在庫数とし表示させています。 これに、出荷入力をしてそれを納品書として印刷させます。当たり前ですが、1商品出荷につき1枚の納品書しか印刷されません。 商品マスタに、商品名2や商品名3を設け、1枚に3種類まで印刷させようとすると、在庫計算方法がよく分からなくなります。 初心者で、どの様に作っていけば良いのかわかりません。 皆様のお知恵をお貸しいただけますでしょうか。 宜しくお願い致します。

  • ACCESSを活用して累計(経過)を表現したい

    ACCESSテーブルに以下情報が格納されています。 注文日    会員番号  商品名  価格 2014/03/23  123456 サンプル  500円 2014/04/23  123456 サンプル  500円 2014/05/23  123456 サンプル  500円 2014/03/21  456789 容器    1000円 2014/04/21  456789 容器    1000円 上記をクエリーを利用して、以下の抽出をする方法は ないでしょうか。 ↓ (1) 会員番号 購入回数 価格 累積価格 123456     1 500 500 123456    2 500 1000 123456   3 500 1500 456789   1 1000 1000 456789   2 1000 2000 (2) 会員番号 購入回数 LTV 123456      1 0 123456    2 30 123456    3 60 456789    1 30 456789   2 60 ※LTV:その回の注文日 - 前の注文日 ※必要であれば先頭にAUTOナンバーをつけることも可能 ※ACCESS2010を利用中 お手数ですが御教授いただけるとたすかります。。

  • 歯抜けとなっている特定の会員だけを特定したい

    注文日 会員番号   商品名     価格    注文番号    購入回数 2014/3/2 123345678    お好み焼き     550  201401123   1 上記行毎の注文データがxlsで1万件(行)あります。 (「購入回数」は日別で注文された累積件数をあらわします。1=初回 2=2回目 最大5迄ふられている) <問題> 同じ会員番号のデータで、購入回数[1]がないにもかかわらず、購入回数2以降~から存在する不要な データが混ざっています。 この購入回数1がないのに、同じ会員番号で購入回数が2~5いずれかをふられている行(会員)だけを ピックアップする方法はないでしょうか。xls上でもアクセスにインポートしてからの 処理でもどちらでもかまわないのですが。 いわゆるこの不要データを削除(クリーニング)したいのです。 お知恵をいただけるとありがたいですmm

  • アクセスでデーター抽出方法を教えて

    アクセスで、クエリー&サブフォームを使わず、テーブルのデータをフォーム上で抽出したいです。教えて下さい。(例)テーブル1:商品名A 商品番号2・・・・・、フォーム上で商品番号2と入力したら商品名Aだけを表示したい。

  • Access フィールドから値を取り出す

    お世話になります。 ・テーブル 会員番号(テキスト),商品名(テキスト),売上数(数値) 「商品名」には商品Aと商品Bがあります。 会員番号ごとに商品Aと商品Bそれぞれの売上数を分けて表示したいです。 ・クエリ SELECT 会員番号,商品A,売上数A,商品B,売上数B WHERE テーブル.商品名 = "商品A" = 商品A AND テーブル.商品名 = "商品B" = 商品B FROM テーブル GROUP BY 会員番号,商品A,売上数A,商品B,売上数B; 会員番号ごとに並べたいので、クエリをグループ化したところ、 会員番号「1」の商品Aは3件、商品Bは10件だった場合の結果として ---------------------------- 会員番号,商品A,売上数A,商品B,売上数B 1,商品A,3,商品B,3 1,商品A,10,商品B,10 ---------------------------- このように会員番号が重複して表示されてしまいます。 欲しい結果 ---------------------------- 会員番号,商品A,売上数A,商品B,売上数B 1,商品A,3,商品B,10 ---------------------------- 同一の会員番号につき、商品と売上数を1行でまとめられないでしょうか。 どうぞよろしくおねがいいたします。

専門家に質問してみよう