メインコンテンツへスキップ

XNUMXつの列の値に基づいて行をすばやくマージしてからExcelで計算を行うにはどうすればよいですか?

たとえば、ある範囲のデータがあり、XNUMXつの列に重複がある場合、列A(重複がある)に基づいて行をマージし、次に示すスクリーンショットのように、マージされた行に基づいて別の列に計算を実行します。

Excelでは、XNUMXつの列の値に基づいて行をマージする簡単な方法はありませんが、ここでは
重複する行をマージしてから、別の列で合計または他の計算を行うのに役立つトリック。


矢印青い右バブル XNUMXつの列に基づいて行をマージし、VBAで値を合計します

重複する行をマージしてから別の列の値を合計するのに役立つVBAコードがあります。

Firefox、Chrome、Internet Explore 10などの複数のExcelワークブック/ Wordドキュメントのタブブラウジングと編集!

Firefox / Chrome / IEで複数のウェブページを表示し、対応するタブをクリックしてそれらを簡単に切り替えることはおなじみかもしれません。 ここで、Officeタブは同様の処理をサポートしており、XNUMXつのExcelウィンドウまたはWordウィンドウで複数のExcelワークブックまたはWord文書を参照し、タブをクリックすることでそれらを簡単に切り替えることができます。 無料でクリック 30-Office TabのXNUMX日トライアル!

エクセル

1。 押す F11 + Alt 有効にするキー アプリケーション向け Microsoft Visual Basic ウィンドウをクリックし、 インセット > モジュール 以下のVBAコードをコピーして新しいものに貼り付けます モジュール 窓。

VBA:XNUMXつの列の値に基づいて行をマージします

Sub MG30Nov12()
'Updateby20150519
Dim Rng As Range
Dim InputRng As Range
Dim nRng As Range
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set InputRng = InputRng.Parent.Range(InputRng.Columns(1).Address)
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For Each Rng In InputRng
    If Not .Exists(Rng.Value) Then
        .Add Rng.Value, Rng.Offset(, 1)
    Else
        .Item(Rng.Value).Value = .Item(Rng.Value).Value + Rng.Offset(, 1)
            If nRng Is Nothing Then
                Set nRng = Rng
            Else
                Set nRng = Union(nRng, Rng)
            End If
    End If
Next
If Not nRng Is Nothing Then
    nRng.EntireRow.Delete
End If
End With
End Sub

2。 押す F5 またはクリック ラン ボタンをクリックしてVBAを実行すると、機能するデータ範囲を選択するためのダイアログが表示されます。 スクリーンショットを参照してください:

3つの列に基づいて列をマージするドキュメントXNUMX

3.動作範囲を選択したら、をクリックします OK。 これで、データは最初の列でマージされ、XNUMX番目の列の値が合計されました。

4つの列に基づいて列をマージするドキュメントXNUMX

Note:このVBAコードは、最初の列とXNUMX番目の列の合計値に基づいてマージするときに正しく機能します。


矢印青い右バブル XNUMXつの列に基づいて行をマージしてから、Advanced CombineRowsで値を合計します

VBAコードに慣れていない場合は、 高度な結合行 サードパートアドインツールの機能– Kutools for Excel 重複する行を簡単かつ迅速にマージしてから、別の列の値を合計します。

後の 無料インストール Kutools for Excel、以下のようにしてください:

1.使用するデータを選択し、をクリックします クツール > マージ&スプリット > 高度な結合行。 スクリーンショットを参照してください:

doc Advanced Combine Row 1

2.次に、ポップダイアログで、他の列をマージする列を選択し、をクリックします。 プライマリー キーを押し、別の列をクリックして、 計算 次に選択する 合計.

先端:選択した範囲にヘッダーがある場合は、チェックしてください 私のデータにヘッダーがあります、チェック フォーマットされた値を使用する マージ後もフォーマットを保持します。

6つの列に基づいて列をマージするドキュメントXNUMX

3。 次に、をクリックします Ok。 これで、データはプライマリ列に基づいてマージされ、別の列が合計されます。 スクリーンショットを参照してください:

7つの列に基づいて列をマージするドキュメントXNUMX


矢印青い右バブル XNUMXつの列に基づいて行をマージしてから、高度な結合行を使用して他の列に対してさまざまな操作を実行します。

高度な結合行 ある列の重複行をマージしてから別の列を合計できるだけでなく、XNUMXつの列の重複行をマージしてから他の列に対して異なる操作を実行できるため、強力です。

以下のスクリーンショットに示すようなデータの範囲があり、列Bの値と、列Aに基づいて列Cの値の合計の両方が必要であるとします。
8つの列に基づいて列をマージするドキュメントXNUMX

後の 無料インストール Kutools for Excel、以下のようにしてください:

1.データ範囲を選択し、をクリックします クツール > マージ&スプリット > 高度な結合行。 スクリーンショットを参照してください:

doc Advanced Combine Row 1

2。 の中に 列に基づいて行を組み合わせる ダイアログ、次のようにします。

(1)結合する列をクリックし、をクリックします。 主キー;

10つの列に基づいて列をマージするドキュメントXNUMX

(2)データを結合する列をクリックし、をクリックします 組み合わせる、次にリストから必要なセパレータをXNUMXつ選択します。

11つの列に基づいて列をマージするドキュメントXNUMX

(3)値を合計する列をクリックして、をクリックします。 計算、および選択 合計.

12つの列に基づいて列をマージするドキュメントXNUMX

3。 クリック Ok。 これで、次のような結果が表示されます。

13つの列に基づいて列をマージするドキュメントXNUMX

高度な結合行 この機能では、1つの列に基づいて行をマージしてから、他の列の最初または最後のデータをカウント、平均化、保持することもできます。 

最高のオフィス生産性向上ツール

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have the same/similar question. I am trying to sum all of the columns to the right of the reference cell but it only sums the one. How do I get it to sum all those to the right individually?
This comment was minimized by the moderator on the site
Hey, your module used to work for big tables as well (eg. you want to sum up according to Year but you have Sales 1, Sales 2, Sales 3....etc). But now it only gets the first column right (Sales 1) and all others are not summed correctly. Did you change anything?
Thanks!
This comment was minimized by the moderator on the site
Hi, IK, maybe you can use the sumproduct function SUMPRODUCT((A2:A10=”Pen”)*(B2:E10)) to calculate them one by one. A2:A10 is the range contain the lookup value, pen is the criterion, B2:E10 is range that you want to sum based on criterion.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations