用于计算Google表格中单个单元格中字符串出现次数的正则表达式

时间:2017-07-06 18:53:21

标签: regex google-sheets

我有一个填充了数据和单元格的Google表格,并希望获得字符串在特定单元格中出现的次数,以及字符串在单个列中的总计出现次数。例如,我试图计算列中“of”字符串的数量,如下所示:

=COUNTA(FILTER('Data Sheet'!G3:G313, REGEXMATCH('Data Sheet'!G3:G313, "of")))

但是,这只返回带有“of”的单元格数。如何获得“of”字符串的总数。

4 个答案:

答案 0 :(得分:0)

你可以做这样的事情

COUNTA(SPLIT(REGEXREPLACE('Data Sheet'!G3:G313,"of","$ ."),"$"));

您可以将“of”替换为符号“$”,然后计算其中的符号数。

答案 1 :(得分:0)

对于单个单元格,您可以使用

=(len(G3)-len(substitute(G3, "of",)))/2

要计算列中出现的次数,请尝试

=sum(ArrayFormula(if(len(G3:G), (len(G3:G7)-len(substitute(G3:G, "of",)))/2,)))

注意:2指的是要计算的字符串的字符数("")

更改范围以适应并查看是否有效?

答案 2 :(得分:0)

做得更好,更好:

import boto3
pricing_client = boto3.client('pricing', region_name='us-east-1')
filterValue = instanceType + "-Training"

response = pricing_client.get_products(
    ServiceCode='AmazonSageMaker',
    Filters=[
        {
            'Type': 'TERM_MATCH',
            'Field': 'instanceType',
            'Value': filterValue
        },
    ]
)
## TODO: fix this line to take the right region and not the first
python_dict = json.loads(response['PriceList'][0])

pricePerHour = next(iter(next(iter(python_dict['terms']['OnDemand'].values()))["priceDimensions"].values()))["pricePerUnit"]['USD']
return float(pricePerHour)

因为: $$以避免包含该字符的单元格。 $。防止空字符串影响结果 错误地说$$是一个巧合,而不是两个分隔符

答案 3 :(得分:0)

COUNTA答案实际上不起作用。他们缺少两件事(1) REGEXPREPLACE 不能直接作用于范围(2)结果相减一。

尝试一下:

=COUNTA(SPLIT(REGEXREPLACE(concatenate('Data Sheet'!G3:G313),"of",".$$."),"$$",false()))-1

这对我有用,但是如果值的串联可能导致人为匹配,则它不起作用。实际上,这样的基本假设方法是您可以选择"$"".$$."或其他不会导致人为匹配的选择。