Excel: problema de ordenamiento SIREN y SIRET

Elcaprio -  
 Elcaprio -
Hola,

Tengo una tabla de 5000 entradas de SIRET y 5000 entradas de SIREN. Los SIREN son los mismos que los SIRET, tengo que hacer un acercamiento entre los dos para eliminar los SIREN (tengo datos que están en las líneas de SIREN que deben aparecer en las líneas de SIRET, de lo contrario simplemente eliminaría los SIREN).
Así que estoy en un aprieto porque copiar línea por línea 5000 SIREN para pegarlos en las líneas correspondientes de SIRET... ¡es muy lento!
ej:
tengo el SIRET 50040020030010 y el SIREN que corresponde: 500400200 y el objetivo es tener en una línea el SIRET y en la línea de abajo el SIREN.
Gracias por sus respuestas. Estoy bastante preocupado.

Configuración: Windows XP / Internet Explorer 8.0

12 respuestas

  1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    Hola,

    ¿Dónde se encuentran tus números de SIREN (nombre de la hoja y columna)? Idem para los SIRET...
    ¿Nombre de una hoja vacía en el libro?
    ¿No eres alérgico a las macros?

    Saludos cordiales,
    Franck P
    0
    1. Elcaprio
       
      La hoja se llama: AdresseClient Francia y la columna es la O para ambos.
      No entiendo nada de las macros xD
      0
    2. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      ¿La primera línea que contiene un SIREN (o SIRET) es la línea 1? ¿2? ¿5?
      ¿Hay celdas vacías en esta columna O?
      0
    3. Elcaprio
       
      Hay celdas vacías y mis SIRET están antes de los SIREN.
      De hecho, tengo una lista de clientes con los SIRET y a partir de un archivo proporcionado por el seguro, debo ingresar el monto del seguro para cada cliente, solo que el archivo identifica a los clientes por los SIREN.
      0
  2. PHILOU10120 Mensajes publicados 6463 Fecha de registro   Estado Colaborador Última intervención   835
     
    Hola

    Primera solución: añadir ceros detrás del SIREN para tener etiquetas que se puedan ordenar las 2 listas juntas

    la fórmula =CTXT($A$4"00000";0;VERDADERO)

    pon la celda en formato estándar y luego agrupa tus listas y ordena

    segunda solución

    extraer los 9 primeros caracteres en una columna la fórmula =IZQUIERDA(B5;9)
    y agrupa tus listas y busca los duplicados la fórmula para buscar duplicados

    =SI(NB.SI($C$4:$C$9;C4)>1;1;0)

    en mi ejemplo el SIREN está en la columna C
    0
  3. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    Bueno, a medida que la solicitud evoluciona, ¿puedes "arreglar" un archivo de ejemplo con nombres, siren y siret y otros datos ficticios como están actualmente en tu archivo, pero en las columnas correctas Y el resultado esperado? Puedes transferirnoslo a través de cjoint.com...
    --
    Atentamente,
    Franck P
    0
  4. Elcaprio
     
    Disculpe, puede que no haya sido muy clara en la exposición de mi solicitud.
    Tengo un archivo de clientes de la empresa que me da el monto del seguro otorgado y debo actualizarlo con los datos proporcionados ayer por la aseguradora.

    Eso me da esto: http://cjoint.com/?BFCkpcP4v9I

    Para el archivo de la aseguradora, solo he incluido las columnas que me sirven, hay un montón de información que no me sirve.

    Otro punto: una vez realizada la actualización, no conservaré la información del seguro.
    0
  5. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    En tu archivo de prueba, todos los números de SIRET forman un "bloque", sin celdas vacías entre cada número. ¿Es el caso de tu archivo? ¿O hay celdas vacías aquí y allá?
    --
    Atentamente,
    Franck P
    0
  6. Elcaprio
     
    Tengo 3700 entradas de 4900 que tienen un SIRET o SIREN, de hecho tengo entradas donde se muestra que el SIREN.
    Gracias por sus respuestas y por su paciencia.
    0
    1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      Gracias por tus respuestas y tu paciencia No hay ningún problema. La cuestión es que con una macro, es absolutamente necesario conocer la ubicación de cada elemento en tu archivo.

      Así que voy a resumir:
      en tu hoja llamada: DirecciónCliente Francia (sin espacio entre Dirección y Cliente, pero con un espacio entre Cliente y Francia)
      tienes una "base de datos" de A1 a Sx compuesta, en las 5000 primeras filas de tu base de clientes con n° de SIRET (14 cifras), luego en las 5000 filas siguientes tus datos con: en la columna A las mismas referencias de clientes de A2 a A5000 y en la columna O los SIREN (9 cifras)

      Deseas obtener, en una misma hoja (que llamaré resultado) la lista completa de tus datos con dos líneas contiguas por cliente, una que contenga el SIRET y otra que contenga el SIRENE
      ej:
      A2: 411001 O2: 50010050040000
      A3: 411001 A3: 500100500
      con por supuesto conservación de los datos de toda la línea...


      ¿Es eso correcto???
      0
    2. Elcaprio
       
      Eso está bien, pero con un pequeño error: la referencia del cliente del seguro no es la misma.

      El archivo del seguro no contiene ningún encabezado, así que para orientarse es un poco una m***
      Por lo tanto, solo recupero el SIREN y el monto del seguro.

      Mi objetivo final es tener para un SIRET dado que corresponde al SIREN, el monto del seguro en la columna S.

      Si los 9 primeros caracteres coinciden, entonces copiar "monto seguro" en la columna S.
      0
  7. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    Entonces, últimas preguntas:
    1- los 9 primeros dígitos de tu SIRET son todos diferentes, no como en tu archivo de ejemplo:
    50010050040000
    50010050050000
    50010050060000
    50010050070000
    50010050080000
    50010050090000
    50010050100000
    50010050110000
    50010050120000
    2- quieres que los números transmitidos por el seguro que se encuentran entre S5001 (aproximadamente) y S10000 se coloquen entre S2 y S5001 al lado de los buenos números SIRET.

    ¿OK?
    --
    Atentamente,
    Franck P
    0
    1. Elcaprio
       
      Sí, todos son diferentes. He puesto los mismos por cuestión de simplificación en el ejemplo.
      La única columna que me importa es la columna del monto de las aseguranzas.
      Hablaba de pegar la fila de la aseguradora debajo de la fila de la empresa solo para poner la información sobre el monto de la aseguradora manualmente, pero es cierto que si se puede automatizar, entonces vamos a hacerlo.
      Los siren los he puesto en la misma columna que los siret porque pensaba que, a través de un orden o filtros, podría resolver mi problema. Así que si se encuentran en otra columna, no es un problema.
      Profundizando en la reflexión, pensé en una fórmula del tipo:
      SI(IZQUIERDA(U2;9)=IZQUIERDA(O2;9);V2;"")
      En la columna U están los SIREN y en V los montos. Pero no funciona...
      0
  8. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    De hecho, he dejado de lado la macro innecesaria en este caso.
    Supongo que tus SIRET en la columna O de O2 a O5001, tus SIREN, en formato número en la columna O, de O5005 a O10006, los montos otorgados por el seguro en la columna S, de S5005 a S10006, quieres tus resultados por lo tanto en la columna S, de S2 a S50001.
    En S2 ingresa la fórmula:
    =SI(O2="";"";BUSCARV(CNUM(IZQUIERDA(O2;9));$O$25:$S$34;5;FALSO))

    Fórmula a "estirar" método de copia hasta S5001...

    --
    Cordialmente,
    Franck P
    0
  9. Elcaprio
     
    No entiendo el $O$25:$S34$ en la fórmula.
    Acabo de transcribir la fórmula en S2 y he puesto la información donde me dijiste, pero me aparece #N/A.
    0
    1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      Normal, ¡me equivoqué!:... Mis pruebas funcionaron en este rango. Hay que reemplazar por $O$5001:$S$10006...
      ¡Ooops!
      =SI(O2="";"";BUSCARV(CNUM(IZQUIERDA(O2;9));$O$5005:$S$10006;5;FALSO))
      0
  10. Elcaprio
     
    Gracias por tus respuestas.
    Desafortunadamente, no consigo aplicar tus fórmulas :(
    Para evitar tener que bajar hasta la línea 5005 la próxima vez que mi supervisor de prácticas utilice el archivo, he puesto los SIREN en la columna U y los montos en V, de esta manera ella solo tendrá que hacer un copiar/pegar de las columnas y ponerlas respectivame en U2 y V2.
    Entonces tengo esto ahora: http://cjoint.com/?BFCp2mCGpdn
    0
    1. PHILOU10120 Mensajes publicados 6463 Fecha de registro   Estado Colaborador Última intervención   835
       
      ¿Está usted seguro de que las líneas corresponderán

      por eso es que se debe usar la función buscarV
      0
    2. Elcaprio
       
      Justamente, las líneas no corresponderán.
      Por eso es necesario hacer una fórmula para que el monto se coloque en la línea correcta.
      0
  11. PHILOU10120 Mensajes publicados 6463 Fecha de registro   Estado Colaborador Última intervención   835
     
    EN T2 poner esta fórmula =CNUM(GAUCHE(O2;9))

    y en U2 poner esta

    =SI(ESTERREUR(RECHERCHEV(T2;$O$2:$S$34000;5;FAUX));"";RECHERCHEV(T2;$O$2:$S$34000;5;FAUX))
    0
  12. PHILOU10120 Mensajes publicados 6463 Fecha de registro   Estado Colaborador Última intervención   835
     
    Hola

    Pon esta fórmula en S2

    =SI(ESERROR(BUSCARV(CNUM(T2);$O$25:$S$34;5;FALSO));"";BUSCARV(CNUM(T2);$O$25:$S$34;5;FALSO))

    y esta en T2

    =IZQUIERDA($O25;9)

    y ajusta el rango O25:S34 a tu rango
    Luego arrastra hacia abajo.
    -3
    1. Elcaprio
       
      ¿Qué entiende por "ajustar el campo O25: S34 a su campo"?
      0
    2. PHILOU10120 Mensajes publicados 6463 Fecha de registro   Estado Colaborador Última intervención   835
       
      Debes poner la celda de la columna de referencia y la primera fila del área de búsqueda Oxxx y la última celda de la última columna Sxxx en el ejemplo.
      0
    3. Elcaprio
       
      Gracias por tus respuestas.
      Desafortunadamente, todavía no funciona.
      Aquí está la fórmula con el campo actualizado:
      =SI(ESERROR(BUSCARV(CNUM(T2);$O$2:$S$3400;5;FALSO));"";BUSCARV(CNUM(T2);$O$2:$S$34000;5;FALSO))
      0
    4. Elcaprio
       
      Acabo de darme cuenta de que no puedo cambiar el formato. Sin embargo, había puesto un formato personalizado: [>999999999]########_######;Estándar
      El problema puede venir de ahí.

      Al filtrar con la herramienta "filtrar", me doy cuenta de que en mi columna SIRET (por lo tanto O), hay cadenas de caracteres variables: la mayoría está compuesta por 14 dígitos (normal para un SIRET), pero tengo otros que tienen 9 dígitos. Tengo muchos que empiezan por 0, creo que eso no es normal y no debe ayudar.

      Creo que no los voy a molestar más tiempo, voy a ingresar manualmente :-/
      0
    5. PHILOU10120 Mensajes publicados 6463 Fecha de registro   Estado Colaborador Última intervención   835
       
      En la columna O utilizamos solo los 9 caracteres de la izquierda con la fórmula en la columna T T2 tomo =izquierda(O25;9) así que en la línea 25 y en la columna O tomo los 9 caracteres de la izquierda para la búsqueda vertical.
      0