• 締切済み

エクセルの複数のフィールドの重複のチェック方法を教えて!

エクセルの複数のフィールドの重複のチェック方法を教えて! 下のようなテーブルで3人の顧客IDより月別のピボットテーブルをエクセルで作成すると IDを重複してカウントしてしまいます。Aランク顧客IDは2010/1に3のカウントなのですが、顧客数は1としたい場合、CustomerIDと購買月が重複せずにカウントさせる方法や関数を教えてください。 CustomerID ランク 購買月   1017        A    2010/1 1017        A    2010/1 1017        A    2010/1 1017        A    2010/2 1017        A 2010/3 226424    A 2010/2 226424 A 2010/ 2226424 A 2010/2 226424 A 2010/3 226424 A 2010/3 823622 B 2010/2 823622 B 2010/2 823622 B 2010/3 823622 B 2010/3 1205 B 2010/2

みんなの回答

noname#192382
noname#192382
回答No.1

次のマクロご希望の計算が出来ました。お試し下さい。 行数はfor next文のところで指定してください。現在は16としています。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2010/5/3 ユーザー名 : ' ' Range("A1:C1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Dim gyo1 As Integer, gyo2 As Integer, retu As Integer, endgyo As Integer, id As Variant, rnk As Variant, tuki As Variant 'InputBox (endgyo) Worksheets("Sheet1").Activate gyo1 = 2 id = Cells(gyo1, 1) rnk = Cells(gyo1, 2) tuki = Cells(gyo1, 3) Worksheets("Sheet2").Activate gyo2 = 2 Cells(gyo2, 1) = id Cells(gyo2, 2) = rnk Cells(gyo2, 3) = tuki gyo2 = gyo2 + 1 'MsgBox (endgyo) For gyo1 = 3 To 16 Worksheets("Sheet1").Activate 'MsgBox (id) 'MsgBox (Cells(gyo1, 1)) If Cells(gyo1, 1) = id And Cells(gyo1, 2) = rnk And Cells(gyo1, 3) = tuki Then Else id = Cells(gyo1, 1) rnk = Cells(gyo1, 2) tuki = Cells(gyo1, 3) Worksheets("Sheet2").Activate Cells(gyo2, 1) = id Cells(gyo2, 2) = rnk Cells(gyo2, 3) = tuki gyo2 = gyo2 + 1 End If 'id = Cells(gyo1, 1) 'rnk = Cells(gyo1, 2) 'tuki = Cells(gyo1, 3) Next End Sub

otxuchan
質問者

お礼

ありがとうございます! 大変参考になりました。 重複に対する考えが深まりました。 今後ともよろしくお願いします。

関連するQ&A

  • 複数のエクセルファイルから重複をチェック

    複数のエクセルファイルを見て、重複を確認したいです。 例えばですが、顧客データの入ったエクセルが月に1回納品されるとします。 その納品されたエクセルの顧客データの中に、今までのファイルのデータと重複するデータがあるか確認する方法はあるでしょうか? 2つ、3つくらいならカウントイフでできるようですが、毎月増えるものに対しては厳しいのかなと思っています。 何か良い方法があれば教えて欲しいです。

  • Excelで重複チェックの方法

    重複データのチェックについて教えてください。 シート1にA支店の顧客データ、シート2にB支店の顧客データがあります。シートの構成は、A列に名前、B列に電話番号があります。 これで、A支店に顧客登録されていて、同じくB支店にも登録されている人を選び出し、支店間で同一人物を登録しないようにしたいのですが、どのようにしたら良いでしょうか。 私が考えるにはA列の名前でVLOOKUPを使えばいいと思うのですが、これだと同姓同名のダブりチェックが出来ないですね。名前が同じなら電話番号で比較しようと思うのですが、良く分かりません。 シート1のA支店を基準にしてシート2のB支店と比較し、重複していれば仮にC列に「重複」と表示させる。 ・・・としたいのですが、どなたか教えてください。

  • 重複したデータを1つにまとめる方法

    はじめまして。困っているので教えてください。 ピボットした後のデータなのですが、A列に 商品コード、B列以後には 売上高が月別に表示されています。 もともと世界各国のデータをまとめたものなので、同じ商品が各国で売られており、A列には同じ商品コードがたくさんあります。 この重複したコード・月別の売上高を1行に合計してまとめたいのですが、良い方法が思いつきません。 1000行以上もあるデータなのですが、今までは1つ1つ SUMをしてまとめていました。 とても時間がかかるので、何か良い方法があれば教えてください!

  • SQL:重複を削除した場合の別テーブルの更新

    下記のようなことを行いたいのですが、もう数十時間悩んでおり、このままだとクビになります。 以下のようなテーブルが2つあります ■テーブルA 顧客ID なまえ 内線 ―――――――― 001、 佐藤、 001 ※同じ(これだけ残す) 002、 鈴木、 002 003、 田中、 003  004、 佐藤、 001 ※同じ(削除) 005、 佐藤、 004 006、 鈴木、 005 007、 佐藤、 001 ※同じ(削除) ■テーブルB 伝票ID 顧客ID 購入物 001、 001、 ガム ※対応する顧客は残る 002、 003、 チョコレート 003、 004、 塩  ※対応する顧客が残らない 004、 006、 ガム 005、 002、 塩 006、 007、 塩  ※対応する顧客が残らない テーブルAの佐藤4人中3人は、名前も内線も同じなので 顧客IDは一番小さいものだけ残し、あとは同一とみなし重複行を削除します。 そうするとテーブルBの伝票IDの001、003、006の顧客IDは全部が佐藤だったのですが 重複を削除してしまったため、003と006に対応する顧客がテーブルAから消えてしまいます。 なので、テーブルAの重複を削除するときに、同時にテーブルBの顧客IDも 一緒に一番小さい顧客IDに更新したいのです。 どうか宜しくお願いいたします。

  • Access 複数テーブルをまとめる

    こんにちは! 過去記事を検索しましたが、該当がなく、苦戦しております… お知恵をお貸し下さいm(__)m テーブル T顧客…顧客ID(主キー)、名前、… T書類1…顧客ID(重複キー有)、書類1ID、… T書類2…顧客ID(重複キー有)、書類2ID、… T書類3…顧客ID(重複キー有)、書類3ID、… T書類4…顧客ID(重複キー有)、書類4ID、…  ・  ・  ・ その他に複数同じような構造のテーブルがあります。 テーブル内には他に様々なフィールドがありますが、同一内容の結合できるフィールドは上記のみです。 上記のテーブルですべての書類IDを取ってきたいのですが、 全テーブルを顧客IDと結合し、選択クエリで抽出すると      顧客ID | 名前 | 書類1ID | 書類2ID | 書類3ID | 書類4ID  1  |  Aさん |  10  |  5 |  20  |  26  1  |  Aさん |  10  |  30 |  20  |  25  1  |  Aさん |  10   |  4 |  20  |  26  1  |  Aさん |  10   |  6 |   20  |  25  2  |  Bさん |  30  |  13 |  25  |  5  2  |  Bさん |  30   |  10 |  26  |  5  2  |  Bさん |  30   |  13 |  26  |  5  2  |  Bさん |  30  |  10 |  25  |  5 のような値が出てきてしまいます…当たり前の結果ですが… やりたいこととして、 (1)一つのテーブルかクエリで抽出 顧客ID   名前   書類1ID   書類2ID   書類3ID   書類4ID  1     Aさん   |  10  |  5  |  20  |  26               |     |  30  |     |  25               |     |  4               |     |  6    2     Bさん   |  30  |  13  |  25  |  5               |     |  10  |  26   のように重複をなくし、 (2)更にまとめたものにしたいです。 顧客ID   名前   書類1ID   書類2ID   書類3ID   書類4ID  1     Aさん     10     5,30,4,6     20     25,26  2     Bさん     30      10,13     25,26     5 最終的に上記にまとまったものをフォームにして、顧客IDごとに抽出し、 顧客ごとの各書類のIDはこれとこれですよ!みたいにしたいのです! 説明が下手で申し訳ありませんm(__)m Access初心者で、独学でコツコツやっているので、知識が乏しいです… 調べてみるとユニオンクエリとかでできるような記事はありますが、 SQL文なども理解ができずに苦戦しております… お手数ですが、ご教示の程 よろしくお願い申し上げます。

  • Excel2007 複数重複チェック

    Excel2007で、複数条件の重複チェックの方法を教えてください。 以下の表があります。 A1:あああ B1:A C1:=IF(COUNTIFS($A$1:$A$4,A1,$B$1:$B$4,B1)>1,"重複","") A2:いいい B2:B  C2:=IF(COUNTIFS($A$1:$A$4,A2,$B$1:$B$4,B2)>1,"重複","") A3:あああ B3:A C3:=IF(COUNTIFS($A$1:$A$4,A3,$B$1:$B$4,B3)>1,"重複","") A4:いいい B4:B  C4:=IF(COUNTIFS($A$1:$A$4,A4,$B$1:$B$4,B4)>1,"重複","") C1~C4には"重複"が表示されますが、これを、重複しているグループ で表示する方法はありますでしょうか? 期待する結果 A1:あああ B1:A C1:グループ1 A2:いいい B2:B  C2:グループ2 A3:あああ B3:A C3:グループ1 A4:いいい B4:B  C4:グループ2 C列に表示する文字は、どれとどれが組みになっているかわかればなんでも結構です。 すみませんが、Excelで実行する場合と、マクロで行う場合のサンプルソース を教えていただけないでしょうか? よろしくお願いします。

  • 重複チェックである値はチェックしない方法

    エクセルの重複データを以下関数でチェックしています。 =IF(COUNTIF(A:A,A2)>1,”重複”,””) 例えばA列に○が複数入力されていた場合、○も重複としてみなされます。 これをカウントしないためには、どうすればいいかわかりますか? 複数条件で○を省くことができれば可能ですか?

  • 条件指定と重複チェック後のカウント

    MySQLを最近触り始めたばっかりで 頭を抱えています どなたか知恵を貸してくれませんでしょうか; ID |code|process 100|A |a001 100|A |a001 100|A |a002 100|B |a003 200|C |a004 *ID単位のAに対するprocess数を表示したい *重複processは1とカウント ID |process数 100|2 200|0 最終的に上記のように表示させたいのですが 方法が分かりません。。。 whereで A を条件指定にすると code Aを持たないID 200が表示されなくなるので whereを使用することもできず・・・ 条件指定と重複チェック後のカウントが出来る方法はありませんでしょうか?

    • ベストアンサー
    • MySQL
  • エクセル2010 ピボットテーブルについて

    エクセル2010のピボットテーブルで、元データの中に売上月とIDと社名と売上金額の4項目があります。 これらを月別ID別会社別に集計しています。 レポートフィルタ:売上月 行ラベル:ID、社名 値:売上金額 としています。 同じIDのものが毎月売上が上がるのですが、7月から社名が変わったものは1~6月までの社名の行と7月からの新社名の行と2行になります。 これをピボットテーブル内で新社名だけの行を表示したいです。IDは同じなので売上金額は1~7月の合計を表示させたいのですが可能でしょうか・・・ 元データのリストにIDが重複している中の、一番下の行の社名をピボットに表示させるイメージです。 わかりにくいかもしれないですが、助けてください!!

  • エクセルで重複を除いた日付のカウント(条件付き)

    過去の記録にもなく、困っています。 エクセルで(A列の)日付をカウントしたいのですが、重複して困っています。 「C1」に任意の日付(○月○日)を入れると、「D1」に○月○日以下の日付がカウントされるようにしたいのです。      A     B    C     D 1  4月5日         2  4月6日 3  4月6日 4  4月6日 5  4月7日 6  4月7日 7  4月8日 D1に =COUNTIF(A:A,"<="&C1) といれてみると、重複してカウントされてしまうのですが、重複を除いてカウントがしたいのです。 ちなみに(C1)に「4月7日」を入れると、(D1)に「3」になるようにしたいのに、重複して「6」となってしまいます。 おいそがしいと思いますが、どうかご教授をお願いいたします。