大数跨境

=MAX(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0)))计算最多连胜次数举例说明

=MAX(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0)))计算最多连胜次数举例说明 浅谈出口账务和excel函数
2026-11-08
7
这个公式的作用是:把 B2:B12 中的“胜”转成 1,其他转成 0,连成一串 0/1 字符串,再按 0 拆开,统计每段连续 1 的长度,最后取最大值——也就是最多连胜次数。

公式:

```excel
=MAX(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0)))
```

举例

假设 B2:B12 是:

单元格 B列
B2 胜
B3 胜
B4 负
B5 胜
B6 胜
B7 胜
B8 负
B9 胜
B10 胜
B11 负
B12 胜

第1步:IF 转换

```excel
IF(B2:B12="胜",1,0)
```

得到:

```text
1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1
```

第2步:CONCAT 连接

```excel
CONCAT(...)
```

得到字符串:

```text
11011101101
```

第3步:TEXTSPLIT 按 0 拆分

```excel
TEXTSPLIT("11011101101",0)
```

按 0 分开,得到:

```text
"11", "111", "11", "1"
```

这些分别代表连续获胜的段:

```text
11   → 2连胜
111  → 3连胜
11   → 2连胜
1    → 1连胜
```

第4步:LEN 求每段长度

```excel
LEN(...)
```

得到:

```text
2, 3, 2, 1
```

第5步:MAX 取最大值

```excel
MAX(...)
```

结果:

```text
3
```

所以最多连胜次数是 3 次,对应 B5:B7 的“胜、胜、胜”。

---

再举一个含连续“负”的例子

B列:

```text
胜, 负, 负, 胜, 胜
```

转换后:

```text
1, 0, 0, 1, 1
```

连接:

```text
10011
```

按 0 拆分可能得到:

```text
"1", "", "11"
```

长度:

```text
1, 0, 2
```

最大值:

```text
2
```

所以最多连胜 2 次。中间空段长度为 0,不影响最大值。

---

注意

1. 这个公式把 “胜”以外的所有内容都当成 0,包括“负”、空白、其他文字。
2. 如果 B2:B12 全是“负”,连接结果是全 0,某些 Excel 版本下 TEXTSPLIT 可能返回空数组,公式可能报错或返回 0。可以加容错:

```excel
=MAX(IFERROR(LEN(TEXTSPLIT(CONCAT(IF(B2:B12="胜",1,0)),0,,1)),0))
```

3. TEXTSPLIT、CONCAT 和动态数组需要较新版本 Excel 或 Microsoft 365。
4. 如果不想用字符串拆分,也可以用:

```excel
=MAX(SCAN(0,B2:B12,LAMBDA(a,b,IF(b="胜",a+1,0))))
```

这个公式更直观:遇到“胜”累加,遇到非“胜”归零,最后取最大值。

【声明】内容源于网络
0
0
浅谈出口账务和excel函数
1234
内容 1772
粉丝 0
浅谈出口账务和excel函数 1234
总阅读49.7k
粉丝0
内容1.8k