我正在为我的老板准备一份清单,希望能帮助您找到一个可以简化这一工作的脚本。我有两个电子表格,一个电子表格包含我在库存中实际盘点的所有零件号和零件说明,另一个是零件分销商的数据库。老板告诉我,我需要把价格放在商店库存中的价格上,这些价格会在分销商表上列出。我想做的是获取一个脚本来比较两张纸,并在找到匹配的部件号时,将价格从分销商数据库追加到商店库存中。
答案 0 :(得分:0)
您可以使用下面的代码比较零件编号,并从同一电子表格的 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);
}