【发布时间】:2020-11-27 12:26:55
【问题描述】:
我想检查一行是否有重复项,如果匹配则将它们加 1。
我想以这种方式操作的数据是 LAT LONG 坐标。 它们源自聚合数据采集,用户只能插入国家和城市。通过附加组件,这些将获得 GEO 编码。 问题是,我需要稍微更改重复条目的值,以便在地图上显示它们。最简单的方法(我认为)是如果已经存在具有相同值的条目,则将 LAT 或 LONG 坐标增加 1。
Data sample & results of script
知道如何通过脚本做到这一点吗?
我的代码,原本打算删除重复行:
function overwriteDuplicates() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName("Formularantworten 2");
var vA=sh.getDataRange().getValues();
var hA=vA[0];
var hObj={};
hA.forEach(function(e,i){hObj[e]=i;});//header title to index
var uA=[];
var d=0;
for(var i=0;i<vA.length;i++) {
if(uA.indexOf(vA[i][hObj['Latitude']])==-1) {
uA.push(vA[i][hObj['Latitude']]);
}else{
function increment() {
SpreadsheetApp.getActiveSheet().getRange('K').setValue(SpreadsheetApp.getActiveSheet().getRange('K').getValue() + 1);
}
}}}
【问题讨论】:
-
如果您共享样本表、显示样本数据以及您希望看到的结果 - 手动输入,这总是很有帮助的。请参阅此处了解如何分享:webapps.stackexchange.com/questions/138382/…。其次,增加重复项到底是什么意思?一行中的重复值?看一个例子可能有助于我们理解。
-
在您提供的屏幕截图中(1),不仅有增量,还有减量,
835转换为834、835、836,所以它不仅是增量吗? (2)经度没有改变,它也应该改变吗?,(3)在同一行,不同列中创建重复项(总是B:E将在H:K中重复?)。你能澄清这一切吗? -
1) 仅将
835增加到836等就足够了。我只需要生成一对新的 LAT LONG 坐标。屏幕截图在那里有点误导。 2) LONG 坐标不必为此进行必要的更改。只需更改 LAT 或 LONG 中的任何一个,就会生成一个新的坐标对。 3)H:K显示数据操作的目标。我只想更改B:E中的重复项,以便最终表看起来像H:K
标签: google-sheets duplicates increment