File của bạn dùng DATA VALIDATION, có hàm INDIRECT cùng VLOOKUP, để lấy ra cái Name Range làm danh sách, nhưng do Google Sheet hiện nay chưa hỗ trợ hàm tính toán trong phần List From a Range, mà chỉ tham chiếu tới vùng nhất định.
Vì vậy mình làm các bước bên dưới, ở T2:
=IF(D2="","",TRANSPOSE(INDIRECT(VLOOKUP(D2,Tinh,2,0))))
Và Data Validation cũng không tự liên tục giống như khi mình cố định công thức kéo xuống, vì vậy mình làm cái Script Apps để nó tự khởi tạo các Data Validation. Theo đó, mình vào Tools -> Script Editor... Và dùng đoạn code sau, để thiết lập Data Validation cho từng ô. Bạn Copy & Paste vào, sau đó chỉ việc chọn Run là nó tự tạo bên Bảng tính.
Ở đây mình chỉ để 100 dòng, bạn có thể chỉnh lại ở ("E2:E100").
Bạn có thể tham khảo ở link:
//==========
function FixRules() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("E2:E100"); //Vùng thiết lập Data Validation
var numRows = range.getNumRows();
for (var i = 2; i <= numRows+1; i++) {
var cell = SpreadsheetApp.getActive().getRange('E'+i);
var setrange = SpreadsheetApp.getActive().getRange("T"+i+":AY"+i);
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(setrange, true).setAllowInvalid(false).build();
cell.setDataValidation(rule);
}
}
//==========
