人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelのマクロに関する質問です。良い回答は、200ポイント差し上げます。
重複したデータ([機器名]と[オプション]が一致している)がある場合、
[値]の数値を合計したい。下記に、更新前と更新後のイメージを記載しました。
※行は2000行位あります。
※列は[機器名][オプション][値]の他にも複数あります。

【Aシート】(更新前)
3 機器名 オプション 値
4 テレビ スイッチ 3
5 ビデオ リモコン -5
6 テレビ スイッチ 3
7 ビデオ リモコン 10

【Aシート】(更新後)
3 機器名 オプション 値
4 テレビ スイッチ 6
5 ビデオ リモコン 5

マクロでの回答は、ソースも記述願います。
どうか宜しくお願いします。

●質問者: anim130M
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:Excel イメージ オプション スイッチ ソース
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●200ポイント ベストアンサー

機器名とオプションがA列とB列に、値がC列にあるとした場合です。

Sub Macro()
 Dim i As Long
 Dim j As Long
 Dim lastRow As Long
 
 lastRow = Cells(Rows.Count, "A").End(xlUp).Row
 
 For i = lastRow To 5 Step -1
 For j = 4 To i - 1
 If Cells(i, "A").Value = Cells(j, "A").Value And _
 Cells(i, "B").Value = Cells(j, "B").Value Then
 Cells(j, "C").Value = Cells(j, "C").Value + Cells(i, "C").Value
 Rows(i).Delete
 Exit For
 End If
 Next j
 Next i
End Sub
◎質問者からの返答

回答いただきありがとうございます。

For i = lastRow To 5 Step -1 ← 「5」はどのように指定すればよろしいでしょうか?


2 ● a-kuma3
●5ポイント

この程度なら、VBA を使わなくても、ピボットテーブルで一発。

データがこうだとしたら、

[f:id:a-kuma3:20110201224332j:image]

「挿入」→「ピボットテーブル」で、

[f:id:a-kuma3:20110201224330j:image]

という感じ (@ Excel 2007)。

◎質問者からの返答

回答頂きありがとうございます。


3 ● きあ
●5ポイント

VBAを用いない回答として。(ほかの列というのを無視します)

D列に、=A&B と入力。結果、D列にテレビスイッチという文字列が出来上がります。

これを、ピボットテーブル、もしくは集計を利用し、固有値(重複しない値)を取得します。

上記の固有値をE列に持つとして、F列に、=sumif([範囲を指定],[E列の該当セル],[C列])とすると、求めたい値が取得できます。

◎質問者からの返答

回答いただきありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ