本文介绍如何使用 Range.removeDuplicates 方法删除区域内的重复行。 有关范围成员的完整列表,请参阅 Excel.Range 类。
要点
- 它仅在提供的
range中工作。 - 列索引从零开始,相对于范围。
- 设置为
includeHeader: true在检查重复项时跳过第一行。 - 空单元格的计数与任何其他值一样。 两个空单元格可以是重复单元格。
- 它比较存储的单元格值,而不是公式逻辑。
- 它返回
RemoveDuplicatesResult和removeduniqueRemaining计数。
删除具有重复条目的行
方法 removeDuplicates 删除指定列中具有重复条目的行。 方法遍历从上到下) 范围内从最低值索引到最高值索引范围内的每一行 (。 如果指定列中的值之前显示在区域中,则会删除该行。 在区域内位于已删除行下方的行将上移。
removeDuplicates 不会影响单元格在范围之外的位置。
removeDuplicates 使用 number[] 来表示已执行重复项检查的列索引。 此数组从零开始并且与区域而不是与工作表相关。 方法还采用布尔参数,该参数指定第一行是否为标题。 当 为 时 true,考虑重复项时,将忽略顶部行。 方法 removeDuplicates 返回一个 RemoveDuplicatesResult 对象,该对象指定删除的行数和剩余的唯一行数。
使用区域的 removeDuplicates 方法时,请记住以下几点。
-
removeDuplicates会考虑单元格值,而不是函数结果。 如果两个不同的函数具有相同的求值结果,则不会将单元格值视为重复项。 -
removeDuplicates不会忽略空单元格。 空单元格的值与任何其他值具有相同的处理方式。 这意味着区域内所含的空行将包含在RemoveDuplicatesResult中。
下面的代码示例演示如何删除第一列中具有重复值的条目。
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getItem("Sample");
let range = sheet.getRange("B2:D11");
let deleteResult = range.removeDuplicates([0],true);
deleteResult.load();
await context.sync();
console.log(deleteResult.removed + " entries with duplicate names removed.");
console.log(deleteResult.uniqueRemaining + " entries with unique names remain in the range.");
});
删除重复条目之前的数据
删除重复条目后的数据