Условное форматирование дублирующихся строк в гугл листах - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу применить условное форматирование, чтобы все строки, которые точно соответствуют другой строке, были выделены.

Допустим, у меня есть электронная таблица, подобная следующей

|   | a | b | c |
|---|---|---|---|
| 1 | A | B | C | // Matches row 3 and 6
| 2 | A | B | A | // Matches row 5
| 3 | A | B | C | // Matches row 1 and 6
| 4 | B | B | C | // Matches no other row
| 5 | A | B | A | // Matches Row 2
| 6 | A | B | C | // Matches row 1 and 3
| 7 | B | B | A | // Matches no other row

Все строки, кромедля строк 4 и 7 будут выделены.

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

Моя попытка до сих пор может возвращать только значения строк, в которых только первые 2 ячейки являются дубликатами, и возвращает объединение всех повторяющихся значений в каждой строке, что очень далеко от того, чтоЯ хочу.

CC = arrayformula(A:A&" "&B:B&" "&C:C) возвращает новую строку, которая является объединением A, B и C, которая приводит значения ячеек к строкам, поэтому "1" и 1, которые не являются одинаковыми, выглядят както же самое, и также не работает по всей строке (можно было бы сделать, если бы я просто продолжал добавлять столбцы, но выглядел бы ужасно).

=filter(unique(CC), arrayformula(countif(CC, unique(CC)) > 1)) CC - этовозвращенное значение из предыдущего уравнения

Это вывело бы A B C A B A

Затем я мог бы добавить правило условного форматирования с пользовательской формулой, которая выделяет строку, если ее составное содержимое "Соответствует" одному извернуть значения из предыдущего уравнения, но я не знаю, как это сделать, а предыдущее уравнение уже довольно некорректно.

В идеале мне нужно решение, которое не требует конкатенации строк или ввода всех имен столбцов.

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018

Это решение не включает преобразование значений в строки, но все равно требует добавления функции для каждого столбца, так что оно почти там.

=countifs(arrayformula($A:$A=$A1),TRUE,arrayformula($B:$B=$B1),TRUE,arrayformula($C:$C=$C1),TRUE)>1

Это просто условие для каждого столбца conditional = arrayformula($A:$A=$A1)в выражениях countifs(conditional, true).

Мне просто нужно сделать так, чтобы он мог принимать значения столбцов в виде массива, который, как я предполагаю, потребует arrayformula

0 голосов
/ 26 ноября 2018

Существует НАМНОГО более простой способ.

  • Загрузить условное форматирование (в разделе Формат).
  • Выберите «пользовательская формула есть» (путь внизу списка формул)
  • Используйте формулу "= countif (A: A, A1)> 1", где A - столбец, содержащий ячейки, которые вы хотите отформатировать для дубликатов.
0 голосов
/ 25 апреля 2018

Давайте рассмотрим, что необходимо для создания этой функции.

1-й, вам нужно получить строки в виде строки, чтобы иметь возможность сравнивать их, как вы это делали.Я не использовал пробел, как вы, потому что он есть, но вы можете сохранить его.

=ARRAYFORMULA(A:A&B:B&C:C)

Проблема в том, что, поскольку формула будет в 3 столбце, мы не хотим еечтобы стать C:C&D:D&E:E, поэтому мы должны исправить столбец.

=ARRAYFORMULA($A:$A&$B:$B&$C:$C)

Yay!Теперь у нас есть список строк, которые представляют «значение» каждой строки.Теперь мы можем посчитать для каждой строки, сколько раз они найдены.Я использовал A2, потому что я думаю, что у вас есть заголовок, но если у вас его нет, просто замените его на A1.

=COUNTIF(ARRAYFORMULA($A:$A&$B:$B&$C:$C);A2&B2&C2)

Мы также должны исправить столбец здесь, иначе функция будет работать только на первомодин.

=COUNTIF(ARRAYFORMULA($A:$A&$B:$B&$C:$C);$A2&$B2&$C2)

И теперь все, что осталось, это проверить, хотите ли вы увидеть уникальных или тех, у кого есть совпадения

=COUNTIF(ARRAYFORMULA($A:$A&$B:$B&$C:$C);$A2&$B2&$C2)>1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...