[[20170220174613]] 『重複データの合計』(zzz) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『重複データの合計』(zzz)

初心者で申し訳ありませんが少しでも助けていただけたらと思います。
A列に品名B列に素材名C列に個数D列に寸法が入っており、月末に集計したいのですが、まず、重複の列がA列とB列とD列になります。重複をなくしC列の個数を集計したいです。マクロボタンを作って自分なりにやりましたが、何度やっても、うまくいきません。A列の重複はなくすことができ、C列の集計も出来ました。しかしながら、B列とC列の重複をなくすことができません。どのようにしたらうまくできますか?よろしくお願いします。ちなみに集計は同じSheetでも、他のSheetでも構いません。

< 使用 Excel:Excel2013、使用 OS:Windows8 >


自分なりにコーディングしたものがあるならば、まずはそれを見せてください。元データと、どういう結果になるのかも。 言葉だけでは、さっぱり判りませんよ。

なんとなく想像すると、A列とB列とD列を文字連結した値を作業列に用意しておき、作業列の重複を調べてはいかがでしょうか。
(???) 2017/02/20(月) 18:02


Sub ボタン2_Click()
Application.ScreenUpdating = False
    With Sheets("Sheet1")
        .Columns("I:J").ClearContents
        .Rows(1).Insert Shift:=xlDown       'フィルターオプション用 タイトル行 挿入
        .Range("A1:D1") = Array("A", "D")
        .Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("I1"), Unique:=True
        .Rows(1).Delete                     'フィルターオプション用 タイトル行 削除
        With .Range("I1", .Range("I" & .Rows.Count).End(xlUp)).Offset(, 1)
            .Formula = "=SUMIF(A:A,I1,D:D)"
            .Value = .Value
        End With
    End With
    Application.ScreenUpdat 先ほどは失礼いたしました。こんな感じになります

(zzz) 2017/02/20(月) 18:46


ボタンを押すと、A列の品名の重複がなくなり、D列の個数が合計されて、それぞれI列とJ列に入ります
(zzz) 2017/02/20(月) 19:49

他でも紹介したばかりですが参考になりますか

[[20161022121804]] 『集計方法』(パシリ)

(マナ) 2017/02/20(月) 20:59


マナさん回答ありがとうございました。少し解読しながらやってみます。
またどうしても出来なかったらまた質問したいと思います。
自分のわかりづらい説明に回答を本当にありがとうございました。
(zzz) 2017/02/20(月) 21:11

今のコードが理解できているなら

1)作業列を使って文字列を連結
2)フィルタオプションで転記(重複なしで)
3)SUMIFで集計
4)作業列(転記先含め2列)を削除

のほうがよかったかも。

(マナ) 2017/02/20(月) 21:23


何度も回答ありがとうございます。またいろいろな質問があったときはよろしくお願い済ます。
(zzz) 2017/02/20(月) 21:25

 こんばんわ。

 1、別シートに丸ごとコピペ
 2、A・B・D列で重複の削除
 3、C列にSUMIFSで集計

 が一番簡単じゃないでしょうか?

(sy) 2017/02/20(月) 21:29


言われていると、確かにそうですね。
回答しなきゃよかった。恥ずかしー(笑)

(マナ) 2017/02/20(月) 21:35


図番 旧図番 品番 素材 個数 寸法
ZZ 00020700-00 L11077N ADAPTER FF 5 76600 86000 3400
ZZ 00020688-00 L11075N ADAPTER FF 1 75000 85000 4700
ZZ 00217074-00 U13−1171 ADAPTER FF 2 140000 150000 4000
ZZ 00066475-00 G11−0066 ADAPTER FF 2 119600 130000 3400
ZZ 00020734-00 L11083N ADAPTER FF 1 82600 92000 3400
ZZ 01335925-00 U13−1167 ADAPTER FF 1 88900 97900 5200
ZZ 01335925-00 U13−1167 ADAPTER FF 1 88900 97900 5200
ZZ 01000427-00 U13−1152 ADAPTER FF 1 69850 79850 4200
ZZ 01000427-00 U13−1152 ADAPTER FF 1 69850 79850 4200
ZZ 00134551-00 U13−552 ADAPTER FFB 1 85000 95000 5600
ZZ 02877330-00 ZZ02877330 BUSH FF 1 55300 74900 6150
ZZ 05008112-00 ZZ05008112 CAP FFB 3 2900 4500 6000
ZZ 01571475-00 ZZ01571475 CAP FFB 4 2000 9500 4500
ZZ 01567710-00 ZZ01567710 CAP FFB 3 2000 4100 3500
ZZ 01567710-00 ZZ01567710 CAP FFB 3 2000 4100 3500
ZZ 02865510-01 ZZ02865510 GASKET FF 1 95000 106000 1000
ZZ 01595390-00 ZZ01595390 O RING FF 2 90000 95600 2800
ZZ 00823195-00 G13-1008XN O RING FF 2 151800 163000 5600
詳細なのですが、上記の重複データの削除と各品名の数量合計のやり方です
(zzz) 2017/02/20(月) 21:55

 何処が区切りか分かりません。
 セル間に , か | などを入れて区切りが分かるようにして下さい。

 と言うかもう初めの、
 >A列に品名B列に素材名C列に個数D列に寸法
 や途中の、
 >D列の個数
 とも違う、なんか言ってる事が無茶苦茶ですよ。

 本当はどの列を重複対象にしたいんですか?
 結果を集計したいのは個数ですか?
 どの列が個数ですか?

(sy) 2017/02/20(月) 22:21


図番/ 旧図番 /品番 /素材/ 個数 /寸法/
ZZ 00020700-00/ L11077N /ADAPTER /FF/ 5 /76600 86000 3400 /
ZZ 00020688-00/ L11075N /ADAPTER/ FF/ 1/ 75000 85000 4700/
ZZ 00217074-00/ U13−1171/ ADAPTER/ FF/ 2/ 140000 150000 4000 /
ZZ 00066475-0 /G11−0066/ ADAPTER/ FF/ 2/ 119600 130000 3400/
ZZ 00020734-00/ L11083N/ ADAPTER/ FF/ 1/ 82600 92000 3400 /
ZZ 01335925-00/ U13−1167/ ADAPTER /FF/ 1/ 88900 97900 5200/
ZZ 01335925-00/ U13−1167/ ADAPTER/ FF /1/ 88900 97900 5200 /
ZZ 01000427-00/ U13−1152/ ADAPTER/ FF/ 1/ 69850 79850 4200 /
ZZ 01000427-00/ U13−1152/ ADAPTER/ FF/ 1 /69850 79850 4200 /
ZZ 00134551-00/ U13−552/ ADAPTER/ FFB/ 1/ 85000 95000 5600
ZZ 02877330-00/ ZZ02877330/ BUSH/ FF/ 1/ /55300 74900 6150 /
ZZ 05008112-00/ ZZ05008112 /CAP/ FFB/ 3 /2900 4500 6000 /
ZZ 01571475-00/ ZZ01571475/ CAP/ FFB/ 4/ 2000 9500 4500 /
ZZ 01567710-00/ ZZ01567710 /CAP/ FFB/ 3 /2000 4100 3500 /
ZZ 01567710-00/ ZZ01567710 /CAP/ FFB/ 3 /2000 4100 3500 /
ZZ 02865510-01/ ZZ02865510 /GASKET/ FF/ 1 /95000 106000 1000 /
ZZ 01595390-00/ ZZ01595390 /O RING/ FF/ 2/ 90000 95600 2800 /
ZZ 00823195-00 /G13-1008XN /O RING/ FF/ 2/ 151800 163000 5600/
syさん申し訳ありませんでした。
旧図番と図番、品名、素材、寸法の重複削除と個数の合計です
(zzz) 2017/02/20(月) 22:36

 以下の手順をマクロ記録して下さい。
 元データのシートは Sheet1 と言う前提で数式を書いてます。(適切なシート名に変更して下さい)

 1、元のシート全体を選択して、キーボードの[Ctrl]+[c]
 2、貼り付け先のシートを選んで、A1セルだけ選択して、[Ctrl]+[v]
 3、[Ctrl]+[Shift]+[*]
 4、リボンの[データ]タブの[重複の削除]を選択して、出てきたダイアログで、[個数]のチェックだけ外して[OK]をクリック
 5、E2セルを選択して、以下の数式を入力
    =SUMIFS(Sheet1!E:E,Sheet1!A:A,A2,Sheet1!B:B,B2,Sheet1!C:C,C2,Sheet1!D:D,D2,Sheet1!F:F,F2)
 6、オートフィルで必要分下に数式コピー

 まずは上記でマクロ記録でコードを作成し、不要なSelectなどを省いて加工すれば完成です。
 数式のセルを可変にしたいけど分からないと言う時は、上記で作成したコードを提示して、再質問して下さい。

(sy) 2017/02/20(月) 23:01


syさん回答ありがとうございました。今から専念してみます。
(zzz) 2017/02/20(月) 23:06

何度もすみません。

図1
A列/B列/C列/D列/E列F列/G/H/I列/を使用します。
ZZ/00066505-00 /G11−0078/ADAPTER/FFB/ 1/55200/63000/2800
ZZ/00066505-00/G11−0078/ADAPTER/FFB/ 4/55200/63000/2800
ZZ/00030489-00/G13−1013/O RING /FF /2/69700/76500/3400
ZZ/00030489-00 /G13−1013/O RING /FF /2/69700/76500/3400
ZZ/00586827-00 /G15−1039/GASKET /FFB/ 2/56000/71000/1300
ZZ/01366952-00 /G13−1146/O RING /FFB/ 1/65000/71000/3000
ZZ/01366952-00/G13−1146/O RING /FFB/ 1/65000/71000/3000

図2

ZZ/00066505-00 /G11−0078/ADAPTER/FFB/ 5/55200/63000/2800
ZZ/00030489-00/G13−1013/O RING /FF /4/69700/76500/3400
ZZ/00586827-00 /G15−1039/GASKET /FFB/ 2/56000/71000/1300
ZZ/01366952-00 /G13−1146/O RING /FFB/ 3/65000/71000/3000

図1から図2のように重複をなくしてG列の数字を合計したいです。マクロボタン1つで
どうにかやりたいのですが助けてください。
いまだにできません。大量にあるのでできればマクロボタンでお願いします。
(zzz) 2017/02/21(火) 13:30


何度もすみません。 訂正版です。

図1
A列/B列/C列/D列/E列F列/G/H/I列/を使用します。

 ZZ/00066505-00 /G11−0078/ADAPTER/FFB/ 1/55200/63000/2800 
ZZ/00066505-00/G11−0078/ADAPTER/FFB/ 4/55200/63000/2800 
ZZ/00030489-00/G13−1013/O RING /FF /2/69700/76500/3400 
ZZ/00030489-00 /G13−1013/O RING /FF /2/69700/76500/3400 
ZZ/00586827-00 /G15−1039/GASKET /FFB/ 2/56000/71000/1300 
ZZ/01366952-00 /G13−1146/O RING /FFB/ 1/65000/71000/3000 
ZZ/01366952-00/G13−1146/O RING /FFB/ 1/65000/71000/3000 

図2

ZZ/00066505-00 /G11−0078/ADAPTER/FFB/ 5/55200/63000/2800
ZZ/00030489-00/G13−1013/O RING /FF /4/69700/76500/3400
ZZ/00586827-00 /G15−1039/GASKET /FFB/ 2/56000/71000/1300
ZZ/01366952-00 /G13−1146/O RING /FFB/ 2/65000/71000/3000

図1から図2のように重複をなくしてG列の数字を合計したいです。マクロボタン1つで

 どうにかやりたいのですが助けてください。 
いまだにできません。大量にあるのでできればマクロボタンでお願いします

(zzz) 2017/02/21(火) 13:36


B列のデータ(図番?旧図番?)の末尾にスペースが入っているものと入っていないものがあるので、A,B,D列連結して考えると、重複なしになってしまいますよ? もし実際のデータをコピペしたのがこの値なのだとしたら、末尾空白が集計の邪魔をしていませんか?

空白の問題を修正したならば、後はB列だけでもユニークなようですので、SUNIF関数を使ってみるとか、ピボットテーブル化してみるとか、コーディングしなくとも、やり方はいろいろあるかと思います。
(???) 2017/02/21(火) 13:49


回答ありがとうございます。スペースは入らないです。
(zzz) 2017/02/21(火) 14:04

>大量にあるのでできればマクロボタンでお願いします
マクロボタンをシート上に用意するのは簡単ですが、
マクロを作るのもzzzさんですよ?

丸投げするのもどうなんでしょうね。。。

手作業でもそんなに難しくないと思いますが。。。。

まずは集計するキーになる列で並べ替え
次に集計機能で、各グループの小計を挿入
ついで、明細を非表示に

という手順で出来ると思います。
あ、元データはいじってはだめなら、シートごとコピーしてから試してください。

その手順で出来るなら、マクロの記録をしてみて、コードを調べます。
で、そのコードを汎用的に使えるよう整理したら、マクロ完成になるはずです。

まずは手作業でサクッっと処理できるようになりたいですね^^
あぁ、関数でやりきる方法もあるかも知れませんね^^

(まっつわん) 2017/02/21(火) 14:48


まっつわんさんm、回答ありがとうございます。
なかなかの初心者な自分なので苦労してます。

(zzz) 2017/02/21(火) 14:56


 何で毎回レイアウトが変わるんですか?
 しかも個数の列も毎回違う列を提示してますね。

 セルの区切りを分かるようにして、どの列が個数か言って下さいと言いましたよね。

 しかも今提示してるレイアウトならどう見てもF列が個数じゃ無いんですか?

 回答者にはあなたのPC画面は見えません。
 でもあなたの目の前には実際のデータがあるんじゃ無いんですか?
 画面を見たらどの列が個数かなんて間違えるような事じゃ無いでしょう?
 いい加減な嘘ばかりついてると誰も相手にしてくれなくなりますよ。

 その辺はどのようにお考えなんでしょうか?

(sy) 2017/02/21(火) 21:27


もうやめます。やりません。今までありがとうございました

(zzz) 2017/02/21(火) 21:35


説明が下手ですみませんでした。わかりやすく書こうと思って何度も書き方が変わってしまいました。
だからと言って初心者にそんなに強く言うのはどうかと思います。
もっと親身になって回答してくれると思ったのが間違いでした。最後に1つだけ言わせてください。SYさん本当に今まで回答ありがとうございました。頑張ってみますね。
(zzz) 2017/02/21(火) 22:00

 初心者と嘘をつくのは何か関係があるんですか?

 (sy) 2017/02/20(月) 22:21
 ここまでは初心者なので質問の仕方など分からないから、まぁ仕方ないと思えますね。
 なので「無茶苦茶です。」くらいしか言ってません。

 ですがこれ以降は、「本当の重複の列と個数の列を言って下さい。」と私は言ってますよね。
 ですのでこれ以降は実際の列を提示しないといけないと言う事は分かりますよね?
 もう初心者は関係ないですね。
 日本語が分かるかどうかだけの問題です。

 なのに何で (zzz) 2017/02/20(月) 22:36 で実際と違うレイアウトと個数の列を提示されたんですか?
 レイアウトは加工が難しくて間違えたはまだ分かりますが、
 個数列は1つしか無いんですから実際の画面を見れば間違えるなんてありえないと思いませんか?

 それと(zzz) 2017/02/21(火) 13:36 も本当に個数列はG列なんですか?

 私が言いたいのはそれだけです。

 最後に私は降りますが、頑張って下さい。

(sy) 2017/02/21(火) 22:50


 1.レイアウトはこうなんですか?

  行  __A__  ______B______  ________C________  _______D_______  ___E___  __F__  __G__  __H__  __I__
   1  図番   旧図番         品番               素材1            素材2    個数   寸法1  寸法2  寸法3
   2  ZZ   00066505-00    G11−0078   ADAPTER   FFB      1   55200  63000   2800
   3  ZZ   00066505-00    G11−0078   ADAPTER   FFB      4   55200  63000   2800
   4  ZZ   00030489-00    G13−1013   O RING     FF       2   69700  76500   3400
   5  ZZ   00030489-00    G13−1013   O RING     FF       2   69700  76500   3400
   6  ZZ   00586827-00    G15−1039   GASKET     FFB      2   56000  71000   1300
   7  ZZ   01366952-00    G13−1146   O RING     FFB      1   65000  71000   3000
   8  ZZ   01366952-00    G13−1146   O RING     FFB      1   65000  71000   3000

 2.重複の判定は、品番だけで可能ですか?

 3.同じ品番で塊になっているんですか?
   それとも、下の方に離れて「G11−0078」がまた有ったりすることもあるんですか?

(半平太) 2017/02/22(水) 00:02


この図で行くと、Aが記号、Bが図番、Cが旧図番、Dが品名、Eが素材、Fが個数、GからIが寸法です。
重複なのですが、記号、図番、旧図番、品名、素材、寸法です。最終的には重複をなくして個数を合計したいのが目的なのですが。
ずっと説明が下手なせいか回答くださる人たちに迷惑をおかけしてばかりで。
下のほうにも同じG11-0078とか存在してます。
(zzz) 2017/02/22(水) 09:45

因みに、1つの品名に対して、記号、図番、旧図番、寸法の変動はありません。

(zzz) 2017/02/22(水) 09:51


>この図で行くと、
んと、重箱の隅をつつくようで、恐縮なんですが。
こういう言い方をされると
「実際は違うのだけど、この図で我慢するか。。。」
と言っておられるように深読みしてしまいます。
項目名が少し違うってことですかね?

あと、
「初心者」を連呼するのもどうかと思います。
「初心者」といえば何でも許される魔法の言葉ではないです。
まぁ、そういうつもりはないのは解ってますが、
初心者を連呼してみたところでどうにかなるものでもないです。
当然、上手く説明出来てないのだから、きつい言葉で指摘を受けることもあるでしょう。
ですが、指摘は真摯に受け止めつつ、それを乗り越えていかないと、
欲しい情報は得られませんよ。

とにかく説明は正確にしていただかないと、
無駄なやり取りが増えるばかりです。

シートのイメージを上手くここで表現できないなら、
エクセルのデータを、カンマ区切りのテキストファイルで保存して、
その出来たテキストを貼り付けてみてはいかがでしょうか?
それなら、回答側でコピペして再現可能になると思います^^
(あまり大量のデータを貼り付けられても困りますが。。。。)
あ、シートをそのままコピペしたあと、行の先頭に半角スペースを入れると、
見やすく表示されるようです^^
(敢えてA列に空白列挿入してコピペするといいかも?)
プレビューで確認して整形してみてください^^

完成のイメージは↓こういう感じですか? (幅を少なくして読みやすくするためセル内の折り返しになってます。)

    ┌─┬───┬────┬───┬─┬───┬───┬───┬───────┐
    │記│      │        │      │素│      │      │      │              │
    │号│図番  │旧図番  │品名  │材│寸法1 │寸法2 │寸法3 │合計 / 個数   │
    │  │      │        │      │1 │      │      │      │              │
    ├─┼───┼────┼───┼─┼───┼───┼───┼───────┤
    │Z│000304│G13−│O-R │F│ 69700│ 76500│  3400│             4│
    │Z│89-00 │1013│ING│F│      │      │      │              │
    ├─┼───┼────┼───┼─┼───┼───┼───┼───────┤
    │Z│000665│G11−│ADA│F│      │      │      │              │
    │Z│05-00 │0078│PTE│F│ 55200│ 63000│  2800│             6│
    │  │      │        │R    │B│      │      │      │              │
    ├─┼───┼────┼───┼─┼───┼───┼───┼───────┤
    │Z│005868│G15−│GAS│F│      │      │      │              │
    │Z│27-00 │1039│KET│F│ 56000│ 71000│  1300│             2│
    │  │      │        │      │B│      │      │      │              │
    ├─┼───┼────┼───┼─┼───┼───┼───┼───────┤
    │Z│013669│G13−│O-R │F│      │      │      │              │
    │Z│52-00 │1146│ING│F│ 65000│ 71000│  3000│             2│
    │  │      │        │      │B│      │      │      │              │
    └─┴───┴────┴───┴─┴───┴───┴───┴───────┘

ならば、マクロで処理せず、
ピボットテーブルを使うといいでしょう。

個数を値フィールドに入れ
その他の項目は行ラベルのフィールドに配置します。
そして、ピボットテーブルツールのデザインで、
小計→小計を表示しない
総計→行と列の集計をしない
レポートのレイアウト→表形式で表示
レポートのレイアウト→アイテムのラベルを繰り返す

としたら、上記のように出来そうです^^
マクロで処理しないとだめなのかなぁ。。。?

(まっつわん) 2017/02/22(水) 10:31


まっつわんさん回答ありがとうございました。
今まで色々とご迷惑おかけしました。
(zzz) 2017/02/22(水) 11:08

>今まで色々とご迷惑おかけしました。
んー。ごめん。そんなことはなんてことないですが、

思い通りの結果が得られたので解決で、
マクロ化は今回は諦めるという事ですか?

気分的に凹んでいるのは解りますが、
どうしたいのか、伝わらないです。

解決じゃないけど終わりにしたいってことかなぁ。。。

(まっつわん) 2017/02/22(水) 11:26


やってみた結果、お陰様でスムーズにできました。マクロは自分でも説明つかないので、もっと勉強してから質問することににします。まっつわんさんわかりやすくありがとうございました。解決したと言うことで大丈夫です。
(zzz) 2017/02/22(水) 11:40

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.