web-dev-qa-db-ja.com

Googleスプレッドシートで同じ列に値が重複している場合にセルを強調表示する方法

Googleスプレッドシートの式を探しています 値が同じ列に重複している場合はセルをハイライトします

誰もがこのクエリのために私を助けてください?

212
user3331309

これを試して:

  1. 列全体を選択
  2. クリック{フォーマット
  3. クリック条件付き書式設定
  4. クリック{新しいルールを追加
  5. セルの書式設定を次のように設定します。Custom formula is:
  6. 値を次のように設定します。=countif(A:A,A1)>1
  7. フォーマットスタイルを設定します。
  8. 範囲が列に適用されていることを確認してください(例:A1:A100)。

A1:A100のセルに書かれたものはすべてチェックされ、重複がある場合(複数回発生する場合)は色付けされます。

小数点区切り文字としてコンマ(,)を使用するロケールの場合、引数区切り文字はセミコロン(;)である可能性があります。つまり、代わりに:=countif(A:A;A1)>1を試してください。

複数列の場合は、 countifs を使用します。

373
zolley

zolley's answer はこの質問に完全に適していますが、これはあらゆる範囲に対するより一般的な解決策と説明です。

    =COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1

この例ではA1:C50の範囲を使用します。最初のパラメーター($A$1:$C$50)は、重複を強調表示したい範囲に置き換えてください。


重複を強調表示するには

  1. 重複マーキングが必要な範囲全体を選択します。
  2. メニュー上:Format> Conditional formatting...
  3. Apply to rangeの下で、ルールを適用する範囲を選択します。
  4. Format cells ifで、ドロップダウンのCustom formula isを選択します。
  5. テキストボックスに与えられた式を挿入し、範囲をステップ(3)と一致するように調整します。

なぜそれが機能するのですか?

COUNTIF(range, criterion)は、range内のすべてのセルをcriterionと比較します。これは式と同様に処理されます。特別な演算子が提供されていない場合は、範囲内のすべてのセルを指定されたセルと比較し、ルールに一致していることが判明したセルの数(この場合は比較)を返します。常に全範囲が表示されるように、固定範囲($記号付き)を使用しています。

2番目のブロックINDIRECT(ADDRESS(ROW(), COLUMN(), 4))は、現在のセルの内容を返します。これがセル内に配置されている場合、docsは循環依存について叫んでいますが、この場合、式は変更されることなくセル内にあるかのように評価されます。

ROW()COLUMN()はそれぞれ与えられたセルの行 番号 と列 番号 を返します。パラメータが指定されていない場合、現在のセルが返されます(これは1から始まります。たとえば、B3ROW()には3、COLUMN()には2を返します)。

次に、ADDRESS(row, column, [absolute_relative_mode])を使用して、数値の行と列をセル参照に変換します(B3など)。セルのコンテキスト内にいる間は、アドレスORの内容がわからないので、と比較するためのコンテンツ)。 3番目のパラメータはフォーマットに注意を払い、4INDIRECT()が好きなフォーマットを返します。

INDIRECT()はセル reference を取り、その内容を返します。この場合、現在のセルの内容それから最初に戻ると、COUNTIF()は範囲内のすべてのセルを私たちのものに対してテストし、カウントを返します。

最後のステップは、論理式をCOUNTIF(...) > 1にすることで、式をブール値に戻すことです。 > 1が使用されているのは、少なくとも1つのセルと同じセルがあることがわかっているためです。それが私たちの細胞であり、それは範囲内にあり、したがってそれ自体と比較されます。そのため、重複を示すには、自分のものと一致するセルを2つ以上見つける必要があります。


出典:

49
Selfish

[テキストを含む]ドロップダウンメニューから[カスタム数式は]を選択し、次のように入力します。 "= countif(A:A、A1)> 1"(引用符は含みません)

zolley の提案どおりに行いましたが、少し修正する必要があります。"Text Contains"の代わりに"Custom formula is"を使用してください。そして、条件付きレンダリングはうまくいきます。

Screenshot from menu

27
Shurik

@zolleyの回答は正しいです。 Gifを追加して参照用の手順を実行するだけです。

  1. ジャンプメニューFormat > Conditional formatting..
  2. Format cells if..を探す
  3. フィールドCustom formula is=countif(A:A,A1)>1を追加します。
    • 注:Aという文字を自分の列で変更してください。

enter image description here

19
maheshwaghmare

また、アドオン 重複の削除 をインストールして、列またはシート内の重複する値を検索(強調表示)または削除することもできます。

5
vujke

私はすべてのオプションを試しましたが、どれもうまくいきませんでした。

Googleアプリのスクリプトだけが役に立ちました。

ソース: https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets

文書の上部に

1.- tools>スクリプトエディタに移動します

2.-あなたのスクリプトの名前を設定します

3.-このコードを貼り付けます:

function findDuplicates() {
  // List the columns you want to check by number (A = 1)
  var CHECK_COLUMNS = [1];

  // Get the active sheet and info about it
  var sourceSheet = SpreadsheetApp.getActiveSheet();
  var numRows = sourceSheet.getLastRow();
  var numCols = sourceSheet.getLastColumn();

  // Create the temporary working sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet("FindDupes");

  // Copy the desired rows to the FindDupes sheet
  for (var i = 0; i < CHECK_COLUMNS.length; i++) {
    var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
    var nextCol = newSheet.getLastColumn() + 1;
    sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
  }

  // Find duplicates in the FindDupes sheet and color them in the main sheet
  var dupes = false;
  var data = newSheet.getDataRange().getValues();
  for (i = 1; i < data.length - 1; i++) {
    for (j = i+1; j < data.length; j++) {
      if  (data[i].join() == data[j].join()) {
        dupes = true;
        sourceSheet.getRange(i+1,1,1,numCols).setBackground("red");
        sourceSheet.getRange(j+1,1,1,numCols).setBackground("red");
      }
    }
  }

  // Remove the FindDupes temporary sheet
  ss.deleteSheet(newSheet);

  // Alert the user with the results
  if (dupes) {
    Browser.msgBox("Possible duplicate(s) found and colored red.");
  } else {
    Browser.msgBox("No duplicates found.");
  }
};

4.-保存して実行

3秒以内に、重複した行が色付けされました。スクリプトをコピーするだけです。

Google Appsのスクリプトがわからない場合は、このリンクが役立つことがあります。

https://zapier.com/learn/google-sheets/google-apps-script-tutorial/

https://developers.google.com/apps-script/overview

これが役に立つことを願っています。

1
JRichardsz