Espacio entre las palabras

Marée basse 01h521.11m
"Marée (ok) basse(ok) 01h52(?)1.11m" (entre 01h52 et 1.11m)


18 respuestas

  1. Con una macro:
    1
    1. Sólo veo esto:

      en S5 -> martes 1
      en S6 -> Basse01H521.11M
      es todo

      0
  2. Moderador

    Hola,

    No practico las macros, pero con una fórmula básica se haría ="Marea "&S6&" "&S7&" "&S8


    0
    1. Hola

      ¡No está muy claro!

      ¿Puedes enviar un fragmento de archivo con los diferentes casos encontrados?

      Para enviar tu archivo, puedes usar

      Saludos

      0
      1. Moderador

        el archivo está en el enlace al final de la pregunta.

        0
    2. Buenas

      una pista

      =EXTRAE(S2;1;ENCONTRAR("h";S2)-3)&" "&EXTRAE(S2;ENCONTRAR("h";S2)-3;6)&" "&DERECHA(S2;6)
      0
      1. Hola Guy,

        Me parece que tienes Excel 365. Prueba:

        =LET(tbl;REDUCE("");T5:T208;LAMBDA(x;y;SI(GAUCHE(y;5)="marée";ASSEMB.V(x;FRACTIONNER.TEXTE(y;;" "));ASSEMB.V(x;y))));FILTRE(tbl;tbl<> "marée"))

        https://www.swisstransfer.com/dl/01a085a8-8653-724a-840d-70268184f303

        Daniel
        0
        1. Hola a todos

          Personalmente no entiendo, ya hay espacios en la columna T !?

          En el caso de que todo estuviera junto (Maréebasse01h521.11m)

          una fórmula simple tipo

          =IZQUIERDA(T6;5)&" "& EXTRAER(T6;6;5)& " " &EXTRAER(T6;11;5)& " "&DERECHA(T6;5)

          debería permitir insertar espacios

          Saludos

          Vía


          0
          1. Hola,

            según lo que entiendo, T se ha hecho a mano como ejemplo en lo que respecta a extraer y concatenar las "palabras" en S y que siempre tienen la misma estructura, 15 líneas por día.

            Por cierto, no es fantástico; ¿no sería mejor en otra hoja traer por línea solo las informaciones deseadas (fecha, con 4 líneas para las informaciones de las 4 mareas alta y baja del día)?

            0
          2. @brucine

            hola brucina

            que siempre tienen la misma estructura, 15 líneas por día.

            ¡ah, no! ver sábado 5, viernes 11 etc ...

            Saludos

            0
          3. @ccm81

            Hola,

            Sí, soy rubio/a, conté tonto 4 mareas al día cada 6 horas sin pensar que si la primera de la jornada civil empezaba después de cierta hora, la cuarta sería al día siguiente.

            0
        2. Hola,

          Habiendo trabajado ya en la cuestión, me parece que hay que partir de la columna T para obtener exactamente el resultado de la columna S. Eliminación de la palabra "Marée" y división por palabras para el resto, y sí, hay espacios.

          Daniel


          0
          1. El problema es que a veces tengo espacios y a veces no.

            0
        3. Entonces, con una macro :

          Sub test() Dim C As Range, L As Long Range("S5", Cells(Rows.Count, "S").End(xlUp)) = "" L = 4 For Each C In Range("T5", Cells(Rows.Count, "T").End(xlUp)) If Left(C, 5) <> "Marée" Then L = L + 1 Cells(L, "S") = C Else tabl = Split(C, " ") For i = 1 To UBound(tabl) L = L + 1 Cells(L, "S") = tabl(i) If i = 1 Then Cells(L, "S") = Application.Proper(Cells(L, "S")) Next i End If Next C End Sub 

          Daniel


          0
          1. En la columna "S"
            No se coloca espacio entre "la hora y la altura"
            Por lo tanto, faltan 2 líneas cada vez

            0
          2. @Guy72

            Guy, en tu cuaderno de pruebas, hay un espacio entre la hora y la altura y el resultado es correcto:

            ¿Qué quieres decir con "no hay espacio"? ¿Que no hay en el cuaderno entre la hora y la altura?

            Daniel

            0
        4. Q?. ¿Tienes fechas (en el sentido de Excel) en el archivo verdadero en lugar de "martes 1" del texto puro?

          Atentamente

          0
          1. Todo está en texto

            0
        5. Colaborador

          *

          Bonjour Guy.

          ¿Estas fórmulas te convienen?

          Atentamente.


          ¡Está bien, la jubilación! Especialmente en las Antillas...
          Raymond (INSA, AFPA)

          0
          1. No es del todo así

            En la columna "S"
            No aparece un espacio entre "la hora" y "la altura"
            Por lo tanto, cada vez me faltan 2 líneas

            0
          2. Colaborador
            @Guy72

            No entiendo !


            "No deja espacio entre la hora y la altura"

            En U6 mi fórmula ="Marea baja "&S7&" "&S8 sí pone un espacio ...
            Te sospecho que olvidaste el &" " !


            "Entonces, le faltan 2 líneas cada vez" !

            ¿Des qué deberían contener esas líneas?


            Creo que necesitas mi archivo ...
             

            0
          3. @Raymond PENTIER

            No, en tu archivo, mis datos deben estar en la columna T
            Lo que deseo obtener está en la columna S

            0
        6. Aquí está la traducción al español, manteniendo las etiquetas HTML y la estructura:

          Este es el procedimiento que sigo :
          1) Voy al sitio:
          2) Reduzco al mínimo el ancho de la página a la derecha de la pantalla y selecciono desde el primer día hasta el final.

          3) Copio todo a Excel 365 en la celda "Y5".
          4) Para poder obtener lo que quiero, es necesario separar por un espacio entre las horas y la altura del agua.
          5) Luego copio (a mano) trozo por trozo desde la celda "S5".
          6) Lo que me da este resultado en las celdas de otra hoja :
           

          0
          1. No estoy seguro de haber entendido SIN espacio, usa la fórmula:

             =LET(prv;GAUCHE(T5:T208;17)&" "&STXT(T5:T208;18;99);tbl;REDUCE("";prv;LAMBDA(x;y;SI(GAUCHE(y;5)="marée";ASSEMB.V(x;FRACTIONNER.TEXTE(y;;" "));ASSEMB.V(x;y))));res;FILTRE(tbl;tbl<>"marée");res)

            Daniel 


            0
            1. ¿Dónde pongo la fórmula?
              En S5, tengo esto:
              #NOMBRE?

              0
          2. Hola a todos,

            Guy, si te aparece "#NOM" es porque tu versión no es Excel 365. Eso demuestra que no has probado la fórmula del mensaje #5.

            Prueba la macro:

            Sub test() Dim C As Range, L As Long Range("S5", Cells(Rows.Count, "S").End(xlUp)) = "" L = 4 For Each C In Range("T5", Cells(Rows.Count, "T").End(xlUp)) If Left(C, 5) <> "Marée" Then L = L + 1 Cells(L, "S") = C Else tabl = Split(C, " ") L = L + 1 Cells(L, "S") = Application.Proper(tabl(1)) L = L + 1 Cells(L, "S") = Left(tabl(2), 5) L = L + 1 Cells(L, "S") = Mid(C, 18, 99) End If Next C End Sub 

            Daniel


            0
            1. Hola,

              Mi versión aparentemente es: Excel 2019
              No puedo abrir el archivo.
              Si pruebo la macro, en la columna S, obtengo simplemente la copia de las dos primeras líneas:
              martes 1
              Basse01H521.11M

              Apertura


              0
          3. Esto es lo que obtengo al ejecutar la macro:

            Comparte el libro de trabajo con el que pruebas. No obtendremos otro resultado.

            Daniel


            0
            1. Hola

              Aquí está lo que se puede hacer fácilmente con fórmulas en un Excel anterior a 365

              A partir de la extracción del sitio en una hoja, se trasladan los datos útiles a la otra hoja según los días (fórmula para obtener la lista de días idéntica a la del sitio en la columna B, para octubre basta con cambiar el 9 por 10 en la fórmula, etc.)

              Cordialmente

              Vía


              0
              1. Lo que obtengo del sitio es esto:

                0
              2. Colaborador
                @Guy72

                ¡Sí! Tómate la molestia de hacer clic en el gran botón rojo "Descargar", después de desplazarte hacia abajo...

                0
            2. Aquí:

              Sub test() Dim C As Range, L As Long Range("S5", Cells(Rows.Count, "S").End(xlUp)) = "" L = 4 For Each C In Range("T5", Cells(Rows.Count, "T").End(xlUp)) If Left(C, 5) <> "Marée" Then L = L + 1 Cells(L, "S") = C Else L = L + 1 Cells(L, "S") = Application.Proper(Mid(C, 7, 5)) L = L + 1 Cells(L, "S") = Mid(C, 12, 5) L = L + 1 Cells(L, "S") = Mid(C, 17, 99) End If Next C End Sub 

              Daniel 


              0