Estoy tratando de convertir una sola columna de números en excel para múltiples en función del contenido.

por ejemplo, la Tabla 1 contiene 1 columna que contiene 1 o más números entre el 1 y el 11 separados con una coma. Tabla 2 debe contener 11 columnas con un 1 o un 0 según los números que se encuentran en la Tabla 1.

Estoy utilizando la siguiente fórmula en la actualidad:

 =IF(ISNUMBER(SEARCH("1",A2)),1,0)

La siguiente columna contiene los siguientes:

 =IF(ISNUMBER(SEARCH("2",A2)),1,0)

Todo el camino a 11

 =IF(ISNUMBER(SEARCH("11",A2)),1,0)

El problema con esto, sin embargo, es que el código para encontrar referencias a la 1 también encontrar las referencias a 11. Es posible escribir una fórmula que puede decir la diferencia, así que si tengo el siguiente en la Tabla 1:

 2, 5, 11

No pone un 1 en la columna 1 de la Tabla 2?

Gracias.

InformationsquelleAutor Matthew Sims | 2013-09-24

4 Comentarios

  1. 5

    Uso, para la lista con sólo coma:

    =IF(ISNUMBER(SEARCH(",1,", ","&A2&",")),1,0)
    

    Si la lista está separado con , (coma+espacio):

    =IF(ISNUMBER(SEARCH(", 1,", ", "&A2&",")),1,0)
    
    • Aargh, yo estaba escribiendo esta respuesta! Si el número de espacios que antes/después de cada coma, no es consistente, entonces usted tendrá que hacer algún tipo de limpieza en el contenido de A2 por ejemplo, mediante el RECORTE y/o SUSTITUIR funciones.
    • Buen punto. Escribe tu propia respuesta abordar esta preocupación!
  2. 2

    Una versión de LS_dev la respuesta que va a hacer frente a 0…n espacios antes o después de cada coma es:

    =IF(ISNUMBER(SEARCH(", 1 ,",", "&TRIM(SUBSTITUTE(A2,","," , "))&" ,")),1,0)
    

    El SUSTITUTO se asegura de que siempre hay al menos un espacio antes y después de cada coma y el RECORTE reemplaza múltiples espacios con un espacio, por lo que el resultado de la función de ajuste tendrá exactamente un espacio antes y después de cada coma.

  3. 0

    Cómo sobre el uso de la SUBSTITUTE función para cambiar todos los «11» para el número Romano «XI» antes de hacer tu búsqueda:

    =IF(ISNUMBER(SEARCH("1",SUBSTITUTE(A2, "11", "XI"))),1,0)
    
    • ¿Y qué acerca de «10»? 😉
    • buen punto! Sería necesario agregar otro SUSTITUTO de la función, o, simplemente, utilizar LS_dev solución, que es mejor, creo.
  4. -1

    Si quieres eliminar el «11» del caso, pero todo esto se basa en los valores codificados, debe haber una mejor solución.

    =SI(ISNUMBER(BUSCAR(Y(«1»,NO(«11»)),A2)),1,0)

    • Esto no es una inteligente solución. AND() devuelve un valor booleano (verdadero o falso) y siempre devolverá un error en su caso.
    • Que no funciona. Busca A4 para el resultado de la E(«1»,NO(«11») el cual es #VALOR.
    • si usted tiene un celular con 2,5,11 (no me importa si va a ser tamaño A4 o A2 o A3455) devolverá 0 – acaba de probar. tal vez no he entendido la tarea. se comporta de la misma como la siguiente: =SI(ISNUMBER(BÚSQUEDA(«,11,», «,»&A2&»,»)),1,0) si puedo quitar la coma. Así podría disfrutar si usted me apunte para el caso de error por lo que puedo entender lo que estaba mal
    • por allí debe ser una solución más inteligente que yo quería decir que debe haber una solución mejor que la mía 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here