okx

PowerQuery非连续编码展开技巧

时间:2023-06-19|浏览:181

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

在工作中,我们会遇到各种情况,例如这个编码:"a1232340082/84/97~114",其中a1232340082、a1232340084、a1232340097是单独的编码,而a1232340097到a1232340114是连续的编码。我们需要把它们展开成一个编码列表。

为了达到这个目的,我们可以使用PowerQuery中的列表元素来进行分析。在这个编码中,"/"可以替换成逗号“,”,而"~"可以替换成"..”。如果不考虑前缀,这个编码应该被展开成这样的列表:"82, 84, 97..114"。最后,我们只需要在两边加上大括号,就可以得到想要的编码列表。

第一步,我们需要使用Text.Replace函数,它的使用方式类似于Excel的SUBSTITUTE函数。我们需要替换两次,分别替换"/"和"~"。然后在两边加上大括号。

接下来,我们需要将字符串转换为列表。在PowerQuery中,我们可以使用Expression.Evaluate函数,它可以将文本表达式计算出来。然后,我们需要逐个加上前缀,为了处理长度不同的编码,我们还需要使用Number.ToText函数,在前面补上0,以保证编码长度一致。

如果我们把这个查询做成一个函数,可以用两个参数来控制编码的前缀和后缀长度。如果需要控制后缀长度,可以使用Text.Repeat函数来写出对应个数的0。最后,我们可以得到以下的表达式:

(t,l)=> List.Transform( Expression.Evaluate("{"& Text.Replace( Text.Replace(Text.End(t,Text.Length(t)-l),"/",","), "~","..")& "}"), each Text.Range(t,0,l)&Number.ToText(_,"000"))

其中,参数t表示文本描述的编码,参数l表示前缀长度。现在,你可以试试编写一个自己的函数,用它来控制后缀长度。

« 上一条| 下一条 »
区块链交流群
数藏交流群
区块链币圈-全球区块链数字货币行情、比特币虚拟货币资讯,狗狗币以太坊环保币柚子币莱特币瑞波币等加密数字货币价格非交易行情查询,金色财经巴比特范非小号快讯平台。
趣开心资讯 Qukaixin.cn ©2020-2024版权所有 桂ICP备19010284号-1