动态数组公式不能得到预期结果

同一个数组公式,excel中能得到正确的结果,wps中得不到预期结果,出错,想知道到底是触发了wps的哪个限制,这样我才好在以后的学习中进行规避。 公式 =-REDUCE(0,ROW($1:99),LAMBDA(x,y,IF(@x<0,x,SWITCH(MID(A2,y,1),"{",VSTACK(MAX(x)+1,x,MAX(x)+1),"}",IF(@x=B2,-y,DROP(x,1)),x)))) ### 公式解析 1. **核心逻辑**: - **层级计数器**:用 `x` 直接表示当前嵌套层级(初始为0)。 - **遇到 `{`**:层级+1。 - **遇到 `}`**: - 若当前层级 `x` 等于目标层级 `B2`,返回 `-y`(负号标记找到结果)。 - 否则层级-1。 - **其他字符**:保持层级不变。 2. **提前终止**: - 一旦找到目标闭合括号(`x`变为负值),后续遍历直接返回结果,提升效率。 3. **结果提取**: - 通过 `-@` 将负值转为正数位置(如 `-7` → `7`)。 要求 1)A列字符串中的{和}总是成对出现的,且至少有一对。 2)B列数值为从左到右数第n个{,例如2表示从左到右数的第2个{。 3)一对{}总是完整的包括在另外一对{}中。例如{{}}中,第一个红色{对应的是最后一个红色},不能是倒数第2个}。 要求: 求与B列第n个{对应的}在字符串中的位置(从左到右数)。 例如: A列字符串是:{{a,b}{b,{c,d}}} B列数字是:3 C列返回:15
重庆
浏览 42
收藏
1
分享
1 +1
2
+1
全部评论 2
 
苏秦
wps的数组公式底层代码有bug
· 浙江省
回复
 
JW L
Excel与WPS函数结果差异表格 https://kdocs.cn/l/cnH1EhwzIJzw
· 重庆
回复