WPS灵犀写公式,把类似“1-5”展开为连续数字1,2,3,4,5

遇到这样一个需求

遇到这样一个需求,把A列的文本转换为B列的形式。就是//及其前面内容忽略,把后面的内容中用“-”串起的数字展开,如把5-8展开为5,6,7,8。

添加图片注释,不超过 140 字(可选)

指令1

我想通过示例的办法,更容易让WPS灵犀明白我要干什么。于是我写了这样的指令:

A1单元格内容为“1//1-5,7”,经过公式转换后,在B1显示为“1,2,3,4,5,7”,如何写这个公式?

添加图片注释,不超过 140 字(可选)

思考了26秒后,它给出了结果,如下图。不仅有公式,而且有分步解释,可以让人明白公式是怎么工作的。后面还有注意事项,说明了该公式支持处理多组范围(如"2-4,6-8");自动过滤重复数字并保持升序排列;如需降序排列可在公式后添加排序函数。

看起来很不错。

添加图片注释,不超过 140 字(可选)

在wps表格中粘贴代码

在灵犀,用右上角的复制按钮,复制了公式文本,粘贴到wps表格中的B1单元格中,结果显示计算错误。

添加图片注释,不超过 140 字(可选)

指令2

指令:把公式粘贴到wps表格中,显示“计算错误:引用了无效的名称!”,如何修改?

运行结果如下。

针对原因逐一排查。看了一下wps表格的名称管理器,空的。函数名称拼写错误,也不像啊。也没有什么自定义函数和宏。加载项嘛,不太懂。

添加图片注释,不超过 140 字(可选)

指令3

我决定不管这个错误,让它再修改一下公式,也许能行。

指令:修改一下公式,请忽略“//”及其前面的内容。

随后给出的公式仍然不能正常运行,还是显示“计算错误:引用了无效的名称!”

不过我注意到,它提及了XML解析支持。可能原因就是我的本机上的wps不支持XML解析,那么就看看有没有绕开XML的公式。

添加图片注释,不超过 140 字(可选)

重开一局

指令:A1单元格内容为“1//1-5,7”,经过公式转换后,在B1显示为“1,2,3,4,5,7”,如何写这个公式?要求:公式写在B1单元格,开头内容“1//”要忽略,公式要绕开xml。

得到的结果为:

=TEXTJOIN(",",TRUE,LET(s,RIGHT(A1,LEN(A1)-FIND("//",A1)-1),parts,TEXTSPLIT(s,,","),MAP(parts,LAMBDA(p,IFERROR(LET(x,FIND("-",p),st,VALUE(LEFT(p,x-1)),ed,VALUE(MID(p,x+1,9)),TEXTJOIN(",",1,SEQUENCE(ed-st+1,,st))),p)))))

添加图片注释,不超过 140 字(可选)

这回终于成功了!

添加图片注释,不超过 140 字(可选)

总结

“我的本机上的wps不支持XML解析”,这个原因应该是对。对XML我是有印象了,感觉打开支XML解析会更麻烦,所以我决定绕开。

以前我也是亲自写过公式的,所以尽管上面有很多我没有接触过的函数,但只要它解释一下,我基本能看明白。

尽管有AI,但是自己还是要不断学习的。能把自己的问题描述清楚,就是一种在AI时代需要不断提升的能力。

与大家共勉,还请大家批评指正。

广西
浏览 1118
收藏
11
分享
11 +1
9
+1
全部评论 9
 
打卡看大阿卡
· 安徽省
回复
 
学习
· 山东省
回复
 
打卡
· 陕西省
回复
 
打卡
· 云南省
回复
 
点赞,学习
· 河南省
回复
 
学习
· 浙江省
回复
 
懒得批爆

创作者俱乐部成员

开头内容“1//”要忽略,RIGHT(A1,LEN(A1)-FIND("//",A1)-1) 这一步我更喜欢用TEXTAFTER(A1,"//") 其他不变,这样能缩短公式长度
· 四川省
2
回复
学到了
· 福建省
回复
 
此文首发于知乎。
· 广西
回复