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.動作範囲を選択したら、をクリックします OK。 これで、データは最初の列でマージされ、XNUMX番目の列の値が合計されました。
Note:このVBAコードは、最初の列とXNUMX番目の列の合計値に基づいてマージするときに正しく機能します。
XNUMXつの列に基づいて行をマージしてから、Advanced CombineRowsで値を合計します
VBAコードに慣れていない場合は、 高度な結合行 サードパートアドインツールの機能– Kutools for Excel 重複する行を簡単かつ迅速にマージしてから、別の列の値を合計します。
後 無料インストール Kutools for Excel、以下のようにしてください:
1.使用するデータを選択し、をクリックします クツール > マージ&スプリット > 高度な結合行。 スクリーンショットを参照してください:
2.次に、ポップダイアログで、他の列をマージする列を選択し、をクリックします。 プライマリー キーを押し、別の列をクリックして、 計算 次に選択する 合計.
先端:選択した範囲にヘッダーがある場合は、チェックしてください 私のデータにヘッダーがあります、チェック フォーマットされた値を使用する マージ後もフォーマットを保持します。
3。 次に、をクリックします Ok。 これで、データはプライマリ列に基づいてマージされ、別の列が合計されます。 スクリーンショットを参照してください:
XNUMXつの列に基づいて行をマージしてから、高度な結合行を使用して他の列に対してさまざまな操作を実行します。
高度な結合行 ある列の重複行をマージしてから別の列を合計できるだけでなく、XNUMXつの列の重複行をマージしてから他の列に対して異なる操作を実行できるため、強力です。
以下のスクリーンショットに示すようなデータの範囲があり、列Bの値と、列Aに基づいて列Cの値の合計の両方が必要であるとします。
後 無料インストール Kutools for Excel、以下のようにしてください:
1.データ範囲を選択し、をクリックします クツール > マージ&スプリット > 高度な結合行。 スクリーンショットを参照してください:
2。 の中に 列に基づいて行を組み合わせる ダイアログ、次のようにします。
(1)結合する列をクリックし、をクリックします。 主キー;
(2)データを結合する列をクリックし、をクリックします 組み合わせる、次にリストから必要なセパレータをXNUMXつ選択します。
(3)値を合計する列をクリックして、をクリックします。 計算、および選択 合計.
3。 クリック Ok。 これで、次のような結果が表示されます。
連絡先 高度な結合行 この機能では、1つの列に基づいて行をマージしてから、他の列の最初または最後のデータをカウント、平均化、保持することもできます。
最高のオフィス生産性向上ツール
🤖 | Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行 | コードを生成 | カスタム数式の作成 | データを分析してグラフを生成する | Kutools関数を呼び出す... |
人気の機能: 重複を検索、強調表示、または識別する | 空白行を削除する | データを失わずに列またはセルを結合する | 数式なしのラウンド ... | |
スーパールックアップ: 複数の基準の VLookup | 複数の値の VLookup | 複数のシートにわたる VLookup | ファジールックアップ .... | |
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する | 依存関係のドロップダウン リスト | 複数選択のドロップダウンリスト .... | |
列マネージャー: 特定の数の列を追加する | 列の移動 | Toggle 非表示列の表示ステータス | 範囲と列の比較 ... | |
注目の機能: グリッドフォーカス | デザインビュー | ビッグフォーミュラバー | ワークブックとシートマネージャー | リソースライブラリ (自動テキスト) | 日付ピッカー | ワークシートを組み合わせる | セルの暗号化/復号化 | リストごとにメールを送信する | スーパーフィルター | 特殊フィルター (太字/斜体/取り消し線をフィルター...) ... | |
上位 15 のツールセット: 12 テキスト ツール (テキストを追加, 文字を削除する、...) | 50+ チャート 種類 (ガントチャート、...) | 40+ 実用的 式 (誕生日に基づいて年齢を計算する、...) | 19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...) | 12 変換 ツール (数字から言葉へ, 通貨の換算、...) | 7 マージ&スプリット ツール (高度な結合行, 分割セル、...) | ... もっと |
Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。 最も必要な機能を入手するにはここをクリックしてください...
Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!