javascript - 如何在谷歌工作表上的 2 个工作表之间查找?
问题描述
我想编写一个代码,可以在另一个工作表上的一个工作表基础数据中查找所有数据。我写的代码:
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-sheets-formula,所以我使用标准的单行公式提供答案。
假设源工作表 (sheet1) 在 A 列中有键,在 BCD 列中有值
结果表 sheet2 在 A 列中有键,并且您需要第一张表中 BCD 列中的所有相应值。
在 Sheet2 的 B1 中,您写道:
=ifna(arrayformula(vlookup(A:A,Sheet1!A:D,{2,3,4},false)))
ifna - 未找到值时留空
arrayformula 中的 vlookup 对整个 A 列进行 vlookup,并尝试找到相应的值
{2,3,4} 是要由 vlookup 显示的列索引列表(来自 Sheet1!A:D 范围)。
最后的 false 意味着您搜索确切的键值
这是 Sheet1 中的源表
这是你要找的吗?
推荐阅读
- google-cloud-data-fusion - 获取 Cloud Data Fusion 运行时信息
- python - 在 Python 中运行后台进程
- javascript - 为什么这段 JS 和 PHP 代码不起作用?(我正在尝试将值从 JS 发送到 PHP)
- swift - macOS 中的 SQLite3 swift 无法获得一致的查询结果
- css - 带有三元运算符的顺风 - 活动与非活动类
- powerbi - 从开始到当前日期的 DAX PowerBI SUM(由用户输入)
- google-apps-script - 在 GAS 中使用 Urlfetch App 获取驱动器文件映像
- r - 仅用月份和日期计算平均日期的问题
- javascript - AngularJS 中的 HTML 解码
- reactjs - Chrome 无法使用 react-qr-reader 访问 iPhone 相机 - npm