=MAX(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0)))计算最多连胜次数举例说明
浅谈出口账务和excel函数 这个公式的作用是:把 B2:B12 中的“胜”转成 1,其他转成 0,连成一串 0/1 字符串,再按 0 拆开,统计每段连续 1 的长度,最后取最大值——也就是最多连胜次数。
=MAX(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0)))
1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1
TEXTSPLIT("11011101101",0)
所以最多连胜次数是 3 次,对应 B5:B7 的“胜、胜、胜”。
所以最多连胜 2 次。中间空段长度为 0,不影响最大值。
1. 这个公式把 “胜”以外的所有内容都当成 0,包括“负”、空白、其他文字。
2. 如果 B2:B12 全是“负”,连接结果是全 0,某些 Excel 版本下 TEXTSPLIT 可能返回空数组,公式可能报错或返回 0。可以加容错:
=MAX(IFERROR(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0,,1)),0))
3. TEXTSPLIT、CONCAT 和动态数组需要较新版本 Excel 或 Microsoft 365。
=MAX(SCAN(0,B2:B12,LAMBDA(a,b,IF(b="胜",a+1,0))))
这个公式更直观:遇到“胜”累加,遇到非“胜”归零,最后取最大值。