2016-04-01 62 views
-1

我正在尝试总结工作表GLTB列D中的值,其中列A中的值以2.21开头,列E中的值等于单元格A1中的日期。我想这个公式:Excel中的SUMIFS与单元格引用

=SUMIFS(GLTB!$D$3:$D$26522,GLTB!$A$3:$A$26522,"2.21*",GLTB!$E$3:$E$26522,GLTB!$A$1)*-1 

的问题:

  1. A1中的日期不出现其他地方在GLTB片,所以我应该为一个总和得到0,但我不”吨。我得到一些与我找不到的东西相对应的数字。

  2. 我可以创建列D中列A以2.21等于0(或任何其他数字)开头的所有值,它对公式结果没有影响。

  3. 我尝试这个配方基础上回答其他问题:

    =SUMIFS(GLTB!$D$3:$D$26522,GLTB!$A$3:$A$26522,"2.21*",GLTB!$E$3:$E$26522,GLTB!"="&$A$1)*-1 
    

这只是改变的最后一个标准的参考。但是,Excel给了我一个公式错误响应。

任何想法?

+1

A列中的值实际上是*日期*吗?如果是这样,请理解日期存储为长/数值,并且单元格的实际*值*为**不是**“2.21 ...”,因此使用字符串通配符(如“*”)可能没有预期的结果为你... –

+1

是单元格A1列中其余数字的一部分? 2.21是日期的一部分,还是其他产品代码的其他部分? E列和A1列中的日期是否按David所指出的那样存储为字符串或数字。一种测试方法是= istext(A1)。如果它返回True的值,则它是一个字符串,而不是Excel中的日期/时间值,以数字形式存储,但格式设置看起来像别的东西。 –

+0

我们需要更多的信息和示例数据,才能真正帮助您... –

回答

0

这应该让你更接近一点:

=SUMIFS(GLTB!$D$3:$D$26522,GLTB!$A$3:$A$26522,">=2/21/16",GLTB!$E$3:$E$26522,GLTB!$A$1)*-1 

这假定A列中包含日期值这是格式化为字符串。如果这些值不日期值,那么请给什么单元格内容列A

注意的一些例子:我不是你为什么寻找明确的“2.21 *”所以我用了>=运营商。这可以改变,或者我们可以根据您的需求为SumIfs增加额外的标准。

其他的事情要小心:

确保列E和A1单元格都包含相同的类型的数据(无论是格式化为代表日期的字符串,字符串数据日期如果您有不一致的数据类型,在你的Criteria2GLTB!$E$3:$E$26522,GLTB!$A$1)将不会返回预期的效果等价测试。

+0

我读到E列是日期,A列是可以是2.21 ######的数字。但我的理解可能是错误的。 –

+0

@ScottCraner我认为你是对的...更多的示例数据是需要从OP ...“A列中的值开始于2.21”(可能它不仅仅是一个日期,所以他的标准当然不符合...) –

+0

是的,对我来说OP是把他想要在A1中过滤的日期,但是数据从第3行开始,所以A列中充满了数字。 –

0

首先,你应该格式化你的数据表。要做到这一点,使用“开始>格式如表”。这也会给你为表格提供名称的选项,例如数据。基本上这使得执行以下步骤更容易。

从此,您不需要再参考GLTB!$A3:$A26522,但可以使用data[ColumnA]

我假设你有一列ValueA与那里可能以2.21开始,然后ValueD你想总结和DateE应该等于某个日期。

您正在查找的公式不是SUMIF,而是更好的SUMPRODUCT,因为这允许您检查多个条件。

最终的公式看起来像这样:

=SUMPRODUCT((data[DateE]=A1)*(LEFT(data[ValueA],4)="2.21")*data[ValueD])

现在是什么做的。 SUMPRODUCT首先构建一个产品,然后对其进行总结。让我们假设以下值:

A1 = 2016-03-01

DateE = 2016-03-01 ValueA = 2.213454 ValueD = 3

公式将然后执行以下操作:

(2016-03-01=2016-03-01) is 1 ("2.21" = "2.21) is 1 3 is 3

1*1*3 = 3

现在,如果你改变A1日期,您SUMPRODUCT细胞的价值应该会变化因此。

0

作为初学者,我建议使用表格 - 读取和维护数据要容易得多:Insert-->Table

例如

这里我有“Table1”,日期列格式化为短日期。

Name Date Quantity 
Alpha 17-Mar-16 1 
Beta 15-Feb-16 2 
Charlie 11-Mar-16 3 
Dog 11-Feb-16 4 
Echo 9-Feb-16 4 
Foo 6-Jan-16 5 

然后在一个单独的行/单元格中,您可以输入一个公式来求和数据从2月1日起的数量列。

这里我使用了不同的日期格式,但Excel很好。

月以来,总体:14 =SUMIFS(Table1[Quantity],Table1[Date],">=01-Feb-16")

二月只有总计:10 =SUMIFS(Table1[Quantity],Table1[Date],">=01-Feb-16", Table1[Date],"<29-Feb-16")

0

尝试是这样的:

=SUMPRODUCT((INT(GLTB!$E$3:$E$26522)=INT(GLTB!$A$1))*(ROUNDDOWN(GLTB!$A$3:$A$26522,2)=2.21)*(GLTB!$D$3:$D$26522)) 

如果返回和错误,那么两件事情之一:

  1. 你的日期不是真正的日期,但tex这看起来像日期。

  2. 您的单元格在某些列中有错误。