Google sheets 计算文本字段中的数字

Google sheets 计算文本字段中的数字,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我有一个电子表格,其中包含类似以下内容的单元格: AAA Up 3 AAA Down 2 BBB Up 1 BBB Down 3 CCC Up 5 CCC Down 2 所以它总是某种文本,然后是向上或向下,然后是它向上或向下的频率。我想数一数上升或下降了多少次。在本例中,上升的总数为9,下降的总数为7。如何在Excel/Google工作表中做到这一点?我找不到能帮助我解决这个问题的函数组合 我忘了提到这里的每一行是一个单元格。或者换句话说,上面的所有文本仅为一列 谢谢。虽然有点粗糙,但会有用

我有一个电子表格,其中包含类似以下内容的单元格:

AAA Up 3
AAA Down 2
BBB Up 1
BBB Down 3
CCC Up 5
CCC Down 2
所以它总是某种文本,然后是
向上
向下
,然后是它向上或向下的频率。我想数一数上升或下降了多少次。在本例中,上升的总数为9,下降的总数为7。如何在Excel/Google工作表中做到这一点?我找不到能帮助我解决这个问题的函数组合

我忘了提到这里的每一行是一个单元格。或者换句话说,上面的所有文本仅为一列


谢谢。

虽然有点粗糙,但会有用的。假设您的数据是A2:A7格式的,如下所示

AAAAAA Up 300
AAA Down 2
BBB Up 10
BBB Down 3
CCC Up 5
CCC Down 2
在单元格B2中输入此数组公式(并向下复制)[不要忘记使用ctrl+shift+Enter)

C1
中输入
Up
,在
D1
中输入
Down
,然后在C2中输入此公式(并向下然后向右复制,以便用此公式填充单元格C2:D7)

现在求和
值-使用以下公式

=--NOT(ISERROR(FIND(C$1,$A2)))
=SUMPRODUCT(C2:C7,B2:B7)
对于
Down
使用此

=SUMPRODUCT(D2:D7,B2:B7)
你会得到想要的总数


在谷歌表单中很简单:

=ArrayFormula(query(split(A:A," "),"select Col2,sum(Col3) where Col3 is not null group by Col2"))

如果我们可以假定数字字段中只有1或2位数字,则最多使用:

羽绒服:


这里有很多回复。我会建议另一个,然后告诉你为什么可能不同:

=ArrayFormula(查询(拆分(REGEXEXTRACT(过滤器(A2:A,A2:A“”),“([UpDown]+\d+$”),”,0),“选择Col1,按Col1标签SUM(Col2)”分组求和(Col2))


从你的帖子中不清楚“AAA”、“BBB”等在你的实际应用程序中是否会是字母数字信息的实心块。我可以想象,开头的文本实际上可能是带空格的字符串(例如,“Joe Schmoe from Idaho UP 3”)如果是这样,我在这里看到的一些其他公式将失败;但这个公式将解释这一点。

这里是另一个建议

一个单一公式,比Erik的更短,比Tom的更稳健

使用的功能:

我看到一场“谁短谁短”的游戏已经开始。首先(对于那些不知道的人来说),就处理能力或速度而言,较短的公式不一定比较长的公式有任何优势。事实上,稍长一点的公式可能在易于理解、消除多余元素等方面有好处

也就是说,正如我所说,这似乎是一种游戏,供那些经常编写公式来切割角色的人玩。因此,出于好玩的考虑,我也把它扔进了帽子里:

={“向上”,求和(筛选器(拆分(A2:A)”,查找(“向上”,A2:A));“向下”,求和(筛选器(拆分(A2:A)”,查找(“向下”,A2:A)))


它比marikamitsos要短,并且去掉了“sum”标题,这可能是想要的,也可能不是想要的。它还允许“Up”位于顶部,而不需要额外的代码(或者通过切换子句,它不会增加长度,如果需要,允许“Down”位于顶部).

使用sumif或SUMProductNumber可以是1位数或n位数?n位数,但始终在末尾。请参阅建议的答案,在这种情况下,它将无法确定,但我认为示例中的一行是Excel中的一个单元格(数字未对齐,在文本字段中计数数字).有什么想法吗?是的,@vbasic208,我刚才看到我犯了一个错误,没有提到文本都在一个单元格中。我将编辑这个问题。谢谢你Anil的努力。我已经修改了它。请看。它适用于任何数字
=ArrayFormula(query(split(A:A," "),"select Col2,sum(Col3) where Col3 is not null group by Col2"))
=SUMPRODUCT(--(RIGHT(A1:A6,2))*ISNUMBER(SEARCH(" Up ",A1:A6)))
=SUMPRODUCT(--(RIGHT(A1:A6,2))*ISNUMBER(SEARCH(" Down ",A1:A6)))
=QUERY(INDEX(SPLIT(REGEXEXTRACT(A:A,"\w+ \d+$")," ")), 
         "select Col1, sum(Col2) where Col2 is not null group by Col1")