Вы можете использовать приведенный ниже код для сравнения номеров деталей и получения цен от продуктов, которые находятся внутри 2 вкладок в той же таблице .Это можно изменить , чтобы использовать 2 разные таблицы.Лучше всего создать тестовую электронную таблицу с некоторыми данными и проверить ее перед применением к реальным данным.
Скопируйте код, откройте редактор сценариев в электронной таблице, вставьте, сохраните.Вставьте лист и соответствующие имена столбцов, как указано в коде.A, B и т. Д. Не являются именами столбцов.«Цена», «Номер детали» и т. Д. Являются примерами имен столбцов.В меню нажмите Запустить функцию> Выполнить> onOpen .Он попросит авторизацию, дай.Перезагрузите таблицу.Он должен иметь Пользовательское меню пункт в строке меню.Нажмите Получить цены , чтобы выполнить скрипт.
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Custom Menu')
.addItem('Get Prices', 'getPrices')
.addToUi();
}
function getPrices() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var inv = ss.getSheetByName('inventory sheet name here');
var dist = ss.getSheetByName('distributor sheet name here');
var invv = inv.getDataRange().getValues();
var distv = dist.getDataRange().getValues();
var inv_price_col = invv[0].indexOf('put inventory sheet price column name here');
var dist_price_col = distv[0].indexOf('put distributor sheet price column name here');
var inv_part_col = invv[0].indexOf('put inventory sheet part number column name here');
var dist_part_col = distv[0].indexOf('put distributor sheet part number column name here');
var ds = {};
for (var i = 0, max = distv.length; i < max; i++) {
ds[distv[i][dist_part_col]] = distv[i][dist_price_col];
}
for (var i = 0, max = invv.length; i < max; i++) {
invv[i][inv_price_col] = ds[invv[i][inv_part_col]] || '';
}
inv.getDataRange().setValues(invv);
}