如何在 Google 工作表中连接具有动态长度的单词中的数字
How to concatenate digits from words with dynamic lengths in Google Sheets
我有一个用逗号分隔的单词的列 A。在随后的专栏中,我使用 Vlookup 将单词替换为 ID。我打算用这样的输出填充数据 a:4:{i:0;s:2:"41";i:1;s:2:"40";i:2;s:2:"43";i:3;s:3:"153";}
我需要将第一个数字与 i:0;s:2:
连接起来,其中 0
是数字的第一个索引,2
是第一个数字中的字符数。第二个数字 40
变成 i:1;s:2: 而第三个 143
变成 i:2;s:3: 注意 3
因为 143
有 3
个字符。
41 40 143
我已经取得了长足的进步,但让它充满活力是我面临的挑战。这样当A中的文本发生变化时,公式是动态的。
我的公式
in D2 =ARRAYFORMULA(IF(A3:A="","",(LEN(A2:A)-LEN(SUBSTITUTE(A2:A,",",""))+1)))
统计A中的单词数。
在 E2 中使用 flatten, trim, split, textjoin
我用 ID 替换单词。
在 K 到 N 列中,我有个人数字,在 P 到 S 列中,我有数字字符计数。
预期的输出在 F2 中。但公式尚未完成,可能有更简单的方法来完成。我的公式不是动态的,这意味着它仍然需要修复才能动态地与其他词一起使用,而无需一次又一次地更改公式。
Link 到电子表格 https://docs.google.com/spreadsheets/d/12rXI4e8pYSdTHlIVgkKl66KNYUqQv3z9luazIxKADQM/edit?usp=sharing
使用:
=ARRAYFORMULA(IF(A2:A="",,"a:"&LEN(REGEXREPLACE(A2:A, "[^,]", ))+1&":{"&
SUBSTITUTE(TRIM(FLATTEN(QUERY(TRANSPOSE(IFERROR("i:"&SEQUENCE(1, 100, )&";s:"&
LEN(VLOOKUP(SPLIT(A2:A, ","), B2:C, 2, 0))&":"""&
VLOOKUP(SPLIT(A2:A, ","), B2:C, 2, 0)&""";")),,9^9))), "; ", ";")&"}"))
我有一个用逗号分隔的单词的列 A。在随后的专栏中,我使用 Vlookup 将单词替换为 ID。我打算用这样的输出填充数据 a:4:{i:0;s:2:"41";i:1;s:2:"40";i:2;s:2:"43";i:3;s:3:"153";}
我需要将第一个数字与 i:0;s:2:
连接起来,其中 0
是数字的第一个索引,2
是第一个数字中的字符数。第二个数字 40
变成 i:1;s:2: 而第三个 143
变成 i:2;s:3: 注意 3
因为 143
有 3
个字符。
41 40 143
我已经取得了长足的进步,但让它充满活力是我面临的挑战。这样当A中的文本发生变化时,公式是动态的。
我的公式
in D2 =ARRAYFORMULA(IF(A3:A="","",(LEN(A2:A)-LEN(SUBSTITUTE(A2:A,",",""))+1)))
统计A中的单词数。
在 E2 中使用 flatten, trim, split, textjoin
我用 ID 替换单词。
在 K 到 N 列中,我有个人数字,在 P 到 S 列中,我有数字字符计数。
预期的输出在 F2 中。但公式尚未完成,可能有更简单的方法来完成。我的公式不是动态的,这意味着它仍然需要修复才能动态地与其他词一起使用,而无需一次又一次地更改公式。
Link 到电子表格 https://docs.google.com/spreadsheets/d/12rXI4e8pYSdTHlIVgkKl66KNYUqQv3z9luazIxKADQM/edit?usp=sharing
使用:
=ARRAYFORMULA(IF(A2:A="",,"a:"&LEN(REGEXREPLACE(A2:A, "[^,]", ))+1&":{"&
SUBSTITUTE(TRIM(FLATTEN(QUERY(TRANSPOSE(IFERROR("i:"&SEQUENCE(1, 100, )&";s:"&
LEN(VLOOKUP(SPLIT(A2:A, ","), B2:C, 2, 0))&":"""&
VLOOKUP(SPLIT(A2:A, ","), B2:C, 2, 0)&""";")),,9^9))), "; ", ";")&"}"))