Получение последнего значения в столбце

Вы можете задаться вопросом, есть ли способ вернуть последнее (не самое большое) значение в столбце. Например, если есть значения от A1 до A5, вы можете захотеть вернуть значение из A5. Позже, если значения были добавлены в A6 – A8, то должно быть возвращено значение в A8.

Есть несколько способов приблизиться к решению. Первый – использовать следующую формулу:

= INDEX (A: A, COUNT (A: A))

Эта формула возвращает последнее числовое значение. значение в столбце, при условии, что значения начинаются с (в данном случае) A1. Этот подход работает, только если все значения в столбце являются числовыми. Если значения не являются числовыми или если есть пустые ячейки, перемешанные со значениями, то необходим другой подход. Один из способов – скопировать следующую формулу в столбец B справа от ячеек, которые могут содержать значения:

= IF (ISNUMBER (A2), IF (A2 0, ROW ( A2), «»), «»)

В этом случае формула возвращает номер строки любой ячейки в A, которая содержит числовое значение больше нуля. Затем для получения последнего значения в столбце A можно использовать следующую формулу:

= INDEX (A: A, MAX (B: B))

Эта формула работает, потому что он возвращает самый большой номер строки из столбца B, а затем использует его в качестве индекса для возврата соответствующего значения из столбца A.

Если ваш диапазон данных содержит смесь числовых и не- числовые значения (и, возможно, даже некоторые пустые ячейки, перемешанные в диапазоне), тогда вы можете рассмотреть следующую формулу:

= LOOKUP (2,1/(1-ISBLANK (A: A) ), A: A)

Поначалу может быть неочевидно, как работает эта формула. Часть ISBLANK возвращает массив, содержащий значение True или False для каждой ячейки в столбце A, в зависимости от того, пуста эта ячейка или нет. Это истинное или ложное значение (которое на самом деле равно 1 или 0) вычитается из 1, так что в итоге вы получаете значения True, равные 0, а значения False, равные 1.

Следующим шагом является используйте значения 1 или 0 в качестве делимого в 1/x. Это эффективно “инвертирует” значение, и вы получаете либо 1 (1/1), либо # DIV/0! ошибка (1/0). Помните, что это массив, который затем используется в качестве параметра функции ПРОСМОТР. В массиве ищется значение 2, которого там не существует. (Помните, что массив содержит только значения 1 или значение ошибки.) Функция ПРОСМОТР фактически игнорирует все значения ошибок в массиве и поэтому возвращает смещение в диапазоне A: A последнего элемента массива, который содержит значение 1. Это соответствует последней непустой ячейке в диапазоне.

Как вы можете видеть, возврат последнего значения в столбце иногда может быть немного сложным. Чистый подход – просто разработать свою собственную функцию VBA, которая возвращает желаемое значение. В этом случае вы можете запрограммировать функцию, чтобы возвращать любое значение, а не только числовые значения. Прекрасный пример такой функции доступен на веб-сайте Джона Уокенбаха.. Обратите внимание на следующее:

http://spreadsheetpage.com/index.php/tip/determining_the_last_non_empty_cell_in_a_column_or_row/

Источник: frestage.ru

Бытовой вопрос