Вернуть заголовок столбца за последнюю дату в Google Таблицах в виде формулы массива

У меня есть ряд столбцов, используемых для отслеживания некоторых этапов записей в Google Таблицах с датами. Мне нужен столбец, который возвращает последний этап для каждой записи, предпочтительно с использованием формулы массива, поскольку это список, который будет постоянно добавляться, и копирование формул в новые строки - это боль (это то, что закончится с конечным пользователем, поэтому должно быть просто).

Это образец моего желаемого ввода / вывода. Желаемый результат

Я пробовал использовать формулы массива в сочетании с этим трюком поиска, но Я думаю, что изменение входных данных этой формулы на многострочные диапазоны означает, что результат игнорирует, в какой строке находится запись. Например, упаковка поиска в ARRAYFORMULA и применение его к образцу возвращает «Stage4» в каждой строке. В качестве альтернативы я думаю, что есть способ сделать это с помощью QUERY / FILTER, но я никуда не денусь. Спасибо всем.

РЕДАКТИРОВАТЬ: Для пояснения, «Этапы» не будут нумероваться, но будут текстовыми полями (потенциально динамическими, отсюда и мое нежелание использовать HLOOKUP).


person neophlegm    schedule 07.09.2018    source источник
comment
Какова логика порядка вывода? Почему бы просто не использовать UNIQUE (TRANSPOSE (‹ряд этапов›))?   -  person ttarchala    schedule 08.09.2018
comment
Результатом будет последний этап, дата которого указана в соответствующих столбцах слева. Просто совпадение, что каждый этап представлен один раз. Если в ячейке под заголовком «Этап3» была дата, то первым из выходных данных будет «Этап3», а не этап2.   -  person neophlegm    schedule 10.09.2018


Ответы (1)


Предполагается, что «Stage1» находится в ячейке A2 и вы не можете переходить между этапами. Вы можете использовать эту формулу в F3 для автоматического заполнения вывода:

=ArrayFormula(transpose(
    split(
      concatenate(
        if((A3:D<>"")*(B3:E=""),A2:D2,"")&
        if(column(A2:D2)=column(D2),char(9),"")
      )
      ,char(9),true,false
    )
 ))

Вы можете видеть, что мы определяем этап, проверяя непустой, за которым сразу следует пустой. Отсюда правило без скачков :-) Кроме того, для этого требуется дополнительный пустой столбец после столбца последнего этапа (в вашем примере столбец E должен быть пустым).

ps: дополнительный бонус, эта формула также работает для строк "без этапа" ;-)

person Henrique G. Abreu    schedule 08.09.2018
comment
Это выглядит очень многообещающе: вы правы, говоря о том, что не прыгаете по ступеням. Я попробую и вернусь. - person neophlegm; 10.09.2018
comment
Да, это прекрасно. Мне нужно несколько настроек для моей точной компоновки столбцов и некоторых других ошибок, которые не связаны с вопросом, но это именно то, что я просил. Золотая звезда для вас; Спасибо!! - person neophlegm; 10.09.2018