Чтобы вернуть последнее значение в строке для даты и человека к действию (VBA) - PullRequest
0 голосов
/ 13 февраля 2020

I sh, чтобы построить 2 столбца текущего состояния, чтобы найти последние значения в каждой строке в Excel:

  • одно для последней даты, а другое для последнего человека, которому необходимо действовать.

Пожалуйста, обратитесь к приложенному jpg. Чтобы вернуть последние значения в строке «Дата и лицо для действия»

Я попытался использовать функции Excel, а именно: INDEX или LOOKUP , но безрезультатно из-за столбцов 3 примечания в таблице.

Буду признателен, если вы посоветуете мне, как создать код VBA для вышеуказанного запроса.

Из L C TAN 2020-02-13

enter image description here

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Вы на правильном пути.

  • вы можете использовать LOOKUP, чтобы вернуть последний элемент в массиве
  • НО вам нужно убедитесь, что в вашем массиве есть только те элементы, которые вы хотите учитывать

Существует вариант INDEX, в котором вы можете ввести массив для аргумента столбца (или строки) и вернуть выбранные элементы. Вы вводите массив или константу arra в следующем формате:

N(IF(1,*array or arrayConstant*))

Итак, формула, которая будет работать для ваших требований, будет иметь вид:

L6:  =LOOKUP(2,1/LEN(INDEX($B6:$J6,N(IF(1,{2,5,8})))),INDEX($B6:$J6,N(IF(1,{2,5,8}))))

и заполните.

enter image description here

0 голосов
/ 13 февраля 2020

Вы можете использовать MAX для даты, чтобы найти самую последнюю дату в этой строке.

Затем вы можете использовать IFERROR и VLOOKUP, чтобы найти действие с этой датой. то есть поиск даты, которую MAX возвратил в первом наборе столбцов, и если это возвращает ошибку, посмотрите во втором. Если второе возвращает ошибку, посмотрите на третье.

Согласно вашему листу, формула для L6 будет =MAX(B5:I5)

Формула для M6 будет =IFERROR(VLOOKUP(L5,B5:C5,2,FALSE),IFERROR(VLOOKUP(L5,E5:F5,2,FALSE),VLOOKUP(L5,H5:I5,2,FALSE)))

Затем вы можете перетащить ячейки вниз, чтобы заполнить дату и действие для каждой строки. Вы можете добиться того же с VBA, если хотите, но я бы подумал, что это самый простой способ получить желаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...