นี่คืออีกหนึ่ง:
=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 <> "") * row (G: G)) ตรงนี้ แต่จะทำให้การดึงหมายเลขแถวออกมาง่ายขึ้นเล็กน้อยหากนั่นคือสิ่งที่คุณต้องการ .
หรือหากคุณต้องการใส่สคริปต์ลงในแผ่นงานของคุณคุณสามารถทำให้มันง่ายขึ้นด้วยตัวคุณเองหากคุณวางแผนที่จะทำสิ่งนี้เป็นจำนวนมาก นี่คือสิ่งที่ 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;
}
}
}
ที่นี่คุณสามารถพิมพ์ข้อความต่อไปนี้หากคุณต้องการให้แถวสุดท้ายในแผ่นเดียวกันกับที่คุณกำลังแก้ไขอยู่:
=LASTROW()
หรือถ้าคุณต้องการให้แถวสุดท้ายของคอลัมน์ใดคอลัมน์หนึ่งจากแผ่นงานนั้นหรือของคอลัมน์ใดคอลัมน์หนึ่งจากแผ่นงานอื่นคุณสามารถทำสิ่งต่อไปนี้:
=LASTROW("Sheet1","A")
และสำหรับแถวสุดท้ายของแผ่นงานโดยทั่วไป:
=LASTROW("Sheet1")
จากนั้นเพื่อให้ได้ข้อมูลจริงคุณสามารถใช้ทางอ้อม:
=INDIRECT("A"&LASTROW())
หรือคุณสามารถแก้ไขสคริปต์ด้านบนที่สองบรรทัดสุดท้าย (สองบรรทัดสุดท้ายเนื่องจากคุณจะต้องใส่ทั้งชีตและคอลัมน์เพื่อรับค่าจริงจากคอลัมน์จริง) และแทนที่ตัวแปรด้วยสิ่งต่อไปนี้:
return sheet.getRange(column + final).getValue();
และ
return sheet.getRange(column + lastRow).getValue();
ข้อดีอย่างหนึ่งของสคริปต์นี้คือคุณสามารถเลือกได้ว่าคุณต้องการรวมสมการที่ประเมินเป็น "" หรือไม่ หากไม่มีการเพิ่มข้อโต้แย้งสมการที่ประเมินเป็น "" จะถูกนับ แต่ถ้าคุณระบุแผ่นงานและคอลัมน์จะถูกนับ นอกจากนี้ยังมีความยืดหยุ่นมากหากคุณต้องการใช้สคริปต์ในรูปแบบต่างๆ
อาจจะมากเกินไป แต่เป็นไปได้ทั้งหมด