Comparar dígitos de un número en una celda de Excel

Comparar dígitos de un número en una celda de Excel

En una lista de números de 3 dígitos del 000 al 999 necesito poder identificar los números que tienen al menos 2 dígitos iguales, ¿podrían ayudarme con una fórmula?
Lo intenté =IF(LEFT(A98,1) = "LEFT(A98,2)"OR LEFT(A98,2) = "LEFT(A98,3)" OR LEFT(A98,1) ="LEFT(A98,3)" , "0","1"). Pero no tengo mucha experiencia en Excel y no acepta esta fórmula.

Respuesta1

En realidad, eso no está tan lejos.

Úselo MID()en lugar de LEFT(), porque LEFT()toma todas las letras y no solo una para comparar.

Elimine las comillas innecesarias y debería funcionar:

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")

Asegúrate de entender las partes de lo que escribí, para que puedas corregirlo si escribí mal o olvidé un paréntesis. No tengo una computadora aquí para verificar y estoy escribiendo en un teléfono celular.

Respuesta2

La respuesta de Aganju es probablemente lo que estás buscando. Sin embargo, muchas veces la solución a un problema de Excel proviene de verlo de diferentes maneras. Aquí tienes un enfoque un poco diferente con un par de ideas que puedes guardar en tu bolsillo trasero.

IZQUIERDA, DERECHA, MEDIO

Como todo tiene tres dígitos, me resulta más fácil pensar en los dígitos como:

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

Solo preferencia personal, y esto documentará cómo usar esas funciones. Ese es el carácter más a la izquierda, el del medio comienza en la posición 2 con una longitud de 1 y el carácter más a la derecha.

Pensamiento inverso

Abordaste esto desde la dirección de encontrar cualquier combinación de dígitos coincidentes. Eso requiere alguna combinación de IF, OR y/o AND. Si lo aborda desde la otra dirección, solo hay una condición que desea excluir: todos los dígitos son diferentes. Las pruebas para ese caso único se pueden realizar de manera más sencilla.

Aritmética booleana

Combinaré esto con otro truco. Estás buscando un resultado 1o 0, por lo que ya estás pensando en términos de aquellos que representan verdadero y falso. Puedes usar algunas propiedades matemáticas de 0y 1:

  • cero por cualquier cosa es cero
  • multiplicar un montón de ceros da cero
  • multiplicar un montón de unos da uno
  • La única forma en que el producto de un montón de ceros o unos puede dar uno es si todos son unos.

Poniendo todo junto

Excel trata truey falsecomo 1y 0. Entonces, sin necesidad de IF, AND u OR, puedes usar:

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

Esto produce 1si todos los dígitos son diferentes y 0si alguna combinación es igual. Eso diferencia las cosas. Pero si su forma de pensar es que debería ser al revés, como describió en la pregunta, puede revertirlo usando 1menos esa fórmula:

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

Y observe que los valores 0o 1son producidos directamente por las pruebas lógicas; no fue necesario asignar estos valores al resultado en función de las condiciones de evaluación.

Respuesta3

Aquí hay otra forma ligeramente diferente, usando la idea LEFT MID& RIGHTy de multiplicación por cero de @fixer1234:

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

si alguno de los pares es igual, el resultado de la multiplicación es cero y el resultado de la IFes 1.

información relacionada