Я использую Libreoffice. (Если бы Excel или GoogleSpreadsheets были единственным способом получить решение, я был бы готов переключиться. Но предпочтительной платформой является LibreOffice, я ищу решение для этого программного обеспечения).

Вот чего я хочу добиться, у меня есть такая таблица:

|Date         |Available?   |Length  |
|2/8 9:00     |no           |10
|26/8 9:00    |yes          |5
|28/8 9:00    |no           |2
|29/8 8:00    |yes          |5.5
|30/8 9:00    |yes          |6
|31/8 9:00    |no           |3

Теперь я хочу извлечь все даты, где есть ДА в столбце "доступно". В этом сценарии не бывает разных месяцев, поэтому важен только день. То, что я хочу получить в результате в какой-то другой части таблицы, будет

26, 29, 30

И чтобы сделать его еще более сложным, что, если я хочу посчитать количество дней, когда длина> 5 и доступный - это правда? В приведенном выше примере это будет

3

Это возможно? Я болтался с VLOOKUP, но понятия не имею, с чего начать. Я предполагаю, что Excel будет работать так же или похоже.

Я хочу, чтобы это работало без необходимости пользователя фильтровать что-либо вручную. Идея состоит в том, чтобы просто скопировать / вставить данные и получить результат с помощью формулы на другом листе файла и создать там счет-фактуру.

1 ответ1

1

В Excel ... и на основе этой хорошей ссылки index() + match().

Решение для этой части:

"если я хочу посчитать количество дней, когда длина> 5 и доступный истина? > 3 "

если длина> 5, то вы должны получить 2 .. не 3 .. если длина> = 5, то только вы получите 3.

Предполагая, что ваши образцы данных находятся в A1:C7, ответ:

=COUNTIFS(B:B,"yes",C:C,">5")

Вы получите 2.

и для этой части:

msgstr "хочу извлечь все даты, где есть ДА в столбце" доступно "

Предполагая, что ваши данные «2/8 9:00» расположены в A2, а «31/8 9:00» расположены в A7, все столбцы идентификатора данных A отформатированы в формате даты / времени в Excel, поместите это в D2:

=IFERROR(IF(ROWS($A$2:$A2)>1,INDEX(OFFSET($A$2:$A$7,MATCH(D1,$A$2:$A$7,0),0),MATCH("yes",OFFSET($B$2:$B$7,MATCH(D1,$A$2:$A$7,0),0),0)),INDEX($A$2:$A$7,MATCH("yes",$B$2:$B$7,0))),"")

и это в E2:

=IFERROR(DAY(D2),"")

вы получите «26, 29, 30» там.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .