Страницы: 1
RSS
поиск последнего значения в строке (нечетных столбцов), Необходимо с помощью формулы найти в диапазоне (M10:AH10) последнее значение в нечетном столбце (без VBA, без использования дополнительных столбцов)
 
Всем привет, экель 2021 (версия 2109). Помогите пожалуйста найти решение:
Необходимо с помощью формулы найти в диапазоне (M10:AH10) последнее значение в нечетном столбце (без VBA, без использования дополнительных столбцов)
 
Здравствуйте.
Попробуйте такую формулу массива в АК11
Код
=ЕСЛИОШИБКА(ИНДЕКС(A11:AH11;МАКС((Таблица1[@]<>"")*ЕНЕЧЁТ(СТОЛБЕЦ(Таблица1[@]))*СТОЛБЕЦ(Таблица1[@])));"Пусто") 
Изменено: gling - 14.05.2025 22:13:01
 
=IFERROR(LOOKUP(2,1/(MOD(COLUMN(M11:AH11)-COLUMN(M11)+1,2)=1)/(M11:AH11<>""),M11:AH11),"пусто")
CTRL-SHIFT-ENTER если будет брыкаться. Проверить на 2021 не могу.
Изменено: Metanor - 14.05.2025 20:36:22
 
Цитата
написал:
=IFERROR(LOOKUP(2,1/(MOD(COLUMN(M11:AH11)-COLUMN(M11)+1,2)=1)/(M11:AH11<>""),M11:AH11),"пусто")CTRL-SHIFT-ENTER если будет брыкаться. Проверить на 2021 не могу.
функция MOD не работает
 
gling, Спасибо, работает...
 
gling, подскажите еще момент,

почему так работает:
Код
=ЕСЛИОШИБКА(ИНДЕКС(A11:AH11;МАКС((Таблица1[@]<>"")*ЕНЕЧЁТ(СТОЛБЕЦ(Таблица1[@]))*СТОЛБЕЦ(Таблица1[@])));"Пусто")
а так не работает: =ЕСЛИОШИБКА(ИНДЕКС(M11:AH11;МАКС((Таблица1[@]<>"")*ЕНЕЧЁТ(СТОЛБЕЦ(Таблица1[@]))*СТОЛБЕЦ(Таблица1[@])));"Пусто"), возвращает "пусто" ???

P.S. в исходнике опечатка (диапазон нужный M11:AH11)
 
Эта часть формулы (МАКС((Таблица1[@]<>"")*ЕНЕЧЁТ(СТОЛБЕЦ(Таблица1[@]))*СТОЛБЕЦ(Таблица1[@])))) ищет не пустой-нечётный максимальный (т.е. последний в строке) номер столбца. А так как столбцы начинают счёт с столбца А, то и в ИНДЕКС(A11:AH11 начинается со столбца А. Если использовать ИНДЕКС(M11:AH11, тогда от найденного номера столбца, надо отнять число 10, так как таблица начинается с 11 столбца, Будет так МАКС((Таблица1[@]<>"")*ЕНЕЧЁТ(СТОЛБЕЦ(Таблица1[@]))*СТОЛБЕЦ(Таблица1[@])))-10
Но наверно правильнее будет чуток подправленная формула.
Код
=ЕСЛИ(СУММ((M11:AH11<>"")*ЕНЕЧЁТ(СТОЛБЕЦ($M$1:$AH$1)));ИНДЕКС(A11:AH11;МАКС((M11:AH11<>"")*ЕНЕЧЁТ(СТОЛБЕЦ($M$1:$AH$1))*СТОЛБЕЦ($M$1:$AH$1)));"Нечётные пусты")
Изменено: gling - 14.05.2025 22:38:25
 
Вы как всегда отзывчивы, и на высоте!👌
 
Цитата
matrix39 написал:
функция MOD не работает
РАБОТАЕТ
но можно и так
=IFERROR(LOOKUP(2;1/MOD(COLUMN(M13:AH13)-COLUMN(M13)+1;2)/(M13:AH13<>"");M13:AH13);"пусто")
или
=IFERROR(LOOKUP(2;1/ISODD(COLUMN(M11:AH11)-COLUMN(M11)+1)/(M11:AH11<>"");M11:AH11);"пусто")
По вопросам из тем форума, личку не читаю.
 
pq
 
Цитата
написал:
let    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],    to = Table.ToList(from,(x)=>List.Last(List.Split(x,2)){0})in    to
без VBA нужно...
 
Цитата
БМВнаписал:
РАБОТАЕТно можно и так=IFERROR(LOOKUP(2;1/MOD(COLUMN(M13:AH13)-COLUMN(M13)+1;2)/(M13:AH13<>"");M13:AH13);"пусто")или=IFERROR(LOOKUP(2;1/ISODD(COLUMN(M11:AH11)-COLUMN(M11)+1)/(M11:AH11<>"");M11:AH11);"пусто")
да, перевел на русский, работает, спасибо!
Metanor, ваша тоже работает теперь :)  спасибо!

скорректировать нужно - находить последнее числовое значение ("0+6" - текстовое значение)
 
=IFERROR(LOOKUP(2,1/(MOD(COLUMN(M11:AH11)-COLUMN(M11)+1,2))/(ISNUMBER(M11:AH11)),M11:AH11),"пусто")
пользуясь улучшениями БМВ,  убрад =1 и вставил isnumber():)
 
=IFERROR(LOOKUP(2;1/ISODD(COLUMN(M11:AH11)-COLUMN(B11)+1)/ISNUMBER(M11:AH11);M11:AH11);"пусто")
По вопросам из тем форума, личку не читаю.
 
Metanor, БМВ отлично! Спасибо
Изменено: matrix39 - 15.05.2025 14:34:38
 
Здравствуйте!
pq
Страницы: 1
Читают тему
Наверх