Excel - 基于 table 数组中相邻字母的求和值

Excel - Summing values based adjacent letter in a table array

我有这样一行: Current Excel Setup

我得到了一个计算 T 值和 B 值的公式:

T: =SUM(IFERROR(SUBSTITUTE(C2:G2,"T","")*1,0))
B: =SUM(IFERROR(SUBSTITUTE(C2:G2,"B","")*1,0))

当单元格仅包含 B5 或 T3 等值时,此方法有效。我还希望它对单元格包含 B2T3

等值的 B 和 T 求和

例如:

B5
B5
B2T3
T3

应该告诉我 B = 12 和 T = 6

在所附的屏幕截图中,我无法获得用于识别和提取单元格 F2 中的 B 和 T 值的公式

如果 T 总是在 B 之后,您可以尝试以下 CSE 输入的公式:

得到T:

=SUM(IFERROR(--MID(C2:F2,FIND("T",C2:F2)+1,LEN(C2:F2)),0))

得到B:

=SUM(IFERROR(--MID(C2:F2,FIND("B",C2:F2)+1,IFERROR(FIND("T",C2:F2)-2,100)),0))

拖动到 B2


当然,有人可以想出更干净的东西 =)

D2中,公式复制下来:

=SUMPRODUCT(0+TEXT(LEFT(TEXT(MID($A:$A&"@",FIND(C2,$A:$A&C2)+1,COLUMN(A:I)),),COLUMN(A:I)-1),"[<>];;;[=10=]"))

编辑:

如果数据是横放的,只需将公式部分由COLUMN(A:I)改为ROW($1:$9)

这是一个稳健的公式,标准和数据可以可变,并且用小数点数字求和

在A2中,公式向右复制到B2并全部向下复制:

=SUMPRODUCT(0+TEXT(LEFT(TEXT(MID($C2:$F2&"@",FIND(A,$C2:$F2&A)+1,ROW(:)),),ROW(:)-1),"[<>];;;[=11=]"))