次の方法で共有


Excel JavaScript API を使用して重複を削除する

この記事では、Excel JavaScript API を使用して範囲内の重複するエントリを削除するコード サンプルを提供します。 オブジェクトがサポートする Range プロパティとメソッドの完全な一覧については、「 Excel.Range クラス」を参照してください。

重複するエントリを含む行を削除する

Range.removeDuplicates メソッドは、指定された列に重複するエントリがある行を削除します。 メソッドは、最も低い値のインデックスから範囲内の最大値のインデックス (上から下まで) までの範囲の各行を通過します。 任意の行で、指定された 1 つまたは複数の列が範囲より前に表示されている場合、その行は削除されます。 範囲にある削除された行の下の行が上に移動します。 removeDuplicates は、範囲外にあるセルの位置には影響しません。

removeDuplicates は、どの重複をチェックするかを示す列インデックスを表す number[] を受け取ります。 この配列は、0 から始まり、ワークシートではなく範囲を基準にしています。 メソッドは、最初の行がヘッダーであるかどうかを指定するブール値パラメーターも受け取ります。 の場合 true、重複を考慮すると、先頭行は無視されます。 メソッドは removeDuplicatesRemoveDuplicatesResult 削除された行数と残りの一意の行数を指定する オブジェクトを返します。

範囲の removeDuplicates メソッドを使用する場合は、次の点に注意してください。

  • removeDuplicates は、関数の結果ではなくセルの値を考慮します。 2 つの異なる関数が同じ結果として評価される場合、セルの値は重複と見なしません。
  • 空のセルは、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.");
});

重複するエントリが削除される前のデータ

範囲の重複の削除メソッドが実行される前の Excel のデータ。

重複するエントリが削除された後のデータ

範囲の重複の削除メソッドが実行された後の Excel のデータ。

関連項目