Me gustaría traducir un informe de facturación del portugués (Brasil) al inglés. Tiene una precisión de meses y es una hoja automatizada.
Un contrato puede comenzar en enero, pero normalmente también comienza en los otros 11 meses.
Si pongo el primer mes como abril, los otros once de la derecha siguen creciendo (mayo, junio, julio...) hasta marzo.
He creado esta fórmula:
=PROPER(TEXT((B1&1)+31;"mmmm"))
del segundo al duodécimo mes.
Sin embargo, lo uso en portugués (Brasil) y funciona muy bien. Pero cuando llegas a un mes en inglés, realmente no funciona.
Lo he intentado [$-409]
y no funciona como quiero.
Si uso esto, dice Janeiro y febrero, y error en los próximos meses.
Quiero anotar enero y recibir febrero, marzo y así sucesivamente.
Puede que funcione en su máquina, pruébelo también con otros idiomas, por favor.
Nota: VBA no funcionará, necesito enviárselo a mis clientes.
Respuesta1
Creo que lo que quieres no es posible de la manera que quieres.
Según sus comentarios, no puede cambiar la configuración regional del sistema porque este documento se puede usar en otras computadoras donde esto no es una opción.
La única solución que se me ocurre es usar VBa
En este ejemplo, estoy revisando toda la hoja de trabajo y reemplazando palabras por el equivalente.
En primer lugar, haga una copia de seguridad del archivo. No puedes deshacer VBa
Sub ChangeTheNameMeHearties()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange
Dim s As String
Select Case LCase(cell.Value)
Case cell.Value = "january"
cell.Value = "Janeiro"
Case cell.Value = "february"
cell.Value = "Fevereiro"
End Select
Next
End Sub
Tendrá que agregar el resto de los meses, pero debe ser sencillo y luego pensar en cómo se "traducen".
Ver también¿Cómo agrego VBA en MS Office?
Incluso podrías usar una declaración de caso como
Case cell.Value = "january"
cell.Value = "Janeiro"
Case cell.Value = "janeiro"
cell.Value = "January"
Case cell.Value = "february"
cell.Value = "Fevereiro"
Case cell.Value = "fevereiro"
cell.Value = "February"
Esto significará que, cada vez que lo ejecutes, alternarás entre los idiomas.
Respuesta2
Ya lo arreglé, perdón por la tardanza.
Lo arreglé usando
=PROPER(TEXT((DATE(2014,B3,1)),"mmmm"))
donde "B3" es el número del mes, que cambia solo una vez, recuperado de la tabla dinámica.
El mes siguiente recibe +1, en lugar de "mes siguiente".
=IF(B3<12,B3+1,1)
El IF se utiliza para reiniciar desde 1 si el mes anterior ya es 12. "Sin if, seguiría subiendo más allá de 13"