如何从重复行中合并相应的值

时间:2013-07-02 08:18:20

标签: vba excel-vba excel

我需要知道如何将Excel宏写入重复行的SUM值:

输入:

red     2
red     3
.
.
blue    4
blue    5
blue    6

我需要的输出:

red     2     5
red     3
.
.
blue    4     15
blue    5
blue    6

我需要一个新列,在重复记录组的相同第一行显示SUM(本例中为5,15 ...)。
我试过这段代码(来自互联网):

Sub count()
'
' count Macro
'
' Keyboard Shortcut: Ctrl+a
'

    Dim ColumnsCount As Integer

    ColumnsCount = ActiveSheet.UsedRange.Columns.count

    ActiveSheet.UsedRange.Activate


    Do While ActiveCell.Row  &lt=   ActiveSheet.UsedRange.Rows.count
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            For i = 1 To ColumnsCount - 1
                ActiveCell.Offset(0, i).Value = ActiveCell.Offset(0, i).Value + ActiveCell.Offset(1, i).Value
            Next
            ActiveCell.Offset(1, 0).EntireRow.Delete shift:=xlShiftUp
        Else
            ActiveCell.Offset(1, 0).Select
        End If
    Loop


    Range("C9").Select
End Sub

但输出结果如下:

red     5
blue    15

我不想合并/合并重复记录。 太多了。

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

=IF(B3<>B4,SUMIF($B$4:$C$13,$B4,$C$4:$C$13),"")

IF()语句检查B列中两个垂直相邻的单元格,看它们是否相同。这决定了结果是否可见。因此,如果当前行有blue且上面的行有red,则会显示该值。否则就不会。

对于SUMIF()列中具有与B列的此行值相匹配的值的所有单元格,

B会响起所有单元格。

显然命名的范围将是一种改进......

=IF(B3<>B4,SUMIF(LabelsAndValues,$B4,ValuesOnly),"")