我想对我的google电子表格中的一组数据进行以下转换:
所有数据都在一列中,根据情况,我需要应用特定的转换。我试着把所有的正则表达式都放在一个公式中,但我失败了。我总是有超过两个正则表达式的情况,等等。
无论如何,我最终会在不同的列中把这些正则表达式一个接一个地放在一个情况下。它工作得很好,但我觉得它可能会减缓纸张,因为我除了很多数据进入这张表。
这是工作表:电子表格
谢谢你的帮助!
发布于 2022-07-19 15:44:41
使用regexreplace(),如下所示:
=arrayformula(
iferror( 1 /
value(
regexreplace(
regexreplace(trim(A2:A), "\s*K", "e3"),
" views", ""
)
)
^ -1 )
)看看你的样本电子表格。
发布于 2022-07-19 14:46:46
使用regex:/(?<=(\d*\.?\d+\K?)) views/gi替换使用regex的“视图”,用或不带十进制值替换'K‘,首先检测K,然后用空字符串替换K,然后乘以1000。
将回调功能用作:
txt.replace(/(?<=(\d*\.?\d+\K?)) views/gi, '').replace(/(?<=\d)\.?\d+K/g, x => x.replace(/K/gi, '')*1000)代码:
arr = [`6 views`,
`73K views`,
`3650`,
`163K views`,
`1.2K views`,
`52.5K`];
arr.forEach(txt => {
console.log(txt.replace(/(?<=(\d*\.?\d+\K?)) views/gi, '').replace(/(?<=\d)\.?\d+K/g, x => x.replace(/K/gi, '')*1000))
})输出:
6
73000
3650
163000
1200
52500发布于 2022-07-19 18:30:14
假设您的输入位于A列,允许空单元格。在任何其他专栏中,
=arrayformula(if(A2:A<>"",value(substitute(substitute(A2:A," views",""),"K","e3")),))很管用。
根据需要调整范围A2:A。
还请注意,具有空字符串的非空单元格将被忽略。
基本上,由于Google的regex引擎不支持“四处看看”,因此更有效的方法是利用应用程序中相当严格的模式,转而使用substitute()。
https://stackoverflow.com/questions/73038632
复制相似问题