2015-04-06 14 views
1

我有一个关于我试图在Google电子表格中实现的问题。我有下面的表格:处理单个单元中的多个字符串和相应的整数

| NAME     | COUNTRY    | 
-------------------------------------------------- 
| Alpha     | GER*1, SWE*3   | 
-------------------------------------------------- 
| Beta     | GER*5, SWE*1   | 
-------------------------------------------------- 
| Gamma     | SWE*5, GER*3   | 
-------------------------------------------------- 
| Delta     | SWE*2, GER*1   | 
-------------------------------------------------- 

现在我想能够计算有多少SWE在线Gamma。我需要电子数据表来返回一个整数值,在我的例子中,正确的是5。

但是,我也想能够计算Alpha到Delta的GER总数,也返回作为一个整数值,在这种情况下,结果应该是1 + 5 + 3 + 1 = 10.

正如你所看到的,我正在处理单个单元格中的字符串和整数。如果有可能例如创建一个所有GER *(INTEGER)的数组,然后删除GER *并且只有一个可能帮助我的整数的数组?

我在这里搜索了一遍,用电子表格混淆并试图找到一个解决方案,但要么我太笨拙,要么不像我想的那样微不足道。任何帮助将非常感激。

回答

0

要计算GER的线阿尔法三角洲(假设你的数据从第2行延伸到第5行)总数,请尝试:

=sum(ArrayFormula(iferror(regexextract(B2:B5, "GER\*(\d+)")+0,0))) 

要计算多少SWE有符合伽马,尝试:

=sum(ArrayFormula(iferror(regexextract(filter(B2:B6, A2:A6="Gamma"), "SWE\*(\d+)")+0,0))) 

变化的范围,使它们满足您的实际数据范围,看看是否起作用?

+0

这个作品几乎完美。谢谢一堆!当我正在查找的字符串不在一行中时,虽然有一个错误:“与函数的文本不匹配”。如果在那种情况下它会给我一个0。也许如果我使用ISNA,如果TRUE返回0?不过听起来有些复杂。 – Philsen 2015-04-07 00:34:00

+0

尝试使用IFERROR()捕获错误。看到我更新的答案,并检查它是否有效。 – JPV 2015-04-07 06:00:00

+0

工程就像一个魅力。我必须做一个小小的调整(下划线),但现在看起来像这样:'= sum(ArrayFormula(iferror(regexextract(Location,“GER _(\ d +)”)+ 0,0)))'Thanks很多,非常有帮助! – Philsen 2015-04-08 10:57:25

0

您可以使用其中一个文本功能,如FINDMIDREGEXEXTRACT更强大但更难使用。如果有子字符串,请使用VALUE从中获取数字值。

对于总结,最简单的可能是创建一个额外的列,将GER值提取到上面,然后SUM该列。

下面是谷歌电子表格的函数参考:https://support.google.com/docs/table/25273?hl=en

相关问题