string 函数第二参数的问题
大佬们,早上好,Happy Monday!
直接进入主题吧,string 函数的官方文档里没有对其第二参数的格式作详细的说明,我在学习的时候模拟 excel 函数 text 的用法,发现 string 函数的二参也能写成两段的模式,但不能完全模拟 excel 的 text 函数的写法,格式代码多于两段时 spl 就会报错,我一开始想着是自己使用不当,姿势不对,跟朋友讨论之后还是决定发帖向 SPL 大佬们求助。具体请看下面的截图 (截图中的红色字体,只是为了醒目,并没有不敬的意思,望大佬们海涵)
我想,官方可不可以对 string 函数的 2 参格式代码作出详细说明,公布其具体的用法,或者,有没有可能完善其格式代码,实现 excel text 函数那样的 4 段式写法,再或者,是我使用该函数的姿势不对,恳请大佬们得闲时帮助指点。
Thx in advance & Happy everyday!
string 函数一般是对数据做格式化操作,比如日期、数值等,第一个参数是要格式化的值,第二个参数是格式串。
=string(-0.11,“#0.00%”) 这么写的生成的结果自动会带符号,但是你那个后边带了箭头,那就要分开写了,可以通过 if 做个判断,比如 if(值 >0,string( 整数表达式),string(负数表达式)) 这么判断下。
像开始那个正负零也是同样,用 if 或者 case 函数判断就行,具体可以看下函数帮助: http://d.raqsoft.com.cn:6999/esproc/func/string.html
感谢大佬回复!
我的兴趣点不是您说的对单个数值的处理,而且,# 写与不写不影响输出结果,如下所示:
我关注的点是,既然 string 函数的二参能实现两段格式的书写,为啥不能实现 3 段格式的书写,这样就不用再去写 if 函数判断了。
而且函数文档没有详细的说明,您给我发的链接对此问题没有助益。比如,以下语句如果写成 if 或者 case 是不是得很长:
还望大佬再斟酌一二🙏
这个 format 是 JAVA 提供的,具体规则细节也都是它底层包规定的,我们没法改,除非全部重做一个(工作量太大了,而且不标准)。
今天才知道它还能写两段的😳 ,从来没用过这种写法。
话说回来,Excel 本来就是强于格式,继续用它就行了啊。SPL 是强于计算的,用 SPL 是为了补充 Excel 的计算能力,并不是要替换掉 Excel 啊,Excel 擅长的事还是继续让它做更好。
谢谢老贼关注!
1、string 函数的二参写成两段式也是试出来的,官方文档里并没有这样的写法。因为很多其它语言的数字格式化都可以写成多段式,比如,“>0 格式; 小于 0 格式; 等于 0 格式”,所以,很自然的联想到了 SPL 能不能这样实现,这样的一个小功能足以让代码显得简洁优雅。当然,最简单粗暴的莫过于十八层 if 嵌套,那是最直接不烧脑的写法。但这样做,跟 SPL 简洁的风格背道而驰。
2、没必要去重做,小功能一个,总能找到 workarounds。我求助的目的很简单,如果我的想法正好能完善 SPL,那是两全其美的事。
3、如果有可能,我倒是非常希望 SPL 也能有自己的电子表格,就像 LibreOffice,也是一款开源的办公软件,可以用公式也可以用脚本编程。SPL 已经有了强大的计算能力,所以,完全可以自主开发一套办公软件。当然,这是我的臆想。
衷心希望 SPL 越来越好,将来某一天,当同事问我什么是 SPL,我可以回答说: SPL stands for Surpass Python Language. 😄
Have a nice day!!