Как выделить ячейку, если значение дублируется в том же столбце для электронной таблицы Google?

Я ищу формулу для ячейки подсветки электронной таблицы Google, если значение дублируется в том же столбце

Может кто-нибудь, пожалуйста, помогите мне по этому запросу?

Ответ 1

Попробуйте это:

  1. Выделить весь столбец
  2. Нажмите Формат
  3. Нажмите Условное форматирование
  4. .Нажмите Добавить другое правило (или измените существующее правило/правило по умолчанию)
  5. Установите форматирование ячеек, если: Custom formula is
  6. Задайте значение: =countif(A:A,A1)>1 (или измените A на выбранный вами столбец)
  7. Установите стиль форматирования.
  8. Убедитесь, что диапазон применяется к вашему столбцу (например, A1:A100).
  9. Нажмите Готово

Все, что записано в ячейках A1: A100, будет проверено, и если есть дубликат (встречается более одного раза), он будет окрашен.

Для локалей, использующих запятую (,) в качестве десятичного разделителя, разделитель аргументов, скорее всего, является точкой с запятой (;). То есть попробуйте: =countif(A:A;A1)>1, вместо этого.

Для нескольких столбцов используйте countifs.

Ответ 2

В то время как ответ zolley совершенно прав для вопроса, здесь более общее решение для любого диапазона, плюс объяснение:

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

Обратите внимание, что в этом примере я буду использовать диапазон A1:C50. Первый параметр ($A$1:$C$50) следует заменить диапазоном, на котором вы хотели бы выделить дубликаты!


чтобы выделить дубликаты:

  • Выберите весь диапазон, по которому требуется повторная маркировка.
  • В меню: Format > Conditional formatting...
  • В разделе Apply to range выберите диапазон, к которому должно применяться правило.
  • В Format cells if выберите Custom formula is в раскрывающемся списке.
  • В текстовом поле вставить данную формулу, отрегулировав диапазон, чтобы соответствовать шагу (3).

Почему это работает?

COUNTIF(range, criterion), будет сравнивать каждую ячейку в range с criterion, которая обрабатывается аналогично формулам. Если специальные операторы не предусмотрены, они будут сравнивать каждую ячейку в диапазоне с данной ячейкой и возвращать количество найденных ячеек для соответствия правилу (в данном случае сравнение). Мы используем фиксированный диапазон (с знаками $), чтобы мы всегда просматривали весь диапазон.

Второй блок, INDIRECT(ADDRESS(ROW(), COLUMN(), 4)), вернет текущее содержимое ячейки. Если бы это было помещено внутри ячейки, документы будут кричать о круговой зависимости, но в этом случае формула оценивается так, как если бы она была в ячейке, не меняя ее.

ROW() и COLUMN() вернут номер строки и номер столбца данной ячейки соответственно. Если параметр не указан, текущая ячейка будет возвращена (это будет 1, например, B3 вернет 3 для ROW() и 2 для COLUMN()).

Затем мы используем: ADDRESS(row, column, [absolute_relative_mode]) для перевода числовой строки и столбца в ссылку на ячейку (например, B3). Помните, что пока мы находимся внутри контекста ячейки, мы не знаем его адрес ИЛИ контент, и нам нужно содержимое для сравнения). Третий параметр заботится о форматировании, а 4 возвращает форматирование INDIRECT().

INDIRECT(), возьмет ссылку на ячейку и вернет ее содержимое. В этом случае содержимое текущей ячейки. Затем вернемся к началу, COUNTIF() проверит каждую ячейку в диапазоне против ours и вернет счет.

Последний шаг заключается в том, что наша формула возвращает логическое выражение, делая его логическим выражением: COUNTIF(...) > 1. > 1 используется, потому что мы знаем там, по крайней мере, одну ячейку, идентичную нашей. Что наша клетка, находящаяся в диапазоне, и, следовательно, будет сопоставлена ​​с самим собой. Поэтому, чтобы указать дубликат, нам нужно найти 2 или более ячейки, соответствующие нашим.


Источники:

  • Справка редакторов документов: COUNTIF()
  • Справка редакторов документов: INDIRECT()
  • Справка редакторов документов: ADDRESS()
  • Справка редакторов документов: ROW()
  • Справка редакторов документов: COLUMN()

Ответ 3

В раскрывающемся меню "Содержит текст" выберите "Пользовательская формула:" и напишите: "= countif (A: A, A1) > 1" (без кавычек)

Я сделал точно как zolley, но нужно сделать небольшую коррекцию: вместо "Text Contains" использовать "Custom formula is". И тогда будет работать условный рендеринг.

Screenshot from menu

Ответ 4

Ответ @zolley правильный. Просто добавив GIF и шаги для справки.

  1. Перейти в меню " Format > Conditional formatting..
  2. Найти Format cells if..
  3. Добавить =countif(A:A,A1)>1 в поле Custom formula is
    • Примечание. Измените букву A на свой собственный столбец.

enter image description here

Ответ 5

Также вы можете установить дополнение " Удалить дубликаты" и найти (выделить) или удалить дублирующиеся значения в столбцах или листах.

Ответ 6

Я пробовал все параметры, и никто не работал.

Мне помогли только скрипты приложений Google.

источник: https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets

В верхней части документа

1.- перейдите в tools > script editor

2.- укажите имя своего script

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 секунды моя повторяющаяся строка была окрашена. Просто скопируйте script.

Если вы не знаете о скриптах приложений Google, эти ссылки могут вам помочь:

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

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

Надеюсь, это поможет.

Ответ 7

Выделите дубликаты (в столбце C):

=COUNTIF(C:C, C1) > 1

Объяснение: C1 здесь не относится к первой строке в C. Поскольку эта формула оценивается правилом условного формата, вместо этого, когда формула проверяется, чтобы увидеть, применима ли она, C1 эффективно ссылается к какой строке в настоящее время выполняется оценка, чтобы увидеть, следует ли применять выделение. (Так что это больше похоже на INDIRECT(C &ROW()), если это что-то значит для вас!). По сути, при оценке формулы условного формата все, что относится к строке 1, сравнивается со строкой, с которой запускается формула. (И да, если вы используете C2, то вы просите правило проверить статус строки сразу под той, которая в настоящее время оценивается.)

Таким образом, это говорит о том, что нужно подсчитать вхождения в C1 (текущая оцениваемая ячейка) во всем столбце C, и если их более 1 (т.е. значение имеет дубликаты), то: apply выделение (потому что формула в целом оценивается как TRUE).

Выделите только первый дубликат:

=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)

Объяснение: Это подсвечивается, только если оба COUNTIF являются TRUE (они появляются внутри AND()).

Первый оцениваемый член (COUNTIF(C:C, C1) > 1) точно такой же, как и в первом примере; это TRUE, только если все, что находится в C1, имеет дубликат. (Помните, что C1 фактически ссылается на текущую строку, проверяемую, чтобы увидеть, должна ли она быть выделена).

Второй термин (COUNTIF(C$1:C1, C1) = 1) выглядит аналогично, но имеет три принципиальных отличия:

Он не выполняет поиск по всему столбцу C (как и первый: C:C), но вместо этого начинает поиск с первой строки: C$1 ($ заставляет его смотреть буквально на строку 1, а не на то, какая строка оценивается).

И тогда он останавливает поиск в текущей оцениваемой строке C1.

Наконец-то написано = 1.

Таким образом, это будет только TRUE, если нет дубликатов над строкой, которая в данный момент оценивается (то есть она должна быть первой из дубликатов).

В сочетании с этим первым термином (который будет только TRUE, если в этой строке есть дубликаты) это означает, что будет выделено только первое вхождение.

Выделите второй и последующие дубликаты:

=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)

Объяснение: Первое выражение то же, что и всегда (TRUE, если текущая оценочная строка вообще является дубликатом).

Второе слагаемое точно такое же, как и последнее, за исключением того, что оно отрицается: вокруг него есть NOT(). Так что он игнорирует первый случай.

Наконец, третий член собирает дубликаты 2, 3 и т.д. COUNTIF(C1:C, C1) >= 1 запускает диапазон поиска в текущей оцененной строке (C1 в C1:C). Тогда он оценивается как TRUE (применить выделение), если есть один или несколько дубликатов ниже этого (включая этот): >= 1 (это должен быть >=, а не только >, в противном случае последний дубликат игнорируется).