#javascript #google-apps-script #multidimensional-array #google-sheets-formula
Вопрос:
Я хочу написать код, который может отображать все данные в базе данных одного рабочего листа на другом рабочем листе. Код, который я пишу:
function myFunction() {
var as = SpreadsheetApp.getActiveSpreadsheet(); //WorkSheet need to Vlookup
var az = SpreadsheetApp.openById("1tnLn-E-03-Pt0ts6x_j-1MzWmuMJ8NyGoX810uk3a0Y"); //Worksheet 's data for vlookup
var Sheet1 = as.getSheetByName("Sheet 1"); // Sheet need Vlookup
var Sheet0 = az.getSheetByName("Sheet 0"); // Sheet has data for Vlookup
var a = Sheet1.getLastRow();
var b = Sheet0.getLastRow();
var data = Sheet0.getRange(1,1,a,8).getValue();
var searchkey = Sheet1.getRange(1,1,b,1).getValue();
for (var j = 1; j<=b;j ) {
for (var i = 1; i<=a;i ){
if(searchkey[j][0]==data[i][0]);
return Sheet1.getRange(j 1,5) = data[i][4];
//If correct "E4" at Vlookup sheet = "E4" at data sheet
} else {
catch(e) // If wrong coutinue next For Loop
}
}
}
Но это не работает. Я совершенно новичок в сценарии приложений Google, поэтому надеюсь, что вы, парень, дадите мне несколько советов по этой ситуации.
Большое вам спасибо
Комментарии:
1. Пожалуйста, предоставьте образец листа с ожидаемым результатом. Поделитесь тестовым листом
Ответ №1:
Поскольку вы используете тег: google-таблицы-формула, я даю ответ, используя стандартную формулу в одну строку.
Предположим, что исходный лист (лист1) содержит ключи в столбце A и значения в столбцах B C D
Лист результатов 2 содержит ключи в столбце A, и вам нужны все соответствующие значения из столбцов B C D с первого листа.
В B1 листа 2 вы пишете:
=ifna(arrayformula(vlookup(A:A,Sheet1!A:D,{2,3,4},false)))
ifna — оставляет пустым, если значение не найдено
vlookup в arrayformula делает vlookup для всего столбца A и пытается найти соответствующие значения
{2,3,4} — это список индексов столбцов (из диапазона Sheet1!A:D), которые будут отображаться с помощью vlookup.
значение false в конце означает, что вы ищете точное значение ключа
И это исходная таблица в Листе1
Это то, что вы искали?