Javascript Google sheets唯一的多列并输出多列
我需要一些帮助来解决这个问题。我有多个数据列,我希望这样做,以便我只保留唯一的值,并将项目返回到各自的列Javascript Google sheets唯一的多列并输出多列,javascript,google-sheets,unique,Javascript,Google Sheets,Unique,我需要一些帮助来解决这个问题。我有多个数据列,我希望这样做,以便我只保留唯一的值,并将项目返回到各自的列 1 2 3 6 1 1 4 7 2 3 5 8 结果会是这样的: 1 3 4 6 2 5 7 8 现在,我可以使用=unique()函数处理一列数据,但我希望能够将一列新数据放入新表中,它只会将其中的唯一项吐出到新表中 在脚本编辑器中粘贴这些脚本 函数onOpen(){ SpreadsheetApp.getUi().createMenu(“我的菜单”) .addIt
1 2 3 6
1 1 4 7
2 3 5 8
结果会是这样的:
1 3 4 6
2 5 7
8
现在,我可以使用=unique()
函数处理一列数据,但我希望能够将一列新数据放入新表中,它只会将其中的唯一项吐出到新表中
=ArrayFormula(transpose(split(transpose(split(join(",",text(unique(transpose(split(textjoin(",",true,{transpose(A1:D3),-transpose(column(A1:D3))}),","))),"0;|")),"|")),",")))
也适用于完整列引用
=ArrayFormula(transpose(split(transpose(split(join(",",text(unique(transpose(split(textjoin(",",true,{transpose(A:D),-transpose(column(A:D))}),","))),"0;|")),"|")),",")))
这是一个使用数组公式的尝试:假设单元格不包含负数、逗号或管道符号
=ArrayFormula(transpose(split(transpose(split(join(",",text(unique(transpose(split(textjoin(",",true,{transpose(A1:D3),-transpose(column(A1:D3))}),","))),"0;|")),"|")),",")))
也适用于完整列引用
=ArrayFormula(transpose(split(transpose(split(join(",",text(unique(transpose(split(textjoin(",",true,{transpose(A:D),-transpose(column(A:D))}),","))),"0;|")),"|")),",")))
var sheet=SpreadsheetApp.getActive().getSheetByName(“Sheet5”);
var sheet2=SpreadsheetApp.getActive().getSheetByName(“Sheet6”);
var info=sheet.getDataRange().getValues();
var lastRow=sheet.getLastRow();
var lastCol=sheet.getLastColumn();
var seen={};//使对象充当哈希表
变量数据=信息;//使数组与包含整个图纸的原始数组大小相同
对于(var x=0;x
前面的答案有50000个字符的连接限制,因此它有自己的限制。此选项有助于处理更大的数据集。我认为它还可以调整和改进var sheet=SpreadsheetApp.getActive().getSheetByName(“Sheet5”);
var sheet2=SpreadsheetApp.getActive().getSheetByName(“Sheet6”);
var info=sheet.getDataRange().getValues();
var lastRow=sheet.getLastRow();
var lastCol=sheet.getLastColumn();
var seen={};//使对象充当哈希表
变量数据=信息;//使数组与包含整个图纸的原始数组大小相同
对于(var x=0;x
前面的答案有50000个字符的连接限制,因此它有自己的限制。此选项有助于处理更大的数据集。我认为它还可以调整和改进这段整洁的代码。是的,您是对的,我的答案(以及其他基于拆分/联接模式的答案)将受到单个单元格中字符串最大长度的限制。通过查看您的答案,我了解到JavaScript中的数组是关联的(不一定实现为哈希表),因此与say Java不同,您可以使用任何数据类型作为数组的“下标”,而不仅仅是整数。这段代码非常简洁。是的,您是对的,我的答案(以及其他基于拆分/联接模式的答案)将受到单个单元格中字符串最大长度的限制。通过查看您的答案,我了解到JavaScript中的数组是关联的(不一定实现为哈希表),因此与say Java不同,您可以使用任何数据类型作为数组的“下标”,而不仅仅是整数。