或在countifs的条件?

时间:2014-10-06 02:35:03

标签: excel excel-formula sumifs

我有一个表,我希望计算另一个表中数据的一个属性的条目,条件是其他属性(数据列)。

所以我有一个摘要表格,如:

  =countifs(data type, "="&ColTags, data color, "="&ColTags, ...)

ColTags是摘要网格中列的标题标记。

现在我想补充一点,只能汇总数据中的某些行而不是所有行(基本上都是过滤器)。所以我在 countifs 中添加了一个标准,如:

   data city, "="&CityTag

其中CityTag引用一个单元格,用户可以(可选)进入城市以过滤摘要条目。我把" *"在该单元格中作为默认值,并且它具有所需的无效效果(如预期的那样),如果我在那里放置一个城市名称" Texas"然后它只适当地显示该城市的摘要。喝彩。

它允许一种简单的方法,在任何城市的摘要表上选择用户过滤(选择),或者不允许。

除了数据表中的数字条目外,它可以找到。

对于他们来说,做同样的事情,但在选择单元格(PriceTag)中输入数字会失败。也就是说,基本上:" 6 = *"失败。但是如果我使用算术比较运算符,

 data Price, ">="&PriceTag

它有效。但只是进入" *"通配符似乎不适用于数字条目,它只能进行实际值比较。

例如;

 countif( A1,"="&A2)

for:  A1   A2
      abc   *    ->  1
      abc   x    ->  0
      abc  abc   ->  1

   6    *    ->  0    ??
   6    5    ->  0
   6    6    ->  1

似乎Excel正在尝试自动识别和输入数字,并对通配符进行不同的处理,因此没有匹配" *"对于数字?

我试图通过在选择Tag单元格中实际放置条件(而不仅仅是值)来解决这个问题,如下所示:

countif( ... data Price, PriceTag  )

然后在Tag单元格实际放置:

"<100"    or such...

再一次很好用,但我找不到任何值,这是一个无操作,即像元字符&#34; *&#34;是为了文字。我必须使用一个巨大的数字作为数字默认值,但对于任何具有空白价格字段(我有)的情况都会失败,使其与无操作默认值不同。

尝试&#34; = *&#34;因为操作似乎不起作用,因为它似乎想要进行数字比较。

所以考虑到这一点,我想知道有关#34;或者#34;的一些解决方法。 countifs 函数的条件,现在只接受一系列AND条件。要有一些等同的条件:

(PriceTag="*")||(data price, PriceTag)

一种方法是将 countifs 嵌入if语句中;

   =if( PriceTag="*", Long-Countifs-without-Price, Long-countifs-with-price)

但这显然是凌乱的,因为我想允许两个这样的数字选择,甚至更糟。

这有什么好的Excel成语吗?或者我只需要用(+,*)术语转换为sumProduct? 试图这样做,术语:

   ...*(data city=CityTag)

(CityTag是一个包含*的单元格)评估为:

   { ...list of city names...} = "*" 

给出了结果:

 { False, False, ... }

我希望{True,True,...}就像我得到的sumifs结果一样,所以我仍然没有一个好的解决方案。

2 个答案:

答案 0 :(得分:1)

  • 您不需要 = 标志
  • 对于PriceTag中的默认条目,请使用&lt;&gt; x ,其中 x 是任何非数字字符。

    = COUNTIFS(数据类型,ColTags,数据颜色,ColTags,数据价格,PriceTag)

答案 1 :(得分:1)

对于要用星号通配的数字和空白单元格,在COUNTIF / COUNTIFS中嵌套一个IF(),其中常量中,并将这些返回值设为SUM,

=SUM(COUNTIF(A1,IF(A2="*",{"","<1e99"},A2)))

仅作为数组公式使用,必须使用Ctrl + Shift + Delete完成。如果您使用直接比较处理OR值的文本值(例如城市名称),则它将作为标准公式使用。

=SUM(COUNTIF(A1,{"abc","def",""}))

={"abc","def",""}放入单元格并使用单元格引用作为条件参数,这不起作用。