我需要知道如何将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 <= 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
我不想合并/合并重复记录。 太多了。
答案 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),"")