Выбор последнего значения столбца - PullRequest
106 голосов
/ 13 ноября 2010

У меня есть электронная таблица с некоторыми значениями в столбце G. Между ними есть пустые ячейки, и мне нужно получить последнее значение из этого столбца в другую ячейку.

Что-то вроде:

=LAST(G2:G9999)

за исключением того, что LAST не является функцией.

Ответы [ 22 ]

5 голосов
/ 02 апреля 2014

Получает последнее значение и обрабатывает пустые значения:

=INDEX(  FILTER( H:H ; NOT(ISBLANK(H:H))) ; ROWS( FILTER( H:H ; NOT(ISBLANK(H:H)) ) ) )
5 голосов
/ 31 января 2015

Этот работает для меня:

=INDEX(I:I;MAX((I:I<>"")*(ROW(I:I))))
4 голосов
/ 30 декабря 2015

Ответ

$ =INDEX(G2:G; COUNT(G2:G))

не работает правильно в LibreOffice. Тем не менее, с небольшими изменениями, он работает отлично.

$ =INDEX(G2:G100000; COUNT(G2:G100000))

Он всегда работает, только если истинный диапазон меньше, чем (G2:G10000)

4 голосов
/ 20 ноября 2015

В столбце с пробелами вы можете получить последнее значение с помощью

=+sort(G:G,row(G:G)*(G:G<>""),)
3 голосов
/ 13 января 2017

Я играл с кодом, предоставленным @tinfini, и думал, что люди могут извлечь выгоду из того, что я считаю немного более элегантным решением (заметьте, я не думаю, что сценарии работали совершенно так же, когда он создавал оригинальный ответ)...

//Note that this function assumes a single column of values, it will 
//not  function properly if given a multi-dimensional array (if the 
//cells that are captured are not in a single row).

function LastInRange(values) 
{
  for (index = values.length - 1; values[index] == "" && index > 0; index--) {}
  return String(values[index]);
}

При использовании это будет выглядеть так:

=LastInRange(D2:D)
3 голосов
/ 13 декабря 2015
function getDashboardSheet(spreadsheet) {
  var sheetName = 'Name';
  return spreadsheet.getSheetByName(sheetName);
}
      var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);  
      var dashboardSheet = getDashboardSheet(spreadsheet);
      Logger.log('see:'+dashboardSheet.getLastRow());
3 голосов
/ 09 августа 2012

Допустимо ли отвечать на оригинальный вопрос строго не по теме :) Вы можете написать формулу в таблице для этого. Может быть, некрасиво? но эффективен при нормальной работе с электронной таблицей.

=indirect("R"&ArrayFormula(max((G:G<>"")*row(G:G)))&"C"&7)


(G:G<>"") gives an array of true false values representing non-empty/empty cells
(G:G<>"")*row(G:G) gives an array of row numbers with zeros where cell is empty
max((G:G<>"")*row(G:G)) is the last non-empty cell in G

Это предлагается в качестве идеи для ряда вопросов в области сценариев, которые могут быть надежно доставлены с помощью формул массива, которые имеют преимущество в том, что они часто работают в аналогично моде в Excel и OpenOffice.

2 голосов
/ 20 июля 2018

Найден небольшой вариант, который работал для устранения пробелов в нижней части таблицы.= Индекс (G2: G, COUNTIF (G2: G, "<>"))

2 голосов
/ 24 октября 2012

Я нашел другой способ, может быть, он поможет вам

=INDEX( SORT( A5:D ; 1 ; FALSE) ; 1 ) - вернет последнюю строку

Больше информации от анаба здесь: https://groups.google.com/forum/?fromgroups=#!topic/How-to-Documents/if0_fGVINmI

2 голосов
/ 08 октября 2013

Что касается комментария @ Jon_Schneider, если столбец содержит пустые ячейки, просто используйте COUNTA ()

=INDEX(G2:G; COUNT**A**(G2:G))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...