2014-10-06 94 views
0

我有一张表,我想在另一个表中计算一个数据属性的条目,并以其他属性(数据列)为条件。或条件在countifs?

所以我总结的表作为的事情,比如电网:

=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将尝试自动识别并键入数字,并区别对待通配符比较,因而不存在对NUMERICS匹配的“*”?

我试图实际上是把条件(而不仅仅是值)选择标记的细胞,这样来解决这个问题:

countif(... data Price, PriceTag ) 

,然后在标签细胞实际上是把:

"<100" or such... 

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

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

因此,我想知道有一些解决方法可以使用功能,该功能现在只接受一系列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结果一样,所以我仍然没有很好的解决方案。

+0

对于价格(非负整数),请使用“> = 0”而不是“*”。 “*”不适用于数字数据。 – 2014-10-06 02:46:43

+0

谢谢 - 正如我上面提到的,我尝试过,但空白价格字段(我的数据)失败。我可能只需要通过并清除缺失的价格数据(转换为0)。 – guthrie 2014-10-06 12:45:12

回答

1

对于数字和空白细胞用星号是通配符,与常量巢一个IF()的COUNTIF/COUNTIFS和求和这样的返回(S),

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

即只能作为阵列式,并且必须用Ctrl敲定+ Shift + Delete键。如果您正在使用直接比较的文本值(例如城市名称)的“或”,则它将用作标准公式。

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

这并不通过把={"abc","def",""}到细胞中,并使用单元格引用作为条件参数工作。

1
  • 你不需要=迹象
  • 对于标价默认项,请使用<> X代替,其中X是任何非数字字符。

    = COUNTIFS(数据类型,ColTags,数据的颜色,ColTags,数据价钱,标价)