Значение из последней заполненной ячейки
RAN
Дата: Понедельник, 25.11.2013, 14:05 |
Сообщение № 1
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Мяу! Помогите дописать формулу (динамически определить столбец).
Мяу! Помогите дописать формулу (динамически определить столбец). RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Мяу! Помогите дописать формулу (динамически определить столбец). Автор - RAN Дата добавления - 25.11.2013 в 14:05
Nic70y
Дата: Понедельник, 25.11.2013, 14:37 |
Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9050
Репутация:
2383
±
Замечаний:
0% ±
Excel 2010
Код
=ИНДЕКС(G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;0);МАКС(ЕСЛИ(A3=F$3:F$4;ЕСЛИ(G$3:M$4<>"";СТОЛБЕЦ(G$3:M$4))))-6)
массивная пойдет?
Код
=ИНДЕКС(G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;0);МАКС(ЕСЛИ(A3=F$3:F$4;ЕСЛИ(G$3:M$4<>"";СТОЛБЕЦ(G$3:M$4))))-6)
массивная пойдет?Nic70y
ЮMoney 41001841029809
Ответить
Сообщение Код
=ИНДЕКС(G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;0);МАКС(ЕСЛИ(A3=F$3:F$4;ЕСЛИ(G$3:M$4<>"";СТОЛБЕЦ(G$3:M$4))))-6)
массивная пойдет?Автор - Nic70y Дата добавления - 25.11.2013 в 14:37
AlexM
Дата: Понедельник, 25.11.2013, 14:45 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
Обычная формула (не массивная) Код
=ВПР(A3;$F$3:$M$4;СЧЁТЗ(ИНДЕКС($F$3:$M$4;ПОИСКПОЗ(A3;$F$3:$F$4;);)))
Обычная формула (не массивная) Код
=ВПР(A3;$F$3:$M$4;СЧЁТЗ(ИНДЕКС($F$3:$M$4;ПОИСКПОЗ(A3;$F$3:$F$4;);)))
AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Понедельник, 25.11.2013, 14:48
Ответить
Сообщение Обычная формула (не массивная) Код
=ВПР(A3;$F$3:$M$4;СЧЁТЗ(ИНДЕКС($F$3:$M$4;ПОИСКПОЗ(A3;$F$3:$F$4;);)))
Автор - AlexM Дата добавления - 25.11.2013 в 14:45
_Boroda_
Дата: Понедельник, 25.11.2013, 14:49 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16790
Репутация:
6557
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
С учетом того, что там цены. Тоже обычная. И работает в случае, если есть пустые значения. Код
=1/ПРОСМОТР(2;ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);))
С учетом того, что там цены. Тоже обычная. И работает в случае, если есть пустые значения. Код
=1/ПРОСМОТР(2;ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);))
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение С учетом того, что там цены. Тоже обычная. И работает в случае, если есть пустые значения. Код
=1/ПРОСМОТР(2;ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);))
Автор - _Boroda_ Дата добавления - 25.11.2013 в 14:49
Nikkei
Дата: Понедельник, 25.11.2013, 18:19 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация:
1
±
Замечаний:
0% ±
Excel 2010
Монстр, конечно, и пропуски не учтет, но тоже работает. Код
=OFFSET(INDIRECT(ADDRESS(MATCH(A3,F3:F4,0)+ROW(F3)-1,COLUMN(F3))),,COUNTA(F3:M3)-1)
Монстр, конечно, и пропуски не учтет, но тоже работает. Код
=OFFSET(INDIRECT(ADDRESS(MATCH(A3,F3:F4,0)+ROW(F3)-1,COLUMN(F3))),,COUNTA(F3:M3)-1)
Nikkei
К сообщению приложен файл:
Otv1.xlsx
(10.0 Kb)
Ответить
Сообщение Монстр, конечно, и пропуски не учтет, но тоже работает. Код
=OFFSET(INDIRECT(ADDRESS(MATCH(A3,F3:F4,0)+ROW(F3)-1,COLUMN(F3))),,COUNTA(F3:M3)-1)
Автор - Nikkei Дата добавления - 25.11.2013 в 18:19
Wasilich
Дата: Понедельник, 25.11.2013, 18:56 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация:
326
±
Замечаний:
0% ±
2003
Если построчно, и так можно: Код
=ИНДЕКС(G3:M3;ПОИСКПОЗ(1E+306;G3:M3;1))
если сюда заглянуть.
Если построчно, и так можно: Код
=ИНДЕКС(G3:M3;ПОИСКПОЗ(1E+306;G3:M3;1))
если сюда заглянуть. Wasilich
Сообщение отредактировал Wasilic - Понедельник, 25.11.2013, 19:09
Ответить
Сообщение Если построчно, и так можно: Код
=ИНДЕКС(G3:M3;ПОИСКПОЗ(1E+306;G3:M3;1))
если сюда заглянуть. Автор - Wasilich Дата добавления - 25.11.2013 в 18:56
Serge_007
Дата: Понедельник, 25.11.2013, 19:47 |
Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение А если сюда ? Автор - Serge_007 Дата добавления - 25.11.2013 в 19:47
RAN
Дата: Понедельник, 25.11.2013, 19:53 |
Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Всем спасибо. Остановлюсь, пожалуй на формуле Алекса. Она мне как-то ближе. Саш, разжуй, плз, работу твоей формулы. Почему это Код
ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);)
в ячейке возвращает число, а внутри ПРОСМОТРа - массив? А уж почему ПРОСМОТР вместо 1 (ближайшего меньшего) вытягивает 0,25 - вообще не понял. PS Я искал. Честно... Но поиск только макросы выдал. А кузнец нам не нужен.
Всем спасибо. Остановлюсь, пожалуй на формуле Алекса. Она мне как-то ближе. Саш, разжуй, плз, работу твоей формулы. Почему это Код
ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);)
в ячейке возвращает число, а внутри ПРОСМОТРа - массив? А уж почему ПРОСМОТР вместо 1 (ближайшего меньшего) вытягивает 0,25 - вообще не понял. PS Я искал. Честно... Но поиск только макросы выдал. А кузнец нам не нужен. RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Понедельник, 25.11.2013, 20:34
Ответить
Сообщение Всем спасибо. Остановлюсь, пожалуй на формуле Алекса. Она мне как-то ближе. Саш, разжуй, плз, работу твоей формулы. Почему это Код
ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);)
в ячейке возвращает число, а внутри ПРОСМОТРа - массив? А уж почему ПРОСМОТР вместо 1 (ближайшего меньшего) вытягивает 0,25 - вообще не понял. PS Я искал. Честно... Но поиск только макросы выдал. А кузнец нам не нужен. Автор - RAN Дата добавления - 25.11.2013 в 19:53
_Boroda_
Дата: Понедельник, 25.11.2013, 22:36 |
Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16790
Репутация:
6557
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Саш, разжуй, плз, работу твоей формулы
Жую (мням-мням): Код
=1/ПРОСМОТР(2;ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);))
1. Ну, с ПОИСКПОЗ, я думаю, понятно – ищет номер строки 2. 1/G$3:M$4 – там, где нули или пусто даст ошибку #ДЕЛ/0!, а где не нули – число, обратное стоимости. Делается так для того, чтобы ошибку получить. 3. ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);) – из массива 2. выковыриваем строку 1., а дальше хитрость – если у ИНДЕКСА оба аргумента числа или один из аргументов опущен (если первым аргументом выступает строка или столбец), то ИНДЕКС показывает нам то, что находится на пересечении указанных строки и столбца, а вот если один из аргументов ИНДЕКСа равен нулю (или, что однохренственно, стоит точка с запятой, а за ней ничего нет – как у меня), то ИНДЕКС радует нас массивом. То есть, ИНДЕКС(A1:C5;3;0) даст нам массив А3;В3;С3 . В нашей формуле мы получаем (если смотреть в моем файле) массив {1;1/2;1/3;1/2;#ДЕЛ/0!;1/6;#ДЕЛ/0!} 4. ПРОСМОТР из массива с ошибками ведет себя не совсем так, как написано в справке (там про ошибки скромно умалчивают) – она просто тупо выдает самое последнее значение из просматриваемого вектора, не являющееся ошибкой. То есть, для нас – 1/6 5. Остается только перевернуть найденную 1/6-ю обратно с головы на ноги, что мы и делаем, деля единицу на 1/6 – 1/ 1/6=6
Саш, разжуй, плз, работу твоей формулы
Жую (мням-мням): Код
=1/ПРОСМОТР(2;ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);))
1. Ну, с ПОИСКПОЗ, я думаю, понятно – ищет номер строки 2. 1/G$3:M$4 – там, где нули или пусто даст ошибку #ДЕЛ/0!, а где не нули – число, обратное стоимости. Делается так для того, чтобы ошибку получить. 3. ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);) – из массива 2. выковыриваем строку 1., а дальше хитрость – если у ИНДЕКСА оба аргумента числа или один из аргументов опущен (если первым аргументом выступает строка или столбец), то ИНДЕКС показывает нам то, что находится на пересечении указанных строки и столбца, а вот если один из аргументов ИНДЕКСа равен нулю (или, что однохренственно, стоит точка с запятой, а за ней ничего нет – как у меня), то ИНДЕКС радует нас массивом. То есть, ИНДЕКС(A1:C5;3;0) даст нам массив А3;В3;С3 . В нашей формуле мы получаем (если смотреть в моем файле) массив {1;1/2;1/3;1/2;#ДЕЛ/0!;1/6;#ДЕЛ/0!} 4. ПРОСМОТР из массива с ошибками ведет себя не совсем так, как написано в справке (там про ошибки скромно умалчивают) – она просто тупо выдает самое последнее значение из просматриваемого вектора, не являющееся ошибкой. То есть, для нас – 1/6 5. Остается только перевернуть найденную 1/6-ю обратно с головы на ноги, что мы и делаем, деля единицу на 1/6 – 1/ 1/6=6_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Саш, разжуй, плз, работу твоей формулы
Жую (мням-мням): Код
=1/ПРОСМОТР(2;ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);))
1. Ну, с ПОИСКПОЗ, я думаю, понятно – ищет номер строки 2. 1/G$3:M$4 – там, где нули или пусто даст ошибку #ДЕЛ/0!, а где не нули – число, обратное стоимости. Делается так для того, чтобы ошибку получить. 3. ИНДЕКС(1/G$3:M$4;ПОИСКПОЗ(A3;F$3:F$4;);) – из массива 2. выковыриваем строку 1., а дальше хитрость – если у ИНДЕКСА оба аргумента числа или один из аргументов опущен (если первым аргументом выступает строка или столбец), то ИНДЕКС показывает нам то, что находится на пересечении указанных строки и столбца, а вот если один из аргументов ИНДЕКСа равен нулю (или, что однохренственно, стоит точка с запятой, а за ней ничего нет – как у меня), то ИНДЕКС радует нас массивом. То есть, ИНДЕКС(A1:C5;3;0) даст нам массив А3;В3;С3 . В нашей формуле мы получаем (если смотреть в моем файле) массив {1;1/2;1/3;1/2;#ДЕЛ/0!;1/6;#ДЕЛ/0!} 4. ПРОСМОТР из массива с ошибками ведет себя не совсем так, как написано в справке (там про ошибки скромно умалчивают) – она просто тупо выдает самое последнее значение из просматриваемого вектора, не являющееся ошибкой. То есть, для нас – 1/6 5. Остается только перевернуть найденную 1/6-ю обратно с головы на ноги, что мы и делаем, деля единицу на 1/6 – 1/ 1/6=6Автор - _Boroda_ Дата добавления - 25.11.2013 в 22:36
RAN
Дата: Вторник, 26.11.2013, 09:20 |
Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
И работает в случае, если есть пустые значения.
Выплыл минус. Не работает, если последнее значение 0.
И работает в случае, если есть пустые значения.
Выплыл минус. Не работает, если последнее значение 0.RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение И работает в случае, если есть пустые значения.
Выплыл минус. Не работает, если последнее значение 0.Автор - RAN Дата добавления - 26.11.2013 в 09:20
_Boroda_
Дата: Вторник, 26.11.2013, 09:25 |
Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16790
Репутация:
6557
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Не работает, если последнее значение 0.
Читаем внимательно: С учетом того, что там цены.
Цена не может быть нулем.
Не работает, если последнее значение 0.
Читаем внимательно: С учетом того, что там цены.
Цена не может быть нулем._Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Не работает, если последнее значение 0.
Читаем внимательно: С учетом того, что там цены.
Цена не может быть нулем.Автор - _Boroda_ Дата добавления - 26.11.2013 в 09:25
Матраскин
Дата: Вторник, 26.11.2013, 09:56 |
Сообщение № 12
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация:
81
±
Замечаний:
0% ±
20xx
вот зачем в банках при открытии счёта просят пару рублей.. "цена" не может быть 0 !!! макрос ломается...одной загадкой меньше
вот зачем в банках при открытии счёта просят пару рублей.. "цена" не может быть 0 !!! макрос ломается...одной загадкой меньше Матраскин
в интернете опять кто-то не прав
Сообщение отредактировал Матраскин - Вторник, 26.11.2013, 09:57
Ответить
Сообщение вот зачем в банках при открытии счёта просят пару рублей.. "цена" не может быть 0 !!! макрос ломается...одной загадкой меньше Автор - Матраскин Дата добавления - 26.11.2013 в 09:56