Предпоследнее значение в строке excel


Найдем значение и позицию предпоследней заполненной ячейке в диапазоне ячеек MS EXCEL.

Подобная задача, но для последней ячейки решена в статье

Последняя заполненная ячейка в MS EXCEL

.

Диапазон не содержит пропусков

Пусть столбец с данными находится в диапазоне

А7:А18

.

Как видно из рисунка, между значениями нет пустых ячеек; кроме того, не весь диапазон заполнен значениями.

В нашем случае в столбце нет пустых ячеек между значениями, поэтому решение элементарно: формула

=СЧЁТЗ(A7:A18)-1

вернет позицию предпоследней заполненной ячейке в столбце А7:А18


Формула

=ИНДЕКС(A7:A18;СЧЁТЗ(A7:A18)-1)

вернет значение этой ячейки.


Примечание

:

Файл примера

содержит все приведенные в статье формулы (кнопка внизу статьи).

Диапазон содержит пропуски


Если есть пропуски, то позицию определить сложнее.


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

В7

):

1) определяем позицию последней заполненной ячейки (работает, если в столбце содержатся числа)

=ПОИСКПОЗ(1E+306;B7:B18;1)

см. статью

Последняя заполненная ячейка в MS EXCEL

2) Поместим это значение в ячейку

С10

3) Формула

=СМЕЩ(B7;;;С10-1)

вернет диапазон от первой заполненной ячейки до предпоследней (не обязательно заполненной)4)

Формула массива

=МАКС(ЕСЛИ(ЕПУСТО(СМЕЩ(B7;;;С10-1));»»;СТРОКА(СМЕЩ(B7;;;С10-1))-СТРОКА(B7)+1))

вернет позицию предпоследней заполненной ячейки.Формула работает так: сначала она определяет номера строк (точнее позицию в столбце, начиная с первой заполненной ячейки

В7

) всех непустых ячеек в диапазоне, полученном на шаге 3. Максимальная позиция будет соответствовать предпоследней заполненной ячейке.

Как показано на снимке экрана ниже, как найти и вернуть предпоследнее значение в строке 6 или столбце B диапазона таблицы A1:E16? Эта статья покажет вам метод для достижения этого.

Найти и вернуть предпоследнее значение в определенной строке или столбце с формулами


Найти и вернуть предпоследнее значение в определенной строке или столбце с формулами

Как показано на снимке экрана выше, чтобы найти и вернуть предпоследнее значение в строке 6 или столбце B диапазона таблицы A1: E16, вам могут помочь формулы, представленные в этой статье. Пожалуйста, сделайте следующее.

Найти и вернуть предпоследнее значение в столбце B

1. Выберите пустую ячейку для размещения предпоследнего значения, введите формулу = ИНДЕКС (B: B; НАИБОЛЬШИЙ (ЕСЛИ (B: B <> «»; СТРОКА (B: B)); 2)) в панель формул, а затем нажмите Ctrl + Shift + Enter клавиши одновременно, чтобы получить результат.

Внимание: в формуле B: B — это столбец, в котором вы найдете предпоследнее значение. Вы можете изменить его на любой столбец по своему усмотрению.

Найти и вернуть предпоследнее значение в строке 6

Выберите пустую ячейку, чтобы заполнить предпоследнее значение в строке, затем введите формулу = СМЕЩЕНИЕ ($ A $ 6,0; COUNTA (6: 6) -2,1,1) в панель формул, а затем нажмите Enter ключ для получения результата. Смотрите скриншот:

Внимание: В этой формуле $ A $ 6 — это первая ячейка указанной строки, 6: 6 — это номер строки, в которой вам нужно найти предпоследнее значение,


Статьи по теме:

  • Как найти позицию первого / последнего числа в текстовой строке в Excel?
  • Как найти первую или последнюю пятницу каждого месяца в Excel?
  • Как vlookup найти первое, второе или n-е значение соответствия в Excel?
  • Как найти значение с наибольшей частотой в диапазоне в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (10)


Оценок пока нет. Оцените первым!

Возврат предпоследнего значения из строки

Vinkelman

Дата: Среда, 23.10.2013, 11:10 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

Добрый день!
Формула

Код

=ПРОСМОТР(9E+307;C2:L2)

возвращает последнее значение из строки в указанном диапазоне, а возможно ли сделать, чтобы возвращалось предпоследнее (см. пример)?

К сообщению приложен файл:

3171068.xls
(13.5 Kb)

 

Ответить

Serge_007

Дата: Среда, 23.10.2013, 11:12 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Для Вашего примера:

Универсально (формула массива):

Код

=ИНДЕКС(C2:L2;;НАИБОЛЬШИЙ((C2:L2<>0)*СТОЛБЕЦ(A:J);2)))


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Vinkelman

Дата: Среда, 23.10.2013, 11:50 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

Дело в том, что мне нужно именно предпоследнее, а не наибольшее, числа могут идти не по возрастанию: 10 — 20 — 40 — 30 — 50.

 

Ответить

SkyPro

Дата: Среда, 23.10.2013, 12:48 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1206


Репутация:

255

±

Замечаний:
0% ±


2010

[vba]

Код

Function pre(trgt As Range)
Dim rCell As Range, rw&
rw = trgt.Row
     Set rCell = Cells(rw, Columns.Count).End(xlToLeft)

If rCell.Offset(0, -1).Value = «» Then
     pre = rCell.End(xlToLeft).Value
Else
     pre = rCell.Offset(0, -1).Value
End If

End Function

[/vba] Выводит предпоследнее значение в строке 1 (с скобках указывается любая ячейка из нужной строки).

К сообщению приложен файл:

3985877.xls
(53.5 Kb)


skypro1111@gmail.com

 

Ответить

китин

Дата: Среда, 23.10.2013, 12:54 |
Сообщение № 5

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

Vinkelman, а вы проверяли вторую формулу Serge_007, ?она работает правильно-возвращает именно предпоследнее значение,а не наибольшее


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Vinkelman

Дата: Среда, 23.10.2013, 13:25 |
Сообщение № 6

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

китин, да, работает, спасибо!

 

Ответить

Vinkelman

Дата: Среда, 23.10.2013, 13:25 |
Сообщение № 7

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

SkyPro, Спасибо!

 

Ответить

китин

Дата: Среда, 23.10.2013, 13:26 |
Сообщение № 8

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

Vinkelman, а я то здесь причем?все лавры принадлежат Сергею-формулу то он предложил


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Vinkelman

Дата: Среда, 23.10.2013, 13:28 |
Сообщение № 9

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

Serge_007,
Спасибо, в примере работает. Пробую вставить в свой файл, пока не выходит, если не получится, позвольте ещё раз обратиться и прислать более полный фрагмент (слишком много у меня там наворочено).

 

Ответить

китин

Дата: Среда, 23.10.2013, 13:37 |
Сообщение № 10

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

Vinkelman, а вы про
не забыли?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

Сообщение отредактировал китинСреда, 23.10.2013, 13:40

 

Ответить

Vinkelman

Дата: Среда, 23.10.2013, 14:22 |
Сообщение № 11

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

китин, про массив не забыл, в примере всё работает, а вот в большом файле, из которого фрагмент, пока не получилось.

 

Ответить

китин

Дата: Среда, 23.10.2013, 14:56 |
Сообщение № 12

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

а диапазоны подправить,в соответствии с новыми данными?


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Vinkelman

Дата: Четверг, 24.10.2013, 07:50 |
Сообщение № 13

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

китин, не получилось… см. полный (по строкам) фрагмент файла.
Данные беру из диапазона AA-AX, т.к. если брать из AZ-BW моя формула (столбец Q), которую надо заменить, не работает.

К сообщению приложен файл:

9678006.xls
(87.5 Kb)

 

Ответить

китин

Дата: Четверг, 24.10.2013, 09:05 |
Сообщение № 14

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

в ячейку Q4 скопируйте формулу

Код

=ИНДЕКС(AA4:AX4;;НАИБОЛЬШИЙ((AA4:AX4<>»»)*СТОЛБЕЦ(A:X);2))

с ЕСЛИ сами поиграйтесь.
ЗЫ.обращаясь лично ко мне вы лишаете себя помощи других,более компетентных и умных форумчан


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Vinkelman

Дата: Четверг, 24.10.2013, 09:24 |
Сообщение № 15

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

Serge_007,
С пощью форумчанина Китина подогнал Вашу формулу в свой файл, но… #ЗНАЧ!
И, если можно, хотелось бы использовать диапазон AZ-BW, а не AA-AX, который его просто дублирует.

К сообщению приложен файл:

7255155.xls
(87.0 Kb)

 

Ответить

китин

Дата: Четверг, 24.10.2013, 09:25 |
Сообщение № 16

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

поигрался сам

Код

=ЕСЛИ(ИНДЕКС(AA4:AX4;;НАИБОЛЬШИЙ((AA4:AX4<>»»)*СТОЛБЕЦ(A:X);2))=»»;»1-я зак.>»;ИНДЕКС(AA4:AX4;;НАИБОЛЬШИЙ((AA4:AX4<>»»)*СТОЛБЕЦ(A:X);2)))

Формула массива


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

китин

Дата: Четверг, 24.10.2013, 09:30 |
Сообщение № 17

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

прочитал поздно вашу хотелку.ловите

Код

=ЕСЛИ(ИНДЕКС(AZ4:BW4;;НАИБОЛЬШИЙ((AZ4:BW4<>0)*СТОЛБЕЦ(A:X);2))=0;»1-я зак.>»;ИНДЕКС(AZ4:BW4;;НАИБОЛЬШИЙ((AZ4:BW4<>0)*СТОЛБЕЦ(A:X);2)))

К сообщению приложен файл:

5015566.xls
(92.0 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

Сообщение отредактировал китинЧетверг, 24.10.2013, 09:31

 

Ответить

Vinkelman

Дата: Четверг, 24.10.2013, 09:33 |
Сообщение № 18

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 249


Репутация:

26

±

Замечаний:
0% ±


2003 — 2010

Прошу прощения, забыл про массив! :(
Всё работает. :)
Большое спасибо! hands

 

Ответить

Отображение значений предпоследних ячеек

Автор s1910197, 14.06.2012, 07:16

« назад — далее »

Доброго времени суток! Проблема в следующем… Есть столбец в который ежедневно вводятся цифровые данные в зависимости от дня недели (присутствуют пустые ячейки) Нужна формула для отображения значения только предпоследней не пустой ячейки, по мере заполнения столбца…
Заранеее благодарю


формула массива
=ИНДЕКС(R[-27]C:R[-3]C;НАИБОЛЬШИЙ((R[-27]C:R[-3]C<>»»)*СТРОКА(R[-27]C:R[-3]C);2))


В принципе, то же самое
=ИНДЕКС(A1:A25;НАИБОЛЬШИЙ(ЕЧИСЛО(A1:A25)*СТРОКА(A1:A25);2))
Написал только для того, чтобы предупредить — будете задваивать, а уж тем более, затраивать, темы — забаню.

Скажи мне, кудесник, любимец ба’гов…

Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995


Спасибо всем, кто так оперативно откликнулся, но формула не работает… Давайте посмотрим на конкретном примере (см. вложение)


в данном случае нужно так
=ИНДЕКС(L11:L35;НАИБОЛЬШИЙ((L11:L35<>»»)*СТРОКА(L11:L35);2)-10)
формула массива вводится ctrl+shift+enter


В принципе разобрался… Но всё ж благодарю всех откликнувшихся…
Окончательно выглядит так: =ИНДЕКС(L11:L35;НАИБОЛЬШИЙ((L11:L35<>»»)*СТРОКА(L11:L35);2)-6)
из-за скрываемых строк…


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Отображение значений предпоследних ячеек

For row #3, the array formula:

=INDEX(3:3,IF(COUNTA(3:3)=0,"",MAX((3:3<>"")*(COLUMN(3:3))))-1)

will yield the next-to-last value in that row:

enter image description here

Array formulas must be entered with Ctrl + Shift + Enter rather than just the Enter key. If this is done correctly, the formula will appear with curly braces around it in the Formula Bar.

If you are sure that row #3 will not be empty, then use this array formula instead:

=INDEX(3:3,MAX((3:3<>"")*(COLUMN(3:3)))-1)

To avoid array formulas consider:

=INDEX(3:3,SUMPRODUCT(MAX((COLUMN(3:3))*(3:3<>"")))-1)

Понравилась статья? Поделить с друзьями:
  • Предварительный просмотр документа перед печатью в excel
  • Предписание бланк скачать word
  • Предварительный просмотр документа в редакторе word можно осуществить выполнив команду
  • Предоставить информацию в формате word
  • Предварительный просмотр документа в редакторе microsoft word можно осуществлять следующим образом