Я ищу формулу для ячейки подсветки электронной таблицы Google, если значение дублируется в том же столбце
Может кто-нибудь, пожалуйста, помогите мне по этому запросу?
Я ищу формулу для ячейки подсветки электронной таблицы Google, если значение дублируется в том же столбце
Может кто-нибудь, пожалуйста, помогите мне по этому запросу?
Попробуйте это:
Custom formula is=countif(A:A,A1)>1 (или измените A на выбранный вами столбец)A1:A100).Все, что записано в ячейках A1: A100, будет проверено, и если есть дубликат (встречается более одного раза), он будет окрашен.
Для локалей, использующих запятую (,) в качестве десятичного разделителя, разделитель аргументов, скорее всего, является точкой с запятой (;). То есть попробуйте: =countif(A:A;A1)>1, вместо этого.
Для нескольких столбцов используйте countifs.
В то время как ответ 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 в раскрывающемся списке.Почему это работает?
 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 (A: A, A1) > 1" (без кавычек)
Я сделал точно как zolley, но нужно сделать небольшую коррекцию: вместо "Text Contains" использовать "Custom formula is". И тогда будет работать условный рендеринг.
 
Ответ @zolley правильный. Просто добавив GIF и шаги для справки.
Format > Conditional formatting..Format cells if..=countif(A:A,A1)>1 в поле Custom formula is A на свой собственный столбец.Также вы можете установить дополнение " Удалить дубликаты" и найти (выделить) или удалить дублирующиеся значения в столбцах или листах.
Я пробовал все параметры, и никто не работал.
Мне помогли только скрипты приложений 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
Надеюсь, это поможет.
=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 (это должен быть >=, а не только >, в противном случае последний дубликат игнорируется).