формула электронной таблицы для возврата частей отфильтрованных ячеек в столбце

формула электронной таблицы для возврата частей отфильтрованных ячеек в столбце

Я использую 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

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

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

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

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

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

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

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

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

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

Предположим, что ваши данные «2/8 9:00» расположены в ячейке A2, а «31/8 9:00» — в ячейке A7, все данные в столбце Id 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".

Связанный контент