También uso un Excel con una configuración regional francesa, y a menudo enfrento este problema con los archivos CSV. Como explicaron otros, los números franceses usan un coma como separador decimal, y 123.45
Excel interpreta un número como un texto.
La forma más rápida de sortear esto es reemplazarlo .
por ,
. Puede hacerlo rápidamente con Buscar / Reemplazar, como lo sugiere David.
Para aquellos que enfrentan este problema con bastante frecuencia, puede usar este código ( adaptado de esta respuesta ), guardarlo en su libro PERSONAL y asignarlo a un botón en la cinta:
Sub Comas2Dots()
Application.ScreenUpdating = False
If (MsgBox("Do you want to replace comas by dots?", vbOKCancel) = vbOK) Then
Const sTEMPCOMMA = "|comma|"
Const sTEMPDOT = "|dot|"
Const sCOMMA = ","
Const sDOT = "."
If TypeName(Selection) = "Range" Then
With Selection
.Replace sCOMMA, sTEMPCOMMA, xlPart
.Replace sDOT, sTEMPDOT, xlPart
.Replace sTEMPCOMMA, sDOT, xlPart
.Replace sTEMPDOT, sCOMMA, xlPart
End With
End If
End If
Application.ScreenUpdating = True
End Sub
¡Espero que ayude a las personas que experimentan este problema innecesario!
Documentación adicional
- Cómo asignar macros a la cinta
- Copie sus macros a un Libro de macros personal
,
es el separador decimal, no.
. Entonces los valores como123.45
son textos, y no se pueden resumir. Multiplicar por 1, como sugiere, tampoco funcionaría en este caso, porque esta no es una situación de "números almacenados como texto", sino más bien una situación de "texto almacenado como texto". Si reemplaza los puntos con comas, Excel convertirá los textos en números reales (esto solo se aplica a la configuración regional en francés).