Возвращаемое значение последней заполненной ячейки в переменном диапазоне

В колонку D я хотел бы скопировать значение из последней ячейки с данными в столбцах E вверх до столбца с заголовком «DETAIL». Там может быть от 2 до 15 столбцов от E до столбца с этим заголовком, так что вот где я застрял. Поэтому, чтобы быть ясным, пример:

ABCDEFGH DETAIL 1 xxxabcdx 2 xxxx 3 xxxcbax 3 xxxdcx 

Должен заполнить столбец D так:

  ABCDEFGH DETAIL 1 xxxdabcdx 2 xxxx 3 xxxacbax 3 xxxcdcx 

Я не возражаю против этого с помощью формулы (которую я не мог придумать) или программно.

Создайте динамический именованный диапазон, нажав Ctrl F3, чтобы открыть Диспетчер имен, нажмите «Создать», назовите диапазон что-то (я выбрал MyRange ), а затем использую эту формулу для его определения (обратите внимание, что вам может потребоваться изменить имя листа):

 =Sheet1!E2:INDEX(Sheet1!2:2,MATCH("Detail",Sheet1!$1:$1,0)-1) 

тиграватар динамический именованный диапазон для E2: "Detail"

Затем, в ячейке D2 и скопированной вниз, используйте эту формулу (я не использовал IFERROR чтобы он был обратно совместим):

 =IF(COUNTA(MyRange),INDEX(MyRange,MATCH(REPT("z",255),MyRange)),"") 

Вот результаты (выделены) с использованием предоставленных данных образца:

Результаты формулы

Пожалуйста попробуйте:

 =IFERROR(INDEX(F2:T2,,MATCH("zzzzzz",F2:T2)),"") 

в D2 и скопированы в соответствии с требованиями.

Попробуйте использовать LOOKUP :

 =IFERROR(LOOKUP(9^99,SEARCH("*",E1:H1),E1:H1),"") 

SEARCH("*",E1:H1) возвращает число, когда оно соответствует любому символу и ошибке, когда ячейка пуста. LOOKUP затем возвращает содержимое ячеек последнего числа меньше 9^99 в массиве, сгенерированном SEARCH .

Например, в первой строке SEARCH("*",E1:H1) возвращает {1,1,1,1} так что LOOKUP возвращает последний 1, являющийся d .

В третьей строке SEARCH("*",E3:H3) возвращает {1, 1, 1, #VALUE!} LOOKUP возвращает последний 1, который здесь.

Эта формула будет работать как с числами, так и с текстом. Недостатком является то, что он считается более медленным, чем INDEX / MATCH . С другой стороны, вы можете изменить INDEX / MATCH для работы с числами или изменить его для работы для обоих, но он становится формулой массива:

 =IFERROR(INDEX(E1:H1,,MATCH(1,SEARCH("*",E1:H1))),"") 

[Работает с Ctrl + Shift + Enter , в противном случае возвращает пустую ячейку с помощью Enter )

  • Excel - суммирование значения строки
  • Excel Logic и If Statementments
  • Виртуализация приложений Microsoft - экспорт в Excel
  • Excel: найдите дату, когда достигнут совокупный итог
  • Как навязать формулу в excel?
  • Итерация через столбец, чтобы найти конкретное значение
  • промежуточный итог, совпадение индекса с динамическим диапазоном и несколькими критериями
  • Объединить время как текст в Excel, но игнорировать пустые значения
  • Excel. Фильтрация столбца по значению другого столбца.
  • Как остановить excel от усечения длины поля
  • Excel: множественная замена без вложенности и без VBA
  • Давайте будем гением компьютера.