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