См. вопрос 1337631 Проверьте, существует ли определенный диапазон значений в одном наборе данных в другом наборе данных.
Это решение отлично работает, но что делать, если вы хотите проверить ВНУТРИ того же диапазона? Хотите использовать это для 2 целей: 1) при вводе данных, чтобы предупредить, что определенная комбинация уже была введена (что может иметь вескую причину из-за различий в других данных) 2) чтобы отметить все дублирующиеся записи
Чтобы использовать эту формулу для первой цели (вход), я проверяю диапазон выше текущей записи. Это отлично работает, но не позволяет использовать цель 2...
Есть ли у кого-нибудь предложение, как заставить работать комбинацию? Должно работать при конкатенации всех, кроме текущей строки... Но это будет сложным изменением формулы?
решение1
Предположим, что ваш образец данных состоит из 3 столбцов и находится в ячейках C3:F7.
Теперь в F3 введите следующую формулу и нажмите CTRL + SHIFT + ENTER в строке формул, чтобы создать формулу массива. Теперь формула будет автоматически заключена в фигурные скобки, чтобы указать, что это формула массива.
Теперь перетащите его вниз до нужных строк. Статус уникальности или дублирования строки в той же таблице будет указан соответствующим образом.
=IF(SUM(IF(C3&D3&E3=$C$3:$C$7&$D$3:$D$7&$E$3:$E$7,1,0))>1,"Duplicate","Unique")
решение2
отличная альтернативная формула, за исключением того, что она увеличивает загрузку ЦП до 90% и делает таблицу непригодной для использования, если вы расширяете формулу до следующего «открытого конечного диапазона», чтобы сделать ее применимой для расширяющегося списка...
=ЕСЛИ(ЕСТЕКСТ(D7);ЕСЛИ(СУММ(ЕСЛИ(B7&C7&D7=$B:$B&$C:$C&$D:$D;1;0))>1;"Дубликат";"Уникальный");"")
Есть ли решение, чтобы сделать его доступным? Я сейчас ограничил его строками 8-1000, и это работает, но, конечно, нужно следить за ростом листа!