У меня есть 10 строк данных следующей формы:

00004
04000
03000
06000
00500
00001

То, что я хотел бы сделать, это получить последнее ненулевое значение в каждой из этих строк и вернуть их рядом с соответствующими строками следующим образом:

000044
040004
030303
066006
055005
002011

Обратите внимание, что каждое значение выше находится в отдельной ячейке. Какой лучший способ сделать это?

3 ответа3

1

Вы можете использовать цепочечные формулы, чтобы сначала заменить все '0' ничем, а затем взять самый правый символ, например
=RIGHT(SUBSTITUTE(cell1&cell2&cell3...,"0",""),1)

1

Используйте следующую формулу массива:

=INDEX(A1:E1,MATCH(2,IF(A1:E1<>0,1)))

Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter при выходе из режима редактирования вместо Enter. Если все сделано правильно, тогда Excel поместит {} вокруг формулы.

0

С вашими данными в A1:E1 (и предполагая, что все значения являются целыми числами), вы можете использовать эту обычно вводимую формулу:

F1: =LOOKUP(2,1/A1:E1,A1:E1)

и заполнить вниз.

Если функция LOOKUP не может найти lookup_value, функция соответствует наибольшему значению в lookup_vector, которое меньше или равно lookup_value. 1/a1:e1 всегда будет возвращать значение меньше 2 или ошибку DIV/0 . Таким образом, функция вернет последнее ненулевое значение или, если все они равны нулю, ошибку NA .

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