請求書レポートをポルトガル語 (ブラジル) から英語に翻訳したいと思います。請求書レポートは月ごとに正確で、自動化されたシートです。
契約は 1 月に開始される場合もありますが、通常は他の 11 か月にも開始されます。
最初の月を 4 月に設定すると、右側の他の 11 月 (5 月、6 月、7 月...) は 3 月まで増加し続けます。
次のような式を作成しました:
=PROPER(TEXT((B1&1)+31;"mmmm"))
2か月目から12か月目まで。
しかし、私はこれをポルトガル語(ブラジル)で使用しており、非常にうまく機能しています。しかし、英語の月を入力すると、実際には機能しません。
試してみました[$-409]
が、思った通りには動作しませんでした。
これを使用すると、Janeiro と February のように表示され、次の月ではエラーになります。
1月を書いて、2月、3月などを受け取りたいです。
あなたのマシンでも動作するかもしれませんので、他の言語でも試してみてください。
注: VBA は機能しないため、顧客に送信する必要があります。
答え1
あなたが望むことは、あなたが望む方法では不可能だと思います。
あなたのコメントによると、このドキュメントは、これがオプションではない他のコンピュータでも使用できるため、システムロケール設定を変更することはできません。
私が考えられる唯一の解決策はVBaを使うことです
この例では、ワークシート全体を調べて、同等の単語を置き換えています。
まず、ファイルのバックアップを取ってください。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
残りの月を追加する必要がありますが、それは簡単なはずです。そして、それらがどのように「翻訳」されるかを考えます。
こちらもご覧くださいMS Office に VBA を追加するにはどうすればよいですか?
次のようなcase文を使うこともできます。
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"
つまり、実行するたびに言語を切り替えることになります
答え2
すでに修正しました。遅くなって申し訳ありません。
私は使用して修正しました
=PROPER(TEXT((DATE(2014,B3,1)),"mmmm"))
ここで、「B3」はピボット テーブルから取得された、1 回だけ変更される月番号です。
翌月は「翌月」ではなく +1 になります。
=IF(B3<12,B3+1,1)
IF は、前の月がすでに 12 の場合に 1 から再開するために使用されます。「if がなければ、13 を超えても増え続けます」