У меня 2 листа:

  1. "Sheet1", который содержит [дата в формате "дд / мм / гггг"]:

    0| A |   B    |     C    |    D     |
    1|ID |Duration|Start_date|End_date  |
    2|ALB|       3|01/01/2016|03/01/2016|
    3|DRA|       5|08/01/2016|12/01/2016|
    
  2. "Sheet2" содержит подробный график (по дням месяца) для 2 идентификаторов:

    0|    A     |    B     |    C     |    D     |...|    M     |...|
    1|Date      |01/01/2016|02/01/2016|03/01/2016|...|12/01/2016|...|
    2|ALB       |          |          |          |...|          |...|
    3|DRA       |          |          |          |...|          |...|
    

В «Sheet2» с помощью «SUMIFS» я хотел бы разделить эти даты по идентификатору и в результате получить следующее [для базы данных я использую информацию, представленную в «Sheet1»]:

0|    A     |    B     |    C     |    D     |...|    M     |...|
1|Date      |01/01/2016|02/01/2016|03/01/2016|...|12/01/2016|...|
2|ALB       |         1|         1|         1|...|          |...|
3|DRA       |          |          |          |...|         1|...|

Я пробовал следующее в [Sheet2, ячейка B2], но в обоих случаях появлялась ошибка #VALUE!:

  • =SUMIFS(IF(AND(B$2>='Sheet1'!$C:$C;B$2<='Sheet1'!$D:$D);"1";"");'Sheet1'!$A$2:$A$3;'Sheet2'!B2)
    
  • =SUMIFS(IF(AND("01/01/2016">="all Start_dates";"01/01/2016"<="all End_dates");"1";"");"all IDs";"single ID")
    

Где моя ошибка? Или есть другой способ добиться желаемого результата?

0
VSE 7 Ноя 2016 в 16:44

2 ответа

Лучший ответ

EDITED : используйте эту формулу массива. Вставьте его и нажмите CTRL + SHIFT + ENTER :

={SUMPRODUCT(IF(Sheet1!$A$2:$A$7=$A2,1,0),IF(Sheet1!$C$2:$C$7<=B$1,1,0),IF(Sheet1!$D$2:$D$7>=B$1,1,0))}

Или попробуйте мой новый файл примера

0
bzimor 16 Мар 2017 в 05:54

Если ваши даты в Sheet2 находятся в B2 – M2, то

=IF(COUNTIFS(Sheet1!$C:$C,"<="&B$2,Sheet1!$D:$D,">="&B$2,Sheet1!$A:$A,$A3)>0,1,"")

Начиная с B3.

0
Tom Sharpe 8 Ноя 2016 в 13:12