如何在Excel中将SUMIFS组合在一起以包含OR?

时间:2016-01-26 14:46:52

标签: excel excel-formula sumifs

我正在尝试整理一个日常定期付款的日历,这个日历将开始,付款的日期和取消的日期(如果有的话),但是我正在努力设置我的SUMIFS功能。我已经设置了一个示例here

我要做的是在付款当天添加付款值,如果开始日期小于日期,并且仅当取消的日期为空或日期在取消日期之前。

付款清单:

      A            B          C
1  Payment | Begun      | Cancelled
  ---------+------------+------------
2  £5.00   | 01/01/2016 |
3  £9.00   | 04/01/2016 | 01/02/2016

日历(我期待):

      E          F 
1  Date     | Payment   
  ----------+---------
2  01/01/16 | £5.00
3  02/01/16 | £0.00
4  03/01/16 | £0.00
5  04/01/16 | £9.00
...
33 01/02/16 | £5.00
34 02/02/16 | £0.00
35 03/02/16 | £0.00
36 04/02/16 | £0.00

所以在这个例子中:应该在01/01/16和01/02/16添加5英镑,而仅在04/01/16添加9英镑。

到目前为止,我在F列中已经:

=SUMIFS($A$2:$A$3, DAY($B$2:$B$3), "="&DAY(E2), $B$2:$B$3, "<="&E2, $C$2:$C$3, ">="&E2)

2 个答案:

答案 0 :(得分:1)

F2中的这个数组公式应该可以达到你想要的效果:

=SUM(IF((DAY($B$2:$B$3)=DAY(E2))*(E2>=$B$2:$B$3)*(E2<=$C$2:$C$3),$A$2:$A$3))+SUM(IF((DAY($B$2:$B$3)=DAY(E2))*(E2>=$B$2:$B$3)*(""=$C$2:$C$3),$A$2:$A$3))

这是一个数组公式,必须使用Ctrl-Shift-Enter确认。然后复制下来。

&#39;或&#39;在数组公式中必须使用+。如果您拥有AND *,那么<?php $filename = 'path/filename.ext'; // Read the file into an array of lines $lines = file($filename, FILE_IGNORE_NEW_LINES); // Group name $group = '????'; // Our result $GroupsAndNames = array(); // Loop over all lines; extract group names and person names foreach($lines as $line) { if (trim($line)=='') continue; // ignore empty lines if ( ($line[0]!=' ') && ($line[0]!="\t") ) { // it's a group entry, so create an empty group array $group = trim($line); $GroupsAndNames[$group] = array(); } else { // it's a person's name, so add to group array $GroupsAndNames[$group][] = trim($line); } } echo '<!DOCTYPE html> <html> <head> <title>Boys and Girls</title> <head> <style> div input + div > div { display: none; padding-left:24px; } div input:checked + div > div { display: block; } </style> </head> <body>' . PHP_EOL; foreach($GroupsAndNames as $key => $group) { echo ' <div>' . PHP_EOL; echo ' <label for="'.$key.'">'.$key.'</label>' . PHP_EOL; echo ' <input type="checkbox" id="boys" />' . PHP_EOL; echo ' <div>' . PHP_EOL; foreach($group as $name) { echo ' <div>'.$name.'</div>' . PHP_EOL; } echo ' </div>' . PHP_EOL; echo ' </div>' . PHP_EOL; } echo ' </body> </html> ' . PHP_EOL; ?> 就可以了。

enter image description here

我假设您要在列A:C中添加日期,您可以将所有小的绝对范围更改为所需的范围,它将适用于倍数。

请原谅我们的倒退日期。

答案 1 :(得分:0)

你应该在你的情况下添加两个单独的SUMIF()的结果: =SUMIFS($A$2:$A$3, DAY(B$2:B$3), "="&DAY(E2), $B$2:$B$3, "<="&E2, $C$2:$C$3,">="&E2) + SUMIFS($A$2:$A$3, DAY(B$2:B$3), "="&DAY(E2), $B$2:$B$3, "<="&E2, ISBLANK($C$2:$C$3),TRUE)

使用Ctrl + Shift +确认输入