Contamos con el resultado a esta contrariedad, al menos eso deseamos. Si sigues con alguna pregunta dínoslo, que sin dudarlo te ayudaremos
Solución:
Aquí está la solución clásica de una fórmula:
=TRIM(MID(SUBSTITUTE(A$1,".",REPT(" ",999)),(ROW()-1)*999-998,999))
"."
– es el delimitador.(ROW()-1)
– proporciona el elemento n en el texto delimitado.
Más información en EXCELFOX
Aquí hay cuatro fórmulas que necesita
A2:=LEFT(A1,FIND(".",A1)-1)
A3:=MID(A1,FIND(".",A1)+1,FIND(".",A1,FIND(".",A1)+1)-FIND(".",A1)-1)
A4:=MID(A1,FIND(".",A1,FIND(".",A1)+1)+1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)-(FIND(".",A1,FIND(".",A1)+1)+1))
A5:=MID(A1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)+1,LEN(A1)-FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1))
La función ENCONTRAR tiene un tercer argumento llamado comienzo. Entonces, para encontrar el segundo punto decimal, ENCUENTRAS un punto decimal pero comienzas donde el primer punto decimal es más uno. seria asi
=FIND(".",A1,4)
Empiezas en 4 porque tu primer punto decimal está en la posición 3. Pero no lo sabes, así que tienes que calcular el ‘4’.
=FIND(".",A1,FIND(".",A1)+1)
Ahora, para obtener 4, buscamos el primer decimal y sumamos 1. Eso no es tan malo para encontrar el segundo. Pero para encontrar el tercero, tienes que ir a otro nivel. Y el cuarto es otro nivel. Es difícil de leer y difícil de mantener.
Para hacerlo un poco más fácil, puede usar columnas auxiliares.
A2 =LEFT(A1,C2-1)
C2 =FIND(".",A1)
A3 =MID(A1,C2+1,C3-C2-1)
C3 =FIND(".",A1,C2+1)
A4 =MID(A1,C3+1,C4-C3-1)
C4 =FIND(".",A1,C3+1)
A5 =MID(A1,C4+1,LEN(A1)-C4-1)
De esa manera, está haciendo sus FIND en C y refiriéndose a esos números en A.
Si no le gustan las columnas auxiliares, y a mí tampoco, podría escribir un UDF como
Public Function FINDi(find_text As String, within_text As String, Optional instance As Long) As Long
Dim lReturn As Long
Dim i As Long
Const lFINDFIRST As Long = 0
If instance = lFINDFIRST Then
lReturn = InStr(1, within_text, find_text)
ElseIf instance < lFINDFIRST Then 'negative numbers finds last
lReturn = InStrRev(within_text, find_text)
Else
lReturn = 0
For i = 1 To instance
lReturn = InStr(lReturn + 1, within_text, find_text)
Next i
End If
FINDi = lReturn
End Function
y eso te da fórmulas como esta
A2 =LEFT(A1,findi(".",A1)-1)
A3 =MID(A1,findi(".",A1)+1,findi(".",A1,2)-findi(".",A1,1)-1)
A4 =MID(A1,findi(".",A1,2)+1,findi(".",A1,3)-findi(".",A1,2)-1)
A5 =MID(A1,findi(".",A1,3)+1,LEN(A1)-findi(".",A1,3)-1)
No tan limpio como la columna de ayuda, pero autónomo y definitivamente mejor que el FIND incorporado.
Otro UDF que podría escribir duplica lo que hace la función de división de VBA.
Public Function SplitString(ByVal sInput As String, ByVal sDelim As String, ByVal lWhich As Long) As String
SplitString = Split(sInput, sDelim)(lWhich - 1)
End Function
Esa fórmula parece
A2 =SplitString($A$1,".",ROW()-1)
A3 =SplitString($A$1,".",ROW()-1)
A4 =SplitString($A$1,".",ROW()-1)
A5 =SplitString($A$1,".",ROW()-1)
Aquí tienes las reseñas y calificaciones
Más adelante puedes encontrar las notas de otros programadores, tú de igual manera tienes la habilidad mostrar el tuyo si te apetece.