son sheets que las importrange hojas hoja google funcion formato definicion condicional caracteristicas calculo buscarv regex split google-spreadsheet formulas

regex - sheets - tratando de dividir dentro de arrayformula dentro de la hoja de cálculo de google



manual de hoja de calculo de google (2)

Estoy tratando de usar la función dividir dentro de la función ARRAYFORMULA dentro de una hoja de cálculo de google.

Quiero que " 1.2.3.4 " se convierta en " 1 ", " 2 ", " 3 ", " 4 "

Este es el código para un trazador de líneas (que trabaja solo para 1 fila):

=SPLIT(A2;".")

Esto es lo que quiero lograr (trabajar en múltiples filas al mismo tiempo):

//alone =SPLIT(A2:A;".") //or with ARRAYFORMULA =ARRAYFORMULA(SPLIT(A2:A;"."))

Como la función SPLIT no se puede usar dentro de la función ARRAYFORMULA, busqué una solución alternativa ( ARRAYFORMULA () no funciona con SPLIT () ):

=ARRAYFORMULA(IFERROR(REGEXEXTRACT("."&A2:A;"^"&REPT(".+[^.]+";COLUMN(OFFSET(A2;;;1;4))-1)&".+([^.]+)")))

Está casi funcionando, excepto por el hecho de que no se divide correctamente, aquí está el resultado que obtengo:

"1.2.3.4" se convierte en "4", "4", "4", "4"

Si puedo obtener la solución alternativa para que funcione correctamente o una mejor alternativa que sería más que increíble ...


puedes intentar esto:

=REGEXREPLACE(A1,"/.","/"",/""")


Tu expresión crea expresiones regulares como esta:

^.+[^.]+.+[^.]+.+[^.]+.+([^.]+)

La parte .+ Coincidirá con cualquier cosa, tanto como sea posible, empujando así al último ([^.]+) Hasta el final.

Si usa una expresión como esta en su lugar, debería funcionar mejor:

^/.[^.]*/.[^.]*/.[^.]*/.([^.]*)

Siempre contará cada uno . y nunca empujar demasiado al último grupo.

(Podría usar {3} lugar de repetir el subpatrón, pero eso cambiaría demasiado la fórmula original)

Aquí está la fórmula correspondiente:

=ARRAYFORMULA(IFERROR(REGEXEXTRACT("."&A2:A; "^"&REPT("/.[^.]*";COLUMN(OFFSET(A2;;;1;4))-1)&"/.([^.]*)")))