string值的总和
我有多列包含如下所示的示例信息:
A | B | C | D ------------------------ 23R | 12C | 4D | 35R 12C | 76T | 14T | 19D 32C | 56D | 14R | 68D ... | ... | ... | ... etc | etc | etc | etc
从整个表(不创build另一列),我想总结所有包含字母“R”的值。 鉴于上面的示例表,数字应该是:72.我已经尝试了许多不同的方法:
- 做一笔直的会产生“0”(如预期)
- 试图用左/右/左组合来拆分数字中的字母,但这需要另一列
- 使用SUMIF只能在编号范围内工作(除非有人可以指示我在没有额外的列的情况下事先应用函数)
- SUMPRODUCT没有帮助
- 看着vlookup / hlookup。 没有产生任何期望的结果
我怎样才能实现这个没有任何额外的专栏? 单元格也可以是空白的,如果可能的话,我想把它们作为零来处理。
使用这个数组公式:
=SUM(IF(RIGHT(A2:D4,1)="R",VALUE(LEFT(A2:D4,LEN(A2:D4)-1)),0))
A2:D4是你的整个桌子。 按Ctrl + Shift + Enterinput公式。
Excell提供了一个很好的公式的方式来做到这一点。 这里是一个VBAfunction,将做同样的事情。 你会这样称呼它:
=CountR(A2:D4) 'in your example becomes 72
码:
Function CountR(ByVal cell_range As Range) As Long Dim i As Long, j As Long, total As Long Dim varray As Variant varray = cell_range.Value For i = 1 To UBound(varray, 1) For j = 1 To UBound(varray, 2) If Right$(varray(i, j), 1) = "R" Then total = total + Left$(varray(i, j), Len(varray(i, j)) - 1) End If Next Next CountR = total End Function