Сравнение цифр в числе в ячейке Excel

Сравнение цифр в числе в ячейке Excel

В списке из 3-значных чисел от 000 до 999 мне нужно найти числа, в которых хотя бы 2 цифры совпадают. Не могли бы вы помочь мне с формулой?
Я пробовал =IF(LEFT(A98,1) = "LEFT(A98,2)"OR LEFT(A98,2) = "LEFT(A98,3)" OR LEFT(A98,1) ="LEFT(A98,3)" , "0","1"). Но я очень неопытен в Excel, и он не принимает эту формулу.

решение1

На самом деле это не так уж и далеко от истины.

Используйте MID()вместо LEFT(), поскольку LEFT()для сравнения берутся все буквы, а не только одна.

Уберите ненужные кавычки, и это должно заработать:

IF(OR(MID(A98,1,1)=MID(A98,2,1),MID(A98,1,1)=MID(A98,3,1),MID(A98,2,1)=MID(A98,3,1)),"1","0")

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

решение2

Ответ Аганджу, вероятно, то, что вы ищете. Однако часто решение проблемы Excel приходит, если взглянуть на нее по-другому. Вот немного другой подход с парой идей, которые вы можете держать в заднем кармане.

ЛЕВЫЙ, ПРАВЫЙ, СРЕДНИЙ

Поскольку все состоит из трех цифр, мне проще думать о цифрах так:

LEFT(A98,1)
MID(A98,2,1)
RIGHT(A98,1)

Просто личные предпочтения, и это документирует, как использовать эти функции. Это самый левый 1 символ, средний, начиная с позиции 2 для длины 1, и самый правый 1 символ.

Обратное мышление

Вы подошли к этому со стороны поиска любой комбинации совпадающих цифр. Это требует некоторой комбинации IF, OR и/или AND. Если вы подойдете к этому с другой стороны, есть только одно условие, которое вы хотите исключить — все цифры должны быть разными. Тестирование для этого одного случая можно сделать проще.

Булева арифметика

Я объединю это с другим трюком. Вы ищете результат 1or 0, поэтому вы уже думаете в терминах тех, которые представляют true и false. Вы можете использовать некоторые математические свойства 0and 1:

  • ноль раз что-либо равно нулю
  • умножение кучи нулей дает ноль
  • умножение кучи единиц дает единицу
  • единственный способ, которым произведение нескольких нулей или единиц может дать единицу, это если все они — единицы

Собираем все вместе

Excel обрабатывает trueи falseкак 1и 0. Таким образом, без необходимости использовать IF, AND или OR, вы можете использовать:

= (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))

Это дает 1, если все цифры различны и 0если какая-либо комбинация одинакова. Это различает вещи. Но если вы думаете, что должно быть наоборот, как вы описали в вопросе, вы можете обратить это, используя 1минус этой формулы:

= 1 - (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))

Обратите внимание, что значения 0or 1выдаются непосредственно логическими тестами; не было необходимости присваивать эти значения результату на основе оценки условий.

решение3

Вот еще один немного другой способ, использующий идею @fixer1234 LEFT MID& RIGHTи умножение на ноль:

=IF((LEFT(A99,1)-MID(A99,2,1)) * (LEFT(A99,1)-RIGHT(A99,1)) * (MID(A99,2,1)-RIGHT(A99,1))=0,1,0)

если какие-либо пары равны, результат умножения равен нулю, а результат умножения IFравен 1.

Связанный контент