您可以与我们共享文档并解释一下预期结果吗?
—
Jacob Jan Tuinstra
Answers:
这个小脚本将比较两个范围,作为一个公式:
function COMPARE(array1, array2) {
var array = [];
for(i=0; i<array1.length; i++) {
for(j=0; j<array2.length; j++) {
if(array1[i][0] == array2[j][0]) {
// the extra square brackets will make it a 2D array,
// aligning it vertically
array.push([array1[i][0]]);
}
}
}
return array;
}
在表格中,您可以在单元格D2中添加以下公式:
=COMPARE(A2:A7,B2:B7)
通过工具菜单,脚本编辑器添加脚本。
如果您要查找两个范围的减法(范围1的元素不在范围2中),例如:
List 1 List 2 Expected result
a 1 a
b 2 b
c e c
d 4 d
e f
f 6
这是适合您的公式:
=iferror(filter($A$2:$A, iserror(match($A$2:$A, B2:$B , false))), "no match")
这个小脚本将比较两个范围,作为一个公式:
function intersect(array1, array2) {
var array = [];
for(i=0; i<array1.length; i++) {
for(j=0; j<array2.length; j++) {
if(array1[i][0] == array2[j][0]) {
// the extra square brackets will make it a 2D array,
// aligning it vertically
array.push([array1[i][0]]);
}
}
}
return array;
}
额外:
function extersect(array1, array2) {
var array = [];
var tmp = true;
for(i=0; i<array1.length; i++) {
for(j=0; j<array2.length; j++) {
if(array1[i][0] == array2[j][0]) {
// the extra square brackets will make it a 2D array,
// aligning it vertically
tmp = false;
}
}
if(tmp == true)
{
array.push([array1[i][0]]);
}
tmp = true;
}
return array;
}
在表格中,您可以在单元格D2中添加以下公式:
=intersect(A2:A7,B2:B7)
通过工具菜单,脚本编辑器添加脚本。
= intersect(A2:A7,B2:B7)返回两个数组array1,array2上都存在的结果。
= extersect(A2:A7,B2:B7)返回范围B2:B7中不存在的array1的值