Ось ще одна:
=indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),""))))
З кінцевим рівнянням таке:
=DAYS360(A2,indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),"")))))
Інші рівняння тут працюють, але мені це подобається, оскільки це робить номер рядка легким, що, як я вважаю, мені потрібно робити частіше. Просто номер рядка буде таким:
=max(arrayformula(if(A:A<>"",row(A:A),"")))
Спочатку я намагався знайти саме це, щоб вирішити проблему з електронною таблицею, але не зміг знайти нічого корисного, що дало б номер рядка останнього запису, тому, сподіваюся, це комусь корисно.
Крім того, це має додаткову перевагу в тому, що він працює для будь-якого типу даних у будь-якому порядку, і ви можете мати порожні рядки між рядками із вмістом, і він не зараховує комірки з формулами, які оцінюють на "". Він також може обробляти повторювані значення. Загалом, це дуже схоже на рівняння, яке тут використовує max ((G: G <> "" * рядок (G: G)), але робить виведення номера рядка трохи простіше, якщо це те, що ви хочете .
Крім того, якщо ви хочете помістити сценарій на свій аркуш, ви можете полегшити себе, якщо ви плануєте робити це багато. Ось цей вчений:
function lastRow(sheet,column) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
if (column == null) {
if (sheet != null) {
var sheet = ss.getSheetByName(sheet);
} else {
var sheet = ss.getActiveSheet();
}
return sheet.getLastRow();
} else {
var sheet = ss.getSheetByName(sheet);
var lastRow = sheet.getLastRow();
var array = sheet.getRange(column + 1 + ':' + column + lastRow).getValues();
for (i=0;i<array.length;i++) {
if (array[i] != '') {
var final = i + 1;
}
}
if (final != null) {
return final;
} else {
return 0;
}
}
}
Тут ви можете просто ввести наступне, якщо потрібно останній рядок на тому ж аркуші, який ви зараз редагуєте:
=LASTROW()
або якщо ви хочете останній рядок певного стовпця з цього аркуша або певного стовпця з іншого аркуша, ви можете зробити наступне:
=LASTROW("Sheet1","A")
І для останнього рядка конкретного аркуша загалом:
=LASTROW("Sheet1")
Тоді для отримання фактичних даних ви можете використовувати непрямі:
=INDIRECT("A"&LASTROW())
або ви можете змінити вищезазначений сценарій у двох останніх рядках повернення (останні два, оскільки вам доведеться поставити і аркуш, і стовпець, щоб отримати фактичне значення з фактичного стовпця), і замінити змінну на наступну:
return sheet.getRange(column + final).getValue();
і
return sheet.getRange(column + lastRow).getValue();
Однією з переваг цього сценарію є те, що ви можете вибрати, якщо ви хочете включити рівняння, які оцінюються на "". Якщо жодних аргументів не буде додано, рівняння, що оцінюються на "", будуть зараховані, але якщо ви вказали аркуш і стовпець, вони тепер будуть підраховані. Крім того, є велика гнучкість, якщо ви готові використовувати варіанти сценарію.
Напевно, надмірність, але все можливе.