Đây là một số khác:
=indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),""))))
Với phương trình cuối cùng là:
=DAYS360(A2,indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),"")))))
Các phương trình khác ở đây hoạt động, nhưng tôi thích phương trình này bởi vì nó làm cho việc lấy số hàng dễ dàng, điều mà tôi thấy tôi cần phải làm thường xuyên hơn. Chỉ số hàng sẽ như thế này:
=max(arrayformula(if(A:A<>"",row(A:A),"")))
Ban đầu tôi đã cố gắng tìm ra điều này để giải quyết vấn đề về bảng tính, nhưng không thể tìm thấy bất cứ điều gì hữu ích chỉ đưa ra số hàng của mục cuối cùng, vì vậy hy vọng điều này hữu ích cho ai đó.
Ngoài ra, điều này có thêm lợi thế là nó hoạt động cho mọi loại dữ liệu theo bất kỳ thứ tự nào và bạn có thể có các hàng trống ở giữa các hàng có nội dung và nó không tính các ô có công thức đánh giá là "". Nó cũng có thể xử lý các giá trị lặp đi lặp lại. Nhìn chung, nó rất giống với phương trình sử dụng max ((G: G <> "") * hàng (G: G)) ở đây, nhưng làm cho việc rút số hàng dễ dàng hơn một chút nếu đó là những gì bạn theo sau .
Ngoài ra, nếu bạn muốn đặt một tập lệnh vào trang tính của mình, bạn có thể tự làm nó dễ dàng nếu bạn có kế hoạch thực hiện việc này rất nhiều. Đây là scirpt:
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;
}
}
}
Tại đây, bạn chỉ có thể nhập vào phần sau nếu bạn muốn hàng cuối cùng trên cùng trang tính mà bạn hiện đang chỉnh sửa:
=LASTROW()
hoặc nếu bạn muốn hàng cuối cùng của một cột cụ thể từ trang tính đó hoặc của một cột cụ thể từ một trang tính khác, bạn có thể thực hiện như sau:
=LASTROW("Sheet1","A")
Và cho hàng cuối cùng của một tờ cụ thể nói chung:
=LASTROW("Sheet1")
Sau đó, để có được dữ liệu thực tế, bạn có thể sử dụng gián tiếp:
=INDIRECT("A"&LASTROW())
hoặc bạn có thể sửa đổi tập lệnh trên ở hai dòng trả về cuối cùng (hai dòng cuối cùng vì bạn sẽ phải đặt cả trang tính và cột để nhận giá trị thực từ một cột thực tế) và thay thế biến bằng sau:
return sheet.getRange(column + final).getValue();
và
return sheet.getRange(column + lastRow).getValue();
Một lợi ích của tập lệnh này là bạn có thể chọn nếu bạn muốn bao gồm các phương trình đánh giá thành "". Nếu không có đối số nào được thêm vào, các phương trình đánh giá thành "" sẽ được tính, nhưng nếu bạn chỉ định một trang tính và cột thì bây giờ chúng sẽ được tính. Ngoài ra, có rất nhiều tính linh hoạt nếu bạn sẵn sàng sử dụng các biến thể của tập lệnh.
Có lẽ là quá mức cần thiết, nhưng tất cả đều có thể.