Oto kolejny:
=indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),""))))
Ostateczne równanie jest następujące:
=DAYS360(A2,indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),"")))))
Inne równania tutaj działają, ale podoba mi się to, ponieważ ułatwia uzyskanie numeru wiersza, co wydaje mi się, że muszę robić częściej. Tylko numer wiersza wyglądałby tak:
=max(arrayformula(if(A:A<>"",row(A:A),"")))
Początkowo próbowałem znaleźć to, aby rozwiązać problem z arkuszem kalkulacyjnym, ale nie mogłem znaleźć niczego przydatnego, co po prostu podało numer wiersza ostatniego wpisu, więc mam nadzieję, że jest to pomocne dla kogoś.
Ma to również tę dodatkową zaletę, że działa dla dowolnego typu danych w dowolnej kolejności, a między wierszami z zawartością mogą znajdować się puste wiersze, a nie zlicza komórek z formułami, których wynikiem jest „”. Może również obsługiwać powtarzające się wartości. Podsumowując, jest bardzo podobne do równania, które używa tutaj max ((G: G <> "") * row (G: G)), ale sprawia, że wyciągnięcie numeru wiersza jest trochę łatwiejsze, jeśli tego szukasz .
Alternatywnie, jeśli chcesz umieścić skrypt na swoim arkuszu, możesz sobie to ułatwić, jeśli planujesz dużo to robić. Oto ten fragment:
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;
}
}
}
Tutaj możesz po prostu wpisać następujące polecenie, jeśli chcesz, aby ostatni wiersz znajdował się w tym samym arkuszu, który obecnie edytujesz:
=LASTROW()
lub jeśli chcesz mieć ostatni wiersz określonej kolumny z tego arkusza lub określonej kolumny z innego arkusza, możesz wykonać następujące czynności:
=LASTROW("Sheet1","A")
I ogólnie dla ostatniego wiersza konkretnego arkusza:
=LASTROW("Sheet1")
Następnie, aby uzyskać rzeczywiste dane, możesz użyć pośredniego:
=INDIRECT("A"&LASTROW())
lub możesz zmodyfikować powyższy skrypt w ostatnich dwóch wierszach powrotu (ostatnie dwa, ponieważ musiałbyś umieścić zarówno arkusz, jak i kolumnę, aby uzyskać rzeczywistą wartość z rzeczywistej kolumny) i zastąpić zmienną następującą:
return sheet.getRange(column + final).getValue();
i
return sheet.getRange(column + lastRow).getValue();
Jedną z zalet tego skryptu jest to, że możesz wybrać, czy chcesz uwzględnić równania, których wynikiem jest „”. Jeśli nie zostaną dodane żadne argumenty, równania obliczane na „” zostaną policzone, ale jeśli określisz arkusz i kolumnę, zostaną zliczone. Ponadto istnieje duża elastyczność, jeśli chcesz używać odmian skryptu.
Prawdopodobnie przesada, ale wszystko możliwe.