数组常量在excel中没有按预期工作

时间:2014-05-28 23:31:06

标签: arrays excel excel-formula excel-2010 worksheet-function

我试图使用数组常量来进行一些计算。我看到了这个帖子:Array Constants in Excel,但是我在公式中使用数组常量,所以它不是重复的。如果我使用=SUM({1,2,3}),则结果为6,符合预期。但是,如果我将其与DCOUNT一起使用,则无法正常工作:

      A
 1 Colour
 2 Red
 3 Yellow
 4 Green
 5 Red
 6
 7 Colour
 8 =Red

=DCOUNT(A1:A5;;A7:A8)的结果是2。

=DCOUNT(A1:A5;;{"Colour";"=Red"})的结果是 #Value!。错误消息公式中使用的值是错误的数据类型。

这在MS Excel 2010中有些不一致吗?或者我做错了什么?

修改

有人建议“=红色”是问题,但在标题您可以在常量 IMO中使用的元素的this页面的引用并没有真正实现它。如果是问题,那么以下内容应该有效:

      A
 1 Number
 2 1
 3 2
 4 3
 5 1
 6
 7 Number
 8 1

公式=DCOUNT(A1:A5;;A7:A8)给出了2,但公式=DCOUNT(A1:A5;;{"Number";1})=DCOUNT(A1:A5;;{"Number";"1"})仍然会出现与前一个示例相同的错误。

1 个答案:

答案 0 :(得分:0)

范围可以用作数组,但数组不能用作范围。

由于DCOUNT仅指定范围参数,因此数组常量是该参数的非法类型。

根据这些页面:

他们会暗示数组常量将用于不采用范围的项目,但是:

  1. 一个数组,它会产生一个值 - 或 -
  2. 单个值,导致数组( Ctrl-Shift-Enter 必须用于生成数组结果
  3. 要做我想做的事情(计算A2(A5)范围内包含字符串Red的所有单元格),我会这样做:

          A
     1 Colour
     2 Red
     3 Yellow
     4 Green
     5 Red
    

    =SUM(IF(A2:A5="Red", 1, 0))通过创建中间数组{1;0;0;1}来计算 Red 条目的数量,然后将所有元素添加到一起,从而生成2