🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel の UPPER・LOWER・PROPER — データを壊さずに大文字小文字を変える

|

Excel の UPPER・LOWER・PROPER — データを壊さずに大文字小文字を変える

要点 — テキストの大文字小文字を変える、それだけの 3 つの関数です。 UPPER(文字列)ALL CAPSLOWER(文字列)all lowercasePROPER(文字列)Title Case Each Word。使う前に知っておくべきことは これです。Excel の = 比較や照合はそもそも大文字小文字を区別しません。 なので、テキストを一致させるためだけにこれらが必要になることは、ほぼ ありません。大文字小文字が効いてくるのは表示と、区別する側のシステム (SQL のキーや別アプリなど)へのエクスポートです。そして PROPER には 鋭い刃があります。すべての単語の先頭を大文字にするため、McDonaldMcdonald に変えてしまうのです。

=UPPER("north-east")     ' -> "NORTH-EAST"
=LOWER("[email protected]")   ' -> "[email protected]"
=PROPER("mcdonald's farm")   ' -> "Mcdonald'S Farm"   (壊れているのに注目!)

これらは Excel で最もシンプルなテキスト関数(引数 1 つ、出力も明快)で、だからこそ 誤用されます。難しいのはどう動くかではなく、そもそも大文字小文字が自分の問題 なのかを見きわめること、そして PROPER に手を伸ばすと名前を静かに壊してしまう 場面を知っておくことです。

この記事で学べること

  • テキストを比較するのに UPPERLOWER がめったに要らない理由(Excel は区別しない)
  • 大文字小文字が本当に効いてくる場面: 表示、エクスポート、EXACT
  • PROPER の罠: McDonaldiPhoneO'BrienIBM を壊す
  • この 3 つはテキストをクリーニングしない — TRIM と組み合わせる
  • 判断のポイント: 機械向けに正規化する。その場で「見栄えを整える」のはやめる

考え方: 大文字小文字はレンズであって、格納された意味ではない

ほとんどの誤用を防ぐ、とらえ直しがこれです。Excel では、テキストの大文字小文字は 表示上の選択であって、値の同一性の一部ではありません"Apple""APPLE""apple" は 3 つの異なる文字列ですが、Excel の日常的な比較はこれらを等しいものと して扱います。

="Apple"="APPLE"                 ' -> TRUE  (大文字小文字を区別しない)
=VLOOKUP("apple", A:B, 2, FALSE) ' "Apple" にちゃんと一致する
=COUNTIF(A:A, "north")           ' "North"・"NORTH"・"north" を同じものとして数える

つまり UPPERLOWERPROPER は照合ツールではありません。これらは出力する ときに適用するレンズです。レポートの読み味を統一したり、大文字小文字を区別する システムにデータを渡したりするためのものです。この枠組みを持てば、壊れてもいない 比較を「直そう」としてこれらに手を伸ばすのをやめられます。

大文字小文字が本当に効いてくる場面

テキストの大文字小文字を変える本当の理由は 3 つあります。何にでも UPPER を やみくもに付けないよう、はっきり区別しておく価値があります。

  1. 表示の統一。 NEW YORKnew yorkNew York が混在する列は、完成した レポートでは 1 つの表記に読めるべきです。PROPERUPPER がそれを実現します。
  2. 大文字小文字を区別する送り先へのエクスポート。 SQL の識別子、ファイルシステム、 一部の API、他のアプリは、大文字小文字を区別します。送る前に LOWER(または UPPER)で正規化しておけば、[email protected][email protected] が下流で 2 つの別々の キーにならずに済みます。
  3. Excel の中での大文字小文字を区別する照合 — これには = ではなく EXACT が 必要です。=EXACT(A2, "USD") は、ちょうど "USD" のときだけ TRUE になります。 idID を本気で区別したいときは EXACT が道具です。UPPERLOWER は、 通常の比較の前に大文字小文字を要素から取り除くための手段です。

これらのどれにも当てはまらないなら、そもそも大文字小文字を変える必要はおそらく ありません。

噛みつく鉄則: PROPER はすべての単語を大文字にする

PROPER は名前や住所の列をきれいにするのに完璧に見えますし、単純な小文字入力なら 実際そうです。ただし融通の利かないルールに従います。文字以外の文字の直後を大文字に し、それ以外はすべて小文字にするというもので、このルールが内側に大文字を含むものや 変わった記号を持つものをことごとく壊します。

=PROPER("mcdonald")    ' -> "Mcdonald"   (本来は McDonald)
=PROPER("iPhone 15")   ' -> "Iphone 15"  (ブランド名が台無し)
=PROPER("o'brien")     ' -> "O'Brien"    ... でも "d'angelo" -> "D'Angelo" (まあ許容範囲)
=PROPER("IBM")         ' -> "Ibm"        (頭字語が破壊される)
=PROPER("john mcbride-smith")  ' -> "John Mcbride-Smith"

失敗の仕方は一貫しています。正しい大文字小文字が「先頭を大文字、あとは小文字」で ない単語はすべて誤って出力され、しかも PROPER には例外をホワイトリスト登録する 手段がありません。だからこそ PROPER最初の一手であって、仕上げではないの です。本当に小文字だけの自由記述の列なら時間を節約してくれますが、現実の名前・ ブランド名・頭字語に対しては、あとで探し回るはめになるエラーを持ち込みます。

よくある修正には、SUBSTITUTE を上に重ねます (=SUBSTITUTE(PROPER(A2), "Mcdonald", "McDonald"))。あるいは Excel 365 なら、 小さな例外リストを持つ LAMBDA を使います。ただし正直な判断はこうです。大文字小文字 の正確さが重要なら(顧客に見せる名前や法的文書など)、PROPER の出力を信用せず レビューしましょう。

これらはクリーニングしない — TRIM と組み合わせる

見落としがちな点: UPPERLOWERPROPER は大文字小文字を変えるだけで、 それ以外は何もしません。取り込んだテキストが抱える末尾のスペースや CHAR(160) の厄介者は取り除きません。列が汚れていてかつ大文字小文字がばらついているなら、 先にクリーニングしてから両方をやります。

=PROPER(TRIM(A2))
=LOWER(TRIM(CLEAN(A2)))

汚れたデータの上に大文字小文字変換をかけても、大文字小文字がそろった汚いデータが 得られるだけです。クリーニングの片割れについては TRIM と CLEAN を参照してください。

判断のポイント

その大文字小文字変換は何のためかを問いましょう。機械向け(キー、エクスポート、 重複排除)→ 大文字小文字を変数から取り除くために UPPERLOWER を、作業列に 適用して値として貼り付けます。人が見る表示向け→ さっと一手なら PROPER ですが、 名前やブランド名が絡むならレビューしてくださいMcdonald必ず生むからです。 比較向け→ これらはほぼ確実に不要です。Excel はすでに大文字小文字を無視しますし、 区別させたいなら EXACT の出番です。やってはいけない唯一のことは、照合が大文字 小文字を区別するという迷信から、数式のあちこちに UPPER をばらまくことです。区別 しません。

ExcelMaster の活用

「これらの名前を Title Case にしつつ、McDonald・iPhone・頭字語はそのまま保って」は、 まさに PROPER 単独では扱えない依頼です。ExcelMaster は本物を組み立てます。 PROPER を土台に、あなたのデータにあるブランド名や名前向けの SUBSTITUTELAMBDA 例外リストを添えるので、IphoneIbm の破壊なしに きれいな表示用の大文字小文字が得られます。実際に望む表記ルールを伝えれば、現実の 名前に触れても壊れないバージョンを書き上げます。

よくある質問

Excel でテキストを比較するのに UPPER や LOWER は必要ですか?

いいえ。Excel の = 演算子や、VLOOKUPXLOOKUPCOUNTIF といった関数は 大文字小文字を区別しません。なので "Apple"="APPLE" はすでに TRUE です。 UPPERLOWER は、テキストを統一して表示するときや、大文字小文字を区別する システムへエクスポートするときだけ使います。大文字小文字を区別する照合には EXACT を使います。

なぜ PROPER は間違った文字を大文字にするのですか?

PROPER は文字以外の文字の直後を大文字にし、残りを小文字にするため、McDonaldiPhoneIBM が内側に大文字を持つことを知りようがありません。結果として McdonaldIphoneIbm を返します。PROPER は最初の一手として扱い、例外は SUBSTITUTE で修正しましょう。

文の先頭の 1 文字だけを大文字にするには?

PROPER はすべての単語を大文字にするので、文頭のみ大文字にする(sentence case) 用途には向きません。=UPPER(LEFT(A2,1)) & LOWER(MID(A2,2,LEN(A2))) を使えば、 先頭の 1 文字だけ大文字にして残りを小文字にできます。

PROPER で McDonald のような名前を正しく保つには?

上に修正を重ねます。=SUBSTITUTE(PROPER(A2), "Mcdonald", "McDonald") のように、 例外 1 つにつき SUBSTITUTE を 1 つ。例外が多い場合は、Excel 365 で置換を手作業で 入れ子にするのではなく、ロジックを参照リスト付きの LAMBDA で包みます。

UPPER や LOWER はスペースを削除したりテキストをクリーニングしたりしますか?

いいえ。大文字小文字を変えるだけです。末尾のスペース・CHAR(160)・制御文字は そのまま残ります。先に TRIMCLEAN で クリーニングします。例: =LOWER(TRIM(A2))

Tested in

検証環境: Excel 365 (Windows 11) — 最終確認 2026-07-06。

関連ガイド: Excel TRIM と CLEAN · Excel LEN · Excel SUBSTITUTE と REPLACE · Excel TEXT 関数