或在countifs条件?

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

所以我有一个总结表作为一个网格的东西,如:

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

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

现在我想添加到这个能力只能汇总数据中的某些行不是全部(基本上是一个filter)。 所以我添加了一个标准:

  data city, "="&CityTag 

CityTag引用一个单元格,用户可以(可选地)进入一个城市来过滤总结条目。 我把默认的“*”放在这个单元格中,并且没有任何效果(如预期的那样),如果我在城市名称中join了“Texas”,那么它只能显示该城市的总结。 布拉沃。

它允许一个简单的方法,在任何城市的摘要表上有一个用户过滤(select)的选项,或者没有选项。

除数据表中的数字条目外,这个工作方式是可用的。

对于他们来说,做同样的事情,但在select单元格(PriceTag)中input数字将失败。 也就是说,“6 = *”基本上是失败的。 但是如果我使用算术比较运算符,

  data Price, ">="&PriceTag 

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

例如;

  countif( A1,"="&A2) for: A1 A2 abc * -> 1 abc x -> 0 abc abc -> 1 

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

Excel似乎试图自动识别和键入数字,并对通配符比较进行不同处理,因此数字中没有“*”的匹配项?

我试图通过在select标记单元格中实际添加条件(而不仅仅是值)来解决这个问题,如下所示:

 countif( ... data Price, PriceTag ) 

然后在Tag单元格中放入:

 "<100" or such... 

再次,这很好地工作,但我找不到任何有价值的地方,这是一个无操作,即像元字符“*”是文本。 我可以使用一个巨大的数字作为数字默认值,但是对于任何空白价格字段(我有),都会失败,这使得它与没有操作的默认值不同。

尝试“= *”作为一个操作不起作用,因为它似乎想做一个数字比较。

所以考虑到这个问题,我想知道有一些解决方法可以用于countifs函数的“或”条件,现在它只接受一系列AND条件。 要有一些等同的说法:

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

一种方法是将这些标识embeddedif语句中;

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

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

任何好的Excel的成语呢? 或者我只需要转换为sumProduct(+,*)条款? 试图做到这一点,术语:

  ...*(data city=CityTag) 

(其中CityTag是包含*的单元格)评估为:

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

这给出了以下结果:

  { False, False, ... } 

我会期待{True,True,…}像sumifs的结果,所以我仍然没有一个好的解决scheme。

对于数字和空白单元格星号通配符,在COUNTIF / COUNTIFS中嵌套一个具有常量的IF(),并且像这样总结返回值,

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

这只能用作数组公式,并且必须使用Ctrl + Shift + Delete进行最终确定。 如果您正在使用直接比较的文本值(例如,城市名称)的OR,它将作为一个标准公式。

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

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

  • 你不需要=
  • 对于PriceTag中的默认条目,请使用<> x ,其中x是任何非数字字符。

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