javascript - 将索引匹配语句转换为 Google Script
问题描述
我正在将来自不同工作表的表格组合成一个在谷歌工作表上的表格。我想要做的是设置一个函数onedit(e)
可以与一个循环函数结合起来运行它
=index($G$2:$G$8,match($A10&$I$1,arrayformula($B$2:$B$8&$E2:$E8),0),"")。
我是谷歌脚本的新手,所以我刚刚尝试使用公式,但公式会更新它旁边的所有单元格,我想要的是它匹配并保持不变,以便下次column G
更新然后将结果添加到B10
而不是重写A10
。(I1 有公式 =today() 以便它有一个参考位置,但如果代码可以与日期匹配,那就太好了!)
如果你想看看我在说什么,这里是工作表的链接。https://docs.google.com/spreadsheets/d/1jviYYhI1V_bL8TMVvijR9vo_7sBFfktbhgblGNcYfrQ/edit?usp=sharing
列B2:B8
是基于列表的下拉列表,A10:A18
如果这有什么不同的话。任何帮助将不胜感激我一直在寻找 3 天,但找不到可以做到这一点的东西。
解决方案
尝试这个:
function autoload() {
var ss = SpreadsheetApp.getActiveSheet();
var meeting = ss.getRange("B2:F8").getValues();
var targetNames = ss.getRange("A10:A18").getValues();
var writtingRange = ss.getRange("B10:F18").getValues();
var updatedUser = targetNames;
var writtingColumn = -1;
var coolMatrix;
for (var i = 0; i < meeting.length; i++) {
var name = meeting[i][0]
for (var j = 0; j < targetNames.length; j++) {
if (targetNames[j][0] == name) {
for (var z = 0; z < writtingRange[0].length; z++) {
if (writtingRange[j][z] == '' && writtingColumn < 0) {
writtingColumn = z;
break;
}
}
writtingRange[j][writtingColumn] = meeting[i][4];
updatedUser[j] = true;
}
}
}
whiteSpaceRemover(writtingRange);
ss.getRange("B10:F18").setValues(writtingRange);
}
function whiteSpaceRemover(multidimensionalArray) {
for (var i = 0; i < multidimensionalArray.length; i++) {
for (var j = 0; j < multidimensionalArray[0].length; j++) {
if (multidimensionalArray[i][j] == '') {
multidimensionalArray[i].splice(j, 1);
multidimensionalArray[i].push('');
}
}
}
for (var i = 0; i < multidimensionalArray.length; i++) {
if (multidimensionalArray[i][0] == '') {
for (var j = 0; j < multidimensionalArray[i].length; j++) {
if (multidimensionalArray[i][j] != '') {
whiteSpaceRemover(multidimensionalArray);
}
}
}
}
return multidimensionalArray;
}
用您的工作表的副本对此进行了测试,它运行良好,它在名称旁边设置了正确的注释,如果他们不在会议中,则为“-”,您现在必须手动运行它,但它可以是onEdit()
如果你愿意,分配给一个。
推荐阅读
- python - BeautifulSoup 没有找到 xml 标签,我该如何解决这个问题?
- python-3.x - 使用 protobuf=3.4.0/3.6.1 编译错误
- jquery - 在 Angular 中使用 jquery nice select 插件后,值变空
- c - recv 函数(在 Client 的代码中)返回 0
- chart.js - 轴的起点和终点之间的空间
- javascript - 谷歌材料图表按月在 xAxis 上分组并格式化日期
- php - Symfony - 类 Omnipay\PayPal\ExpressGateway 未找到
- android - 使用资源缩减和 Proguard 签署应用程序后应用程序崩溃
- swift - Xcode 的布局问题
- html - 我无法通过单击拼写检查图标检查文本区域输入中的拼写