跳到主要内容

如何基于一个列的值快速合并行,然后在Excel中进行一些计算?

例如,您有一系列数据,并且一列具有重复项,现在您想以A列(具有重复项)为基础合并行,然后根据合并的行对另一列进行一些计算,如屏幕截图所示:

在Excel中,没有一种快速的方法可以基于一个列的值合并行,但是在这里我介绍
技巧,可以帮助您合并重复的行,然后对另一列求和或进行其他计算。


箭头蓝色右气泡 基于一列合并行,然后使用VBA对值求和

有一个VBA代码可以帮助您合并重复的行,然后对另一个列的值求和。

分页浏览和编辑多个Excel工作簿/ Word文档,例如Firefox,Chrome,Internet Explore 10!

您可能熟悉在 Firefox/Chrome/IE 中查看多个网页,并通过单击相应的选项卡轻松在它们之间切换。在这里,Office Tab 支持类似的处理,允许您在一个 Excel 窗口或 Word 窗口中浏览多个 Excel 工作簿或 Word 文档,并通过单击选项卡轻松在它们之间切换。 免费点击 30Office Tab 试用一天!

优秀

1。 按 F11 + Alt 启用键 Microsoft Visual Basic应用程序 窗口,然后单击 插页 > 模块 并将以下VBA代码复制并粘贴到新 模块 窗口。

VBA:基于一个列值合并行

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,并弹出一个对话框,用于选择要工作的数据范围。 看截图:

doc合并基于一列的列3

3.选择工作范围后,单击 OK。 现在,数据已被第一列合并,并在第二列中求和。

doc合并基于一列的列4

备注:此VBA代码仅在基于第一列合并第二列中的值时才能正确工作。


箭头蓝色右气泡 基于一列合并行,然后使用“高级合并行”对值求和

如果您不熟悉VBA代码,则可以使用 高级组合行 第三方插件工具的功能– Kutools for Excel 轻松快速地合并重复行,然后将值累加到另一列中。

免费安装 Kutools for Excel,请执行以下操作:

1.选择要使用的数据,然后单击 库工具 > 合并与拆分 > 高级组合行。 看截图:

doc高级合并行1

2.然后在弹出对话框中,选择要合并其他列的列,然后单击 键,然后单击另一列,然后单击 计算 然后选择 总和.

Tips::如果您选择的范围包含标题,请检查 我的数据有标题,并检查 使用格式化的值 合并后将保留格式。

doc合并基于一列的列6

3。 然后点击 Ok。 现在,已经根据主列合并了数据,并对另一个进行了汇总。 看截图:

doc合并基于一列的列7


箭头蓝色右气泡 基于一列合并行,然后使用“高级合并行”对其他列执行不同的操作。

高级组合行 之所以功能强大,是因为它不仅可以合并一列中的重复行,然后对另一列求和,还可以合并一列中的重复行,然后对其他列进行不同的操作。

假设我有一系列数据,如下面的屏幕快照所示,并且我想同时结合B列中的值和C列中基于A列的值之和。
doc合并基于一列的列8

免费安装 Kutools for Excel,请执行以下操作:

1.选择数据范围,然后单击 库工具 > 合并与拆分 > 高级组合行。 看截图:

doc高级合并行1

2.在 根据列合并行 对话框,执行以下操作:

(1)单击要合并的列,然后单击 首要的关键;

doc合并基于一列的列10

(2)单击要合并数据的列,然后单击 结合,然后从列表中选择一个所需的分隔符;

doc合并基于一列的列11

(3)单击要对值求和的列,然后单击 计算,然后选择 总和.

doc合并基于一列的列12

3。 点击 Ok。 现在您可以看到如下结果:

doc合并基于一列的列13

高级组合行 功能,您还可以根据一列合并行,然后对其他列进行计数,平均,保留第一个或最后一个数据。 

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高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