UPPER・LOWER・PROPER関数|大文字・小文字を変換
UPPER関数、LOWER関数、PROPER関数は、英字の大文字・小文字を変換する関数です。メールアドレスの小文字統一、商品コードの大文字統一、外国人氏名の先頭大文字化など、データの表記を揃える場面で役立ちます。この記事では、3つの関数の使い方と実務での活用パターンを解説します。
各関数の基本構文
UPPER関数(すべて大文字に変換)
=UPPER(文字列)
LOWER関数(すべて小文字に変換)
=LOWER(文字列)
PROPER関数(各単語の先頭を大文字に変換)
=PROPER(文字列)
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 文字列 | 変換対象の文字列やセル参照 | 必須 |
3つの関数の比較
| 元の文字列 | UPPER | LOWER | PROPER |
|---|---|---|---|
| tokyo japan | TOKYO JAPAN | tokyo japan | Tokyo Japan |
| HELLO WORLD | HELLO WORLD | hello world | Hello World |
| tanaka taro | TANAKA TARO | tanaka taro | Tanaka Taro |
| iPhone Pro | IPHONE PRO | iphone pro | Iphone Pro |
| abc-def | ABC-DEF | abc-def | Abc-Def |
PROPER関数の動作仕様
PROPER関数は、スペースやハイフンなどの区切り文字の後に続く英字を大文字に変換し、それ以外を小文字にします。以下のような区切り文字の後で大文字化が行われます。
- スペース
- ハイフン(-)
- ピリオド(.)
- スラッシュ(/)
- その他の非英字文字
日本語の文字列に含まれる英字にも同じルールが適用されます。
実践例1:メールアドレスの小文字統一
顧客データのメールアドレスを統一
メールアドレスは大文字・小文字を区別しませんが、一覧表では小文字に統一しておくと見やすくなります。
| A列(入力されたアドレス) | B列(統一後) | |
|---|---|---|
| 2 | [email protected] | [email protected] |
| 3 | [email protected] | [email protected] |
| 4 | [email protected] | [email protected] |
B列の数式です。
=LOWER(A2)
前後にスペースが含まれている場合はTRIM関数と組み合わせます。
=TRIM(LOWER(A2))
メールアドレスの重複チェック
大文字・小文字の違いで同じアドレスが重複して登録されることがあります。LOWER関数で統一してからCOUNTIF関数で重複を検出します。
=COUNTIF(LOWER($A$2:$A$100), LOWER(A2))
結果が2以上のセルは重複しています。
実践例2:商品コードの大文字統一
在庫管理での商品コード統一
商品コードが大文字・小文字混在で入力されている場合に統一します。
| A列(入力コード) | B列(統一後) | |
|---|---|---|
| 2 | prod-a001 | PROD-A001 |
| 3 | Prod-B002 | PROD-B002 |
| 4 | PROD-c003 | PROD-C003 |
=UPPER(A2)
VLOOKUPでの大文字小文字の問題
VLOOKUP関数は大文字・小文字を区別しません。しかし、MATCH関数の完全一致モードやEXACT関数は区別します。
大文字小文字を区別して検索する場合はEXACT関数を使います。
=INDEX(B:B, MATCH(TRUE, EXACT(A:A, "PROD-A001"), 0))
実践例3:PROPER関数で氏名を整形
外国人社員の氏名データ整形
外国人社員の氏名データを「名 姓」の形式で先頭大文字に統一します。
| A列(入力氏名) | B列(整形後) | |
|---|---|---|
| 2 | john smith | John Smith |
| 3 | MARIA GARCIA | Maria Garcia |
| 4 | robert johnson | Robert Johnson |
=PROPER(A2)
PROPER関数の注意点
PROPER関数は単語の先頭を大文字にしますが、以下のようなケースでは意図しない結果になることがあります。
| 元の文字列 | PROPER関数の結果 | 期待する結果 |
|---|---|---|
| mcdonald | Mcdonald | McDonald |
| iPhone | Iphone | iPhone |
| O’Brien | O’Brien | O’Brien |
| IBM | Ibm | IBM |
「McDonald」や「iPhone」のように、単語途中に大文字が必要なケースではPROPER関数だけでは対応できません。このような場合はSUBSTITUTE関数で個別に修正するか、手動で調整する必要があります。
PROPER関数とSUBSTITUTE関数の組み合わせ
特定の文字列を後から修正する方法です。
=SUBSTITUTE(PROPER(A2), "Mcdonald", "McDonald")
修正対象が複数ある場合はSUBSTITUTE関数を入れ子にします。
=SUBSTITUTE(SUBSTITUTE(PROPER(A2), "Mcdonald", "McDonald"), "Ibm", "IBM")
実践例4:部署名・会社名の英語表記統一
部署名の英語表記を統一
海外拠点向けの組織図で部署名の英語表記を統一します。
| A列(入力された部署名) | B列(大文字統一) | C列(先頭大文字) | |
|---|---|---|---|
| 2 | sales department | SALES DEPARTMENT | Sales Department |
| 3 | HUMAN RESOURCES | HUMAN RESOURCES | Human Resources |
| 4 | engineering team | ENGINEERING TEAM | Engineering Team |
大文字に統一する場合はB列の数式を使います。
=UPPER(A2)
先頭大文字にする場合はC列の数式を使います。
=PROPER(A2)
略称を含む部署名の処理
「IT」「HR」などの略称を含む部署名では、PROPER関数で「It Department」のようになってしまいます。
=SUBSTITUTE(PROPER(A2), "It ", "IT ")
データ入力規則との組み合わせ
入力後に自動で大文字変換
ユーザーが入力した値を別の列で自動的に大文字に変換する仕組みを作ります。
B列にユーザーが商品コードを入力し、C列に統一された値を表示します。
=IF(B2="", "", UPPER(TRIM(B2)))
TRIM関数で余分なスペースも同時に除去しています。空セルの場合は空文字を返すようにIF関数で分岐しています。
変換結果を元のセルに上書き
数式ではなく値として上書きしたい場合は、以下の手順で行います。
- 空いている列に変換数式を入力する(例: =UPPER(A2))
- 数式をコピーして必要な範囲に貼り付ける
- 数式のセルをコピーし、「値として貼り付け」で別の場所に貼り付ける
- 元のデータを削除する
大文字・小文字の判定方法
EXACT関数で大文字小文字を判定
ある文字列がすべて大文字かどうかを判定するには、EXACT関数とUPPER関数を組み合わせます。
=EXACT(A2, UPPER(A2))
この数式はA2のデータとその大文字変換結果が完全一致するかを判定します。TRUEであればすべて大文字です。
同様に小文字の判定も可能です。
=EXACT(A2, LOWER(A2))
Google スプレッドシートでの互換性
UPPER関数、LOWER関数、PROPER関数はすべてGoogle スプレッドシートで利用可能です。構文も動作もExcelと同じです。EXACT関数もGoogle スプレッドシートで同様に使えます。
まとめ
UPPER関数、LOWER関数、PROPER関数は、英字の大文字・小文字変換に特化した関数です。
- UPPER関数はすべての英字を大文字に変換する
- LOWER関数はすべての英字を小文字に変換する
- PROPER関数は各単語の先頭のみ大文字に変換する
- メールアドレスはLOWER関数で小文字に統一すると管理しやすい
- PROPER関数は略称や特殊な表記に対応できないため、SUBSTITUTE関数での補正が必要な場合がある
- EXACT関数と組み合わせて大文字・小文字の判定にも活用できる
データの表記を統一することで、検索や集計の精度が向上します。TRIM関数と合わせて使うことで、より確実なデータクレンジングが可能です。