我正在尝试使用Google表格中的*
功能计算特定数值范围内包含COUNTIFS
的出现次数。该函数适用于正范围,但在添加负数时失败。我试图逃避消极和添加parens但似乎没有任何作用。
Works - 正确返回值1,因为0.01 *介于0和.1之间并包含*
0.01*
.8*
*
-0.08
-0.08*
=COUNTIFS(J62:J66, ">0.000\*",J62:J66, "<0.1\*")
不起作用 - 预期返回值为1,因为-.08 *介于0和-1之间,并且包含*
。
-.3*
-.8*
-*
-0.08
-0.08*
=COUNTIFS(H62:H66, ">-0.1\*",H62:H66, "<0.000\*")
编辑以解决@pnuts评论
如果我将-.3*
更改为-0.3*
而将-.8*
更改为-0.8*
,则该函数会返回值2,这不是我所期望的。
答案 0 :(得分:0)
问题是 不 负范围。问题只是*部分。
Works - 正确返回值1,因为0.01 *介于0和.1之间并包含*
0.01*
.8*
*
-0.08
-0.08*
=COUNTIFS(J62:J66, ">0.000\*",J62:J66, "<0.1\*")
这不起作用。它只给你1个,因为第4个条目-0.08没有*
。这满足J62:J66, "<0.1\*"
,但不满足J62:J66, ">0.000\*".
因此总共有1个到达。要进行测试,只需将第四个数字更改为-0.08*
,您就不会获得1.这不是because 0.01* is between 0 and .1 and contains an *
您无法在countif中使用*
。只需替换*
,COUNTIF
就能很好地发挥作用。
B1 =ARRAYFORMULA(--REGEXREPLACE(T(A1:A5),"\*",""))
这将从您的所有文本中删除*
并将其放在帮助列B中。对于没有*
的人,将会出现错误。但那没关系,因为你只想用那些数字来计算这些数字。现在只需在B列上使用COUNTIF
。
答案 1 :(得分:-1)
= ARRAYFORMULA(COUNTIFS(ROUND(--REGEXEXTRACT(T(A1:A5),"((?:\+|\-){0,1}(?:\d+){0,5}(?:\.\d+))(?:\*)"),2),">0.0",ROUND(--REGEXEXTRACT(T(A1:A5),"((?:\+|\-){0,1}(?:\d+){0,5}(?:\.\d+))(?:\*)"),2),"<=0.8"))
这应该有效。原始公式的问题是:您不能将文本用作数字。应从文本中提取数字并计算。