• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:歯抜けとなっている特定の会員だけを特定したい)

購入回数1がない会員の不要データを削除する方法は?

このQ&Aのポイント
  • 購入回数1がない会員のデータをピックアップし、削除する方法について教えてください。
  • 同じ会員番号で購入回数が2以上の行(会員)のみを抽出し、不要なデータを削除したいです。
  • 不要なデータを削除するには、xls上での処理またはインポート後の処理のどちらでも構いません。

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

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

作業用の列(G列)に次の数式をセットしてフィルターで0を選択したものを削除すれば良いでしょう。 G2=COUNTIFS(B:B,B2,F:F,1) G2セルを下へ必要数コピーすれば準備完了です。 オートフィルでは多量のコピーは無理かと思います。 G2をコピーし、コピー先は現在の行番号(左上)へG3:G10000のようにタイプしてEnterキーの打鍵でコピー先を一発で指定できますので、その状態から貼り付けを行えば良いでしょう。 尚、COUNTIFS関数はExcel 2007以降のバージョンで使用できます。

mcdone
質問者

お礼

kkkkkmさんのもいいのですが、こちらはより集計中に容量オーバーでエラーになるリスクが少ないです。 こちらも試しています。ありがとうございます!

その他の回答 (5)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

高速優先手順: リストを購入回数の昇順で並べ替える リストを会員番号の昇順で並べ替える 会員番号をB列、購入回数をF列として =IF(VLOOKUP(B2,B:F,5)=1,"","削除対象") で削除対象を削除する 必要に応じて操作前に昇順の連番を振っておき、それで並べ替えてリストを復元する。

mcdone
質問者

補足

↑↑↑ だめです。>< この数式では全てが削除対象で表示されます!

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

たびたびすみません。No2の自分へのお礼を見ないうちにNo3を投稿してしまいました。なんかNo3が嫌味っぽくなってしまい申し訳ありません。悪意はありませんのでご容赦ください。

mcdone
質問者

お礼

Accessでやると早くなるということはあるのでしょうか。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

すみません tom04さんの数式を試していましたら以下のような場合が出てきたのですが、2以降に歯抜けがあるとG列に1の存在する会員さんが出てきました。「同じ会員番号で購入回数が2~5いずれかをふられている」と書かれていて「いずれか」となっていたのがちょっと気になったので…決して横槍ではありませんのでtom04さんお気を悪くしないでください。 注文日   会員番号   商品名  価格  注文番号  購入回数  G列 2014/3/2 123345678 お好み焼き 550 201401123 1      2014/3/3 123345678 お好み焼き 550 201401123 2 2014/3/4 123345678 お好み焼き 550 201401123 4     123345678 2014/3/5 123345678 お好み焼き 550 201401123 5     123345678

mcdone
質問者

お礼

kkkkkmさん 素晴らしきフォローと思いやりに感嘆。 ありがとうございます。 今回、kkkkkmさんのアイデアでいままわしています。。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

1万行で速度的に現実的なものかどうか試していませんが A列  B列    C列   D列   E列    F列 注文日 会員番号  商品名  価格  注文番号  購入回数 となっていて2行目からデータがある場合 G2に =B2&F2 と入力し H2に =IF(MATCH(B2&1,G:G,0)>0,,) として 両方の列をデータのある最終行までコピーしてください。 H列で#N/Aと表示されるのが購入回数に1がない会員のデータ行になりますので。フィルター機能を利用して#N/Aの行を表示し、削除してください。H列に0と表示されるのは購入回数1のある会員になります。

mcdone
質問者

お礼

ありがとうございます。こちらの方は断然早く実用出来です。 また先のですと、会員が重複して注文しているケース(同日2行あるケース)において、 後ろの行は1回目があるのに削除対象で出てしまします。 こちらで再度試してみます!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 1行目は項目行でデータは2行目以降にあるとします。 A~F列までデータがあるとすると Excel2007以降の場合は G2セルに =IF(COUNTIF(B$2:B2,B2)<>F2,B2,"") という数式を入れフィルハンドルでダブルクリックしてみてください。 これで回数が合わない行にその会員番号が表示されますので、 G列でオートフィルタを掛け 「テキストフィルタ」 → 「指定の値に等しくない」 → 「結果」の欄には何も入力せずOK これで空白セル以外が表示されます。 >いわゆるこの不要データを削除(クリーニング)したいのです。 というコトですので、表示されているデータを行ごとすべて範囲指定 → 右クリック → 「行の削除」 → オートフィルタ解除 → G列の削除 これで「購入回数」が一致しないデータはすべて消去されます。m(_ _)m

mcdone
質問者

お礼

tom04様 ありがとうございます! が、18万行で試となかなかに重いですね。 軽くする方法あるのでしょうか。Access等になるのでしょうか。 すばらしいのですが、なにせ重い。。

mcdone
質問者

補足

おもいのもそうなのですが、 会員が重複して注文しているケース(同日2行あるケース)において、 重複の後ろの行が1回目があるのに削除対象で出てしまします。 これでは厳しいですmm

関連するQ&A