- ベストアンサー
重複を削除し顧客リストを作成
いつも回答いただきありとうございます。とても助かり勉強になってます。 シート1に下記のような日付別の利用管理表があります。この表から重複する名前を削除したシート2のような顧客リストを作成したいのですがどうしたらいいでしょうか?ご指導よろしくお願いいたします。 シート1 A B C 1 日付 名前 住所 2 1日 太郎 ○市 3 1日 花子 □市 4 3日 太郎 ○市 5 4日 花子 □市 シート2 A B 1 名前 住所 2 太郎 ○市 3 花子 □市
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
データが多いと動きが重くなるのであまりお勧めできせんが、関数で表示するなら以下のような数式を入力し、右方向に1つ、下方向に適当数オートフィルしてください。 =INDEX(B:B,SMALL(INDEX((MATCH($B$2:$B$100&$C$2:$C$100,$B$2:$B$100&$C$2:$C$100,0)<>(ROW($B$2:$B$100)-1))*1000+ROW($B$2:$B$100),),ROW(A1)))&""
その他の回答 (4)
- hallo-2007
- ベストアンサー率41% (888/2115)
一案ですが、ピボットテーブルを利用する手もあります。 データ=>ピボットテーブルとピボット・・・ のウィザードに従って新規のシートにでもピボットテーブルを作成します。 左の列に名前をドラック(おまけに、その右側にも名前を入れると回数もでます) A B データの個数 / 名前 名前 合計 花子 2 太郎 2 (空白) 総計 4 こんな感じになりますので、C列に =VLOOKUP(A5,シート1!B:D,2,FALSE) と関数を入れて下までコピィしてください。 データの更新も簡単です。 不要な行や列は非表示にすればよいです。
お礼
ありがとうございます。簡単に作成することができました こういう方法もあるんですね
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! たびたびごめんなさい。 投稿後、質問を読み返してみると A列は表示しなくて良かったのですね! Sheet2のA列を削除して、「名前」列のA2セルに入れる数式を載せておきます。 Sheet2のA2セルに =IF(COUNT(Sheet1!$D$2:$D$100)<ROW(A1),"",INDEX(Sheet1!B$2:B$100,SMALL(Sheet1!$D$2:$D$100,ROW(A1)))) として列・行方向にコピー! に訂正してください。 どうも何度も失礼しました。m(__)m
お礼
いつも詳しい説明ありがとうございます。 解り易く助かります。自分がもっと関数の勉強をしないとですね また何かありましたらよろしくお願い致します
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 ↓の画像でSheet1に作業用の列を設けます。 作業列D2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"") という数式を入れ、オートフィルで下へコピーします。 そして、Sheet2のA2セルに =IF(COUNT(Sheet1!$D$2:$D$100)<ROW(A1),"",INDEX(Sheet1!A$2:A$100,SMALL(Sheet1!$D$2:$D$100,ROW(A1)))) という数式を入れ、列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 尚、数式はSheet1の100行目まで対応できる数式です。 以上、参考になればよいのですが 他に良い方法があれば読み流してくださいね。m(__)m
- MackyNo1
- ベストアンサー率53% (1521/2850)
関数でも表示できますが、フィルタオプションの設定を利用するのが簡単です。 B列とC列のデータ範囲を選択して「データ」「フィルタ」「フィルタオプションの設定」で「重複するレコードは無視する」にチェックを入れ「OK」しこのデータ範囲を別シートにコピー貼り付けします。
お礼
いつもありがとうございます。 作成することができました。データが多いので期間を決めファイルを分割して管理しようと思います