【发布时间】:2025-11-25 11:05:02
【问题描述】:
我需要一些帮助来确定最有效的方法来比较一个工作表与另一个工作表的一行中的列组合。
我有两张表,它们都有四列:State、Area、City 和 Location。
PINPOINT 表 - 此表具有唯一的值组合
FEED 表 - 此表具有重复的值组合,以及来自 PINPOINT 表的 KEY 值。
我想要的是一段代码
"如果 FEED 表中 CL 列中的一行包含 PINPOINT 表中 K 列中的键值,
...但是 FEED 表行的 CN 到 CQ 列与 PINPOINT 表中的 A-D 列的值不同...
将 CN 列更新为 CQ FEED 表,其值组合与 PINPOINT 表中的 A-D 相同。"
我在下面粘贴了最新的代码以及图像。它给了我一个数组,说数组是“未定义的”。我刚开始学习代码,所以如果有人提出解决方案,我很乐意重写。
无论如何,任何关于我应该如何写这篇文章的见解都会非常有帮助。
var Data = SpreadsheetApp.getActiveSpreadsheet(); // DATA spreadsheet
var PinpointDataSheet = Data.getSheetByName("The Pinpoints") // DATA "Pinpoint" sheet
var PinpointAllValues = PinpointDataSheet.getRange(2, 1, PinpointDataSheet.getLastRow()-1,PinpointDataSheet.getLastColumn()).getValues();
var FeedDataSheet = Data.getSheetByName("The Feed_Raw") // DATA "Feed" sheet
var FeedAllValues = FeedDataSheet.getRange(2, 1, FeedDataSheet.getLastRow()-1,FeedDataSheet.getLastColumn()).getValues();
var PinpointStateObj = {}; // Object for "Locale" values
var PinpointAreaObj = {}; // Object for "Locale" values
var PinpointCityObj = {}; // Object for "Locale" values
var PinpointSpotObj = {}; // Object for "Locale" values
for(var P = PinpointAllValues.length-1;P>=0;P--) // put Pinpoint values in array..
{
PinpointStateObj[PinpointAllValues[P][0]] = PinpointAllValues[P][10];
PinpointAreaObj[PinpointAllValues[P][1]] = PinpointAllValues[P][10];
PinpointCityObj[PinpointAllValues[P][2]] = PinpointAllValues[P][10];
PinpointSpotObj[PinpointAllValues[P][3]] = PinpointAllValues[P][10];
}
for(var F = FeedAllValues.length-1;F>=0;F--) // for each row in the "Feed" sheet...
{
var Feed_GeotagKey = FeedAllValues[F][90]; // Pinpoint Key values in Feed sheet
{
// If Pinpoint array dont match feed values
if ((PinpointStateObj[Feed_GeotagKey] != FeedAllValues[F][95]) || (PinpointAreaObj[Feed_GeotagKey] != FeedAllValues[F][96])
|| (PinpointCityObj[Feed_GeotagKey] != FeedAllValues[F][97]) || (PinpointSpotObj[Feed_GeotagKey] != FeedAllValues[F][97]))
{
FeedAllValues[F][95] = PinpointAllValues[P][0]; // ...Change FYI Category Name in FYI Topic Sheet
FeedAllValues[F][96] = PinpointAllValues[P][1];
FeedAllValues[F][97] = PinpointAllValues[P][2];
FeedAllValues[F][98] = PinpointAllValues[P][3];
}
}
}
Geotag Sheet - unique values "Dark column" Feed Sheet - recurring values - "Highlighted column"
【问题讨论】:
标签: javascript arrays loops google-apps-script javascript-objects