0

我不能为此使用数据透视表,因为这个计算发生在一个巨大的嵌套 if 公式中。

A 列有单位
B 列有开始日期
C 列有结束日期
D:F 列有数据。列 E... 是试图弥合该数据,因此我可以比较 7 月和 8 月。

编辑问题:我不妨把它扔在这里,因为每个人都是从头开始做的。

好的,在第一张图片中,有两个日期,一个开始测量,一个结束测量。我采取结束 - 开始。很容易。

但也有例外。有时 D:F

http://i.imgur.com/z9KhdmC.png

但是我的数据不一致。D:F 可能全是零。有时 7 月的数据是 8 月,但根据桥梁,情况并非如此。我认为 7 月的数据不会超过 8 月 1 日。

为了解释这一点,这张新照片就在这里。

http://i.imgur.com/QcR55s8.png

这是我目前正在尝试弄清楚的公式。

=IF(AND(B2>=DATE(2013,7,1),B2<=DATE(2013,8,1)),IF(G2<>0,IF(-need.to.prevent.duplicates.here- ,F2-D2,0),V2),IF(AND(C2>=DATE(2013,7,1),C2<=DATE(2013,7,31)),IF(B2=DATE(2013,8, 1),F2-E2,F2-D2),0))

4

3 回答 3

1

使用提供的图片,在单元格 I32 中尝试这个公式(因为那是一月份应该开始的地方)并上下复制:

=IF(TEXT($B32,"mmmm")=I$31,IF(TEXT($C32,"mmmm")=I$31,$G32,$E32-$D32),IF(TEXT($C32,"mmmm")=I$31,$F32-$E32,0))

编写相同内容的替代(缩短)版本:

=(TEXT($B32,"mmmm")=I$31)*($E32-$D32)+(TEXT($C32,"mmmm")=I$31)*($F32-$E32)

[编辑]:我在这里包括一个示例工作簿

于 2013-08-15T15:16:12.720 回答
0

我想我找到了我的解决方案。我的最终结果是这样的。

=IF(AND(B2>=DATE(2013,7,1),B2<=DATE(2013,8,1)),IF(G2<>0,IF(E2<>"",E2-D2,IF (P2=G2,0,F2-D2)),V2),IF(AND(C2>=DATE(2013,7,1),C2<=DATE(2013,7,31)),IF(N2>G2 ,V2-N2,G2-N2),0))

我所做的是将 8 月与 G2(总数)进行比较以消除重复项。如果八月完全相似,那么公式将把七月变成 0。

我也在 6 月的数据方面做了一些工作。

于 2013-08-15T17:46:25.427 回答
0

如果两个月份都不是 8 月,您还没有提到您想要什么,因此在以下公式中(在第 1 行并复制到适合)该方案导致 FALSE:

=IF(AND(MONTH(B1)=8,MONTH(C1)=8),IF(ISBLANK(E1),"OTHER",E1))  

但是,当两者都在 8 月时,这应该满足您的要求,前提是“其他”是您替代配方的占位符。

编辑:

我认为上面符合“我想要一个公式,如果 B 和 C 有八月。如果是,请在 E 中查找数据。如果数据不在 E 中,请执行另一个公式。” 但是如果你想在一个“单元”的所有实例中测试 E 数据的存在,那么这个:

=IF(AND(MONTH(B6)=8,MONTH(C6)=8),IF(COUNTIFS(A:A,A6,E:E,"<>"&""),"OTHER",E6))
于 2013-08-15T14:21:34.150 回答