Excel・Google スプレッドシート・Word で英字の大文字小文字を変換する方法

Excel と Google スプレッドシートでは、大文字小文字の変換に 3 つの関数を使います。=UPPER(A2)、=LOWER(A2)、=PROPER(A2) を作業用の列に入力し、あとで値として貼り付け直します。Microsoft Word では、テキストを選択して Shift+F3 を押すと、lowercase、UPPERCASE、Capitalize Each Word の順に切り替わります。Sentence case(文の先頭だけ大文字)や tOGGLE cASE まで使いたいときは、Home タブの Change Case ボタンを使います。
たいていの作業はこれで済みます。このガイドの残りでは、うまくいかないケースを取り上げます。まずアポストロフィに奇妙な動作をする PROPER、そして同じ整形を毎週行う必要があるときのもっと良い方法です。
Excel と Google スプレッドシートの UPPER、LOWER、PROPER
3 つの関数は、どちらのプログラムでも同じように動作します。それぞれテキストを 1 つ受け取り、変換したコピーを返します。元のセルは変更されません。一般的な手順は次のとおりです。
- データの隣に空の列を挿入します。
- 1 行目に
=PROPER(A2)(またはUPPER、LOWER)を入力し、下までコピーします。 - 新しい列をコピーし、Paste Special(形式を選択して貼り付け)→ Values(値)で元の列に貼り付けます。数式は消え、テキストだけが残ります。
- 作業用の列を削除します。
Microsoft 365 の Excel なら、下までコピーする手間は不要です。=PROPER(A2:A500) の結果は、列の下方向に自動的に展開されます(スピル)。Google スプレッドシートでは、範囲を ARRAYFORMULA で囲みます。=ARRAYFORMULA(PROPER(A2:A)) です。
どちらのプログラムにも、「文の先頭大文字」(センテンスケース)にする関数はありません。次の数式は、セルの最初の文字を大文字にし、残りをすべて小文字にします。
=UPPER(LEFT(A2,1)) & LOWER(MID(A2,2,LEN(A2)))セル全体を 1 つの文として扱うので、製品名や短いラベルに向いています。複数の文からなる段落では、2 文目以降の文頭も小文字にしてしまいます。
PROPER の癖:O'Neil、Don'T、3Rd
PROPER の動作は、Microsoft 自身の説明を読めばすべて説明がつきます。「capitalizes the first letter in a text string and any other letters in text that follow any character other than a letter」(テキスト文字列の最初の文字と、文字以外の文字に続くそのほかの文字を大文字にする)とあり、残りは小文字にします(Microsoft の PROPER 関数のページを参照)。アポストロフィ、数字、ハイフンはいずれも文字以外の文字なので、結果は次のようになります。
| 入力 | PROPER の結果 | 理由 |
|---|---|---|
o'neil | O'Neil | アポストロフィの後の文字。ここではたまたま正しい結果になる |
don't stop | Don'T Stop | 同じルールだが、今度は誤り |
3rd street | 3Rd Street | 数字の後の文字(Microsoft の例:76BudGet は 76Budget になる) |
2-way street | 2-Way Street | ハイフンの後の文字 |
mcdonald | Mcdonald | Mc や Mac の特別なルールはない |
IBM SALES | Ibm Sales | 最初の文字以外はすべて小文字になる |
lord of the rings | Lord Of The Rings | 短い単語も含め、すべての単語が対象になる |
Google スプレッドシートの PROPER にも同じアポストロフィの癖があり、「don't」が「Don'T」になります。Google のヘルプページは、「mcLeod」が「Mcleod」になることも警告しています。
アポストロフィの問題を直す
特に被害が多いのは、's や 't で終わる所有格と短縮形です。次の数式は、O'Neil や O'Sullivan はそのままにして、これらを直します。
=TRIM(SUBSTITUTE(SUBSTITUTE(PROPER(A2&" "), "'S ", "'s "), "'T ", "'t "))コツは、テキストの末尾に余分なスペースを 1 つ付け足すことです。こうすると、"'S " がセルのいちばん最後にある所有格にも一致し、TRIM がそのスペースをもう一度取り除きます。「don't stop ada's car」は「Don't Stop Ada's Car」になります。データに 're、'll、've、'd、'm があるなら、同じ組をさらに追加してください。テキストが Word や Web 由来なら、カーリーアポストロフィ(’)版も追加します。
McDonald や IBM は、どんな数式でも直せません。必要な情報がテキストの中にないからです。名前の列なら、PROPER をかけたあと、並べ替えやフィルターで「Mc」「Mac」や既知の略語を探し出し、手で直します。
変換する前にテキストを整える
ケース変換は、入力がきれいなほどうまくいきます。Excel の TRIM は、両端のスペースを取り除き、単語の間の連続したスペースを 1 つにしますが、Microsoft が注記しているとおり、扱うのは通常のスペース文字だけです。Web ページからコピーしたテキストによく含まれるノーブレークスペースは対象外です。先にそれを置き換えておきます。
=PROPER(TRIM(SUBSTITUTE(A2, UNICHAR(160), " ")))テキストデータを正規化する方法のガイドでは、見えない文字、アクセント、重複排除まで、さらに踏み込んで説明しています。
Flash Fill:例を示して変換する
デスクトップ版 Excel(2013 以降)では、Flash Fill(フラッシュ フィル)が、例から大文字小文字の変更を学習してくれます。ALICE SMITH の隣に Alice Smith と入力し、1 つ下のセルに移動して Ctrl+E を押します(または Data → Flash Fill を選びます)。Excel が、同じパターンで列の残りを埋めてくれます。
知っておきたいことが 2 つあります。Flash Fill が書き込むのは数式ではなく値なので、元のデータが変わっても結果は更新されません。また、例からパターンを推測しているだけなので、結果、特に最初の行と見た目が違う行には目を通してください。推測が外れたら、例をもう 1 つ入力して、もう一度 Ctrl+E を押します。
繰り返すクリーンアップは Power Query で
毎週同じエクスポートが届くなら、変換を Power Query で行えば、更新のたびに自動で繰り返されます。データを選択して Data → From Table/Range を選び、Power Query エディターで列を選んでから、Transform → Format → lowercase、UPPERCASE、Capitalize Each Word のいずれかを選びます。Add Column → Format にある同じコマンドを使えば、元の列を残したまま、結果を新しい列に入れられます。
メニューの裏側にあるのは、M 関数の Text.Lower、Text.Upper、Text.Proper です。Microsoft のドキュメントでは、Table.TransformColumns と組み合わせた例が示されています。
= Table.TransformColumns(Source, {"CUSTOMER", Text.Proper})Excel ユーザーがつまずきやすい Power Query の細かい点が 2 つあります。Format → Trim コマンドが取り除くのはテキストの両端の空白だけで、ワークシートの TRIM と違って、途中の連続したスペースには手を付けません。また、M は大文字小文字を区別するので、結合やグループ化では、先に変換するか Comparer.OrdinalIgnoreCase で比較しない限り、「Redmond」と「REDMOND」は別の値になります。
Microsoft Word:Shift+F3 と Change Case
Word は実際の文字を書き換えるので、作業用の列は要りません。テキストを選択して Shift+F3(多くの Mac キーボードでは Fn+Shift+F3)を押すと、lowercase、UPPERCASE、Capitalize Each Word の順に切り替わります。Home タブの Change Case ボタン(「Aa」と表示されています)には 5 つの選択肢があります。Sentence case.(文の先頭だけ大文字)、lowercase(すべて小文字)、UPPERCASE(すべて大文字)、Capitalize Each Word(各単語の頭文字を大文字)、tOGGLE cASE(大小文字の反転)です。最後のものは、Caps Lock をオンにしたまま段落を入力してしまったときに便利です。
これを Ctrl+Shift+A と混同しないでください。こちらは All Caps というフォント効果を適用するものです。この方法で書式設定されたテキストは大文字に見えますが、その下の文字自体は変わらないので、プレーンテキストとしてほかの場所に貼り付けると、元の大文字小文字に戻ります。大文字を Web フォームなど、プレーンテキストしか受け付けない場所まで持っていきたいなら、Change Case を使ってください。Ctrl+Shift+K は、スモールキャピタルに対する同等の効果です。
Google ドキュメントにも同じ機能が Format → Text → Capitalization にあり、lowercase、UPPERCASE、Title Case を選べます。
どの方法を使うか
- 1 回限りの列:PROPER、UPPER、LOWER の作業用列を作り、値として貼り付け直します。数式を入力するより見本を示したいなら Flash Fill です。
- 毎週同じインポート:Power Query。
- 文書内の文章:Word の Change Case または Shift+F3。
- 英語で本物のタイトルケースが必要なタイトル:PROPER は「of」や「the」まで大文字にします。代わりに、その列を当サイトの文字ケース変換ツールに貼り付けてください。「タイトル形式」(タイトルケース)は短い単語を小文字のまま残し、行単位で処理するので、行は行のままです(名前までは判別できません。「o'neil」は「O'neil」になります)。タイトルにどのスタイルが必要か迷うなら、タイトルケースとセンテンスケースの違いのガイドで比較しています。


