Amt1 Tax1 Amt2 Tax2 Amt3 Tax3 Amt4 Tax4 Amt5 Tax5 Amt6 Tax6
YQ 25 YR 22 QW 25 TR 58 WR 105 AY 125
YR 102 YQ 25 AY 15 YR 152 WR 55 WQ 120
在Excel中,现在我希望列中的输出总共为YR,如果YR连续5次输出,则输出应该总计为5。
任何人都可以帮我这个吗?
答案 0 :(得分:1)
使用SUMIFS的基于公式的解决方案
=SUMIFS(B2:L2,A2:K2,"YR")
注意范围内的偏移:Sum Range偏离Criteria Range <右侧1列
答案 1 :(得分:0)
您可以使用以下UDF:
Option Explicit
Function mySumIfs(lRow As Long, Str As String) As Long
Dim LastCol As Long
Dim C As Range
LastCol = Cells(lRow, Columns.Count).End(xlToLeft).Column ' get last column in current row
' loop through all cells in the Range of the Row selected
For Each C In Range(Cells(lRow, 1), Cells(lRow, LastCol))
If C.Value Like Str Then
mySumIfs = mySumIfs + C.Offset(, 1).Value
End If
Next C
End Function
然后,在Excel工作表的单元格中,您只需键入公式:
=mySumIfs(3,"YR")
。
您也可以在VBA中使用它,只需使用:
Dim SumTest As Long
SumTest = mySumIfs(3, "YR")
在Excel表格中如何实现它的屏幕截图:
答案 2 :(得分:0)
欢迎使用StackOverflow。这不是一个代码换我的网站,当你提出这样的问题时,你应该展示一些解决它们的努力。 话虽如此,这是一种用自定义公式解决问题的方法:
Option Explicit
Public Function OutputMe(rngSelectRange As Range, strOutput As String) As Double
Dim rngCell As Range
For Each rngCell In rngSelectRange
If rngCell = strOutput Then
OutputMe = OutputMe + rngCell.Offset(0, 1).Value
End If
Next rngCell
End Function