スプレッドシートで英語の人名や地名を管理していると、表記がバラバラで困ることってありますよね。「john smith」と「JOHN SMITH」が混在していると、一覧表の見栄えも整いません。
かといって、1件ずつ手直しするのは時間がかかりすぎます。そんなときに使いたいのがPROPER関数です。各単語の先頭だけを大文字に変換してくれます。この記事では、スプレッドシートのPROPER関数の基本から実務での活用パターンまでわかりやすく解説していきます。
PROPER関数とは?スプレッドシートで先頭だけ大文字に変換する基本
PROPER関数は、文字列に含まれる各単語の先頭文字だけを大文字に変換する関数です。それ以外のアルファベットはすべて小文字になります。
読み方は「プロパー」で、英語の「proper(適切な・正式な)」が由来です。人名や地名を「正式な表記」に整えるイメージですね。
たとえば「john smith」を渡すと「John Smith」が返ってきます。日本語や数字、記号はそのまま変わりません。
構文と引数
PROPER関数の構文はとてもシンプルです。
=PROPER(text)
引数はひとつだけです。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| text | 必須 | 先頭を大文字に変換したい文字列またはセル参照 |
引数にセル参照を指定するのが一般的です。直接文字列を入れる場合は =PROPER("hello world") のようにダブルクォーテーションで囲みます。
UPPER関数やLOWER関数と同じく引数1つだけなので、覚えることは少ないですよ。
基本的な使用例
実際の動きを見てみましょう。A列に入力された文字列に対して、B列でPROPER関数を使います。
| セル | 入力値 | 数式 | 結果 |
|---|---|---|---|
| B2 | john smith | =PROPER(A2) | John Smith |
| B3 | GOOGLE SHEETS | =PROPER(A3) | Google Sheets |
| B4 | new york city | =PROPER(A4) | New York City |
| B5 | 東京office | =PROPER(A5) | 東京Office |
注目してほしいのは、B3の結果です。「GOOGLE SHEETS」のようにすべて大文字の文字列でも、先頭だけが大文字になります。それ以外の文字は小文字に変換されるのがポイントです。
B5のように日本語と英字が混在していても問題ありません。日本語の「東京」はそのまま残り、英字の「office」だけが「Office」に変換されます。
なお、空のセルを渡した場合は空文字列が返ります。エラーにはならないので安心してください。
PROPER関数の使い方|実務で役立つ3つの変換パターン
基本がわかったところで、実務でよく使う3つの場面を紹介します。コピーしてすぐに使えるので、ぜひ試してみてください。
英語の人名・地名を正規化する
顧客リストや住所録で、英語の人名・地名の表記がバラバラになっていませんか? PROPER関数で一括変換しましょう。
たとえば、A列に人名が入っているとします。B2に次の数式を入れてください。
=PROPER(A2)
| A列(入力) | B列(変換後) |
|---|---|
| john smith | John Smith |
| MARY JOHNSON | Mary Johnson |
| robert brown | Robert Brown |
すべて「先頭大文字+残り小文字」の形式に統一されます。B2をコピーして下方向に貼り付ければ、一覧全体を一気に整えられますよ。
請求書や送付状で相手の名前を正しく表記したいときにも便利です。
カンマ・ハイフン区切りの文字列を整える
PROPER関数は、スペースだけでなくカンマやハイフンの後も「単語の区切り」として扱います。区切り文字を含む文字列でも、各単語の先頭がきちんと大文字になります。
=PROPER(A2)
| A列(入力) | B列(変換後) |
|---|---|
| los angeles, california | Los Angeles, California |
| new-york | New-York |
| o’brien | O’Brien |
アポストロフィの直後も大文字になるため、「o’brien」が「O’Brien」と正しく変換されます。住所や複合姓の整形にそのまま使えますね。
TRIM関数と組み合わせてデータクレンジング
外部システムから取り込んだデータには、余分なスペースが紛れ込んでいることがよくあります。PROPER関数とTRIM関数を組み合わせれば、スペース除去と先頭大文字変換を一度に処理できます。
=PROPER(TRIM(A2))
| A列(入力) | B列(変換後) |
|---|---|
| john smith | John Smith |
| MARY JOHNSON | Mary Johnson |
| robert brown | Robert Brown |
先にTRIM関数で余分なスペースを除去してから、PROPER関数で先頭大文字に変換する流れです。名前のクレンジング処理として定番のパターンなので、覚えておくと重宝しますよ。
全角スペースも除去したい場合は、SUBSTITUTE関数を追加しましょう。
=PROPER(TRIM(SUBSTITUTE(A2," "," ")))
全角スペースを半角スペースに置換してからTRIMで整理する流れです。
PROPERの意外な動作と注意点
PROPER関数はシンプルな関数ですが、いくつか知っておきたいクセがあります。使う前にチェックしておきましょう。
日本語には効果がない
PROPER関数が変換するのは半角アルファベットだけです。日本語のひらがな・カタカナ・漢字には何も起きません。
=PROPER("こんにちは世界") → こんにちは世界
日本語だけのセルに使っても、そのまま返ってくるだけです。エラーにはならないので、英語と日本語が混在するデータに一括適用しても問題ありませんよ。
また、全角英字(abcなど)も変換されません。Googleスプレッドシートには全角→半角変換のASC関数がないため、全角英字が含まれるデータは先にSUBSTITUTE関数で半角に置換してからPROPER関数を使いましょう。
数字・記号の後の文字も大文字になる
PROPER関数は「アルファベット以外の文字」の直後を「単語の先頭」とみなします。そのため、数字や記号の直後にあるアルファベットも大文字に変換されます。
| 入力値 | 結果 | 解説 |
|---|---|---|
| 2nd floor | 2Nd Floor | 数字の直後のnが大文字に |
| room#3a | Room#3A | #と3の直後が大文字に |
| hello/world | Hello/World | スラッシュも区切りと判断 |
「2nd」が「2Nd」になるのは、意図した結果ではないことが多いですよね。この動作を知らずに使うと、データが崩れることがあります。
TIP
数字・記号を含む文字列にPROPER関数を使うときは、結果を必ず確認しましょう。意図しない変換があった場合は、SUBSTITUTE関数で個別に修正するのが確実です。
PROPERでは対応できないケース
PROPER関数は「各単語の先頭を大文字、残りを小文字」にする関数です。独自の大文字ルールを持つ固有名詞には対応できません。
| 入力値 | PROPERの結果 | 期待値 |
|---|---|---|
| mcdonald | Mcdonald | McDonald |
| iPhone | Iphone | iPhone |
| USA | Usa | USA |
「McDonald」の「D」や「iPhone」の「P」は、単語の途中にある大文字です。PROPER関数はこれを小文字に変えてしまいます。「USA」のような略語も「Usa」になってしまいます。
こうしたケースでは、PROPER関数の後にSUBSTITUTE関数で個別に修正しましょう。
=SUBSTITUTE(PROPER(A2),"Mcdonald","McDonald")
件数が少なければ手動修正のほうが早いかもしれません。PROPER関数は「おおまかに整える」ツールとして使い、細かい例外は別途対応するのがおすすめです。
UPPER・LOWER・PROPERの違いと使い分け
スプレッドシートには、文字の大文字・小文字を操作する関数が3つあります。PROPER関数と似た機能を持つUPPER関数、LOWER関数との違いを整理しておきましょう。
3関数の比較表
| 関数 | 機能 | 入力例 | 出力例 | 主な用途 |
|---|---|---|---|---|
| UPPER | すべて大文字に変換 | hello world | HELLO WORLD | 製品コード、国コード |
| LOWER | すべて小文字に変換 | Hello World | hello world | メールアドレス、URL |
| PROPER | 各単語の先頭だけ大文字に変換 | hello world | Hello World | 人名、都市名 |
構文はどれも同じ形です。=UPPER(text) と =LOWER(text) のように、引数はひとつだけです。
どれを使うか迷ったときの判断フロー
3つの関数を使い分けるポイントは、「最終的にどう表示したいか」です。次の基準で判断してみてください。
- 全部大文字にしたい → UPPER関数(例: 製品コード、国コード、部署コード)
- 全部小文字にしたい → LOWER関数(例: メールアドレス、URL、SNSアカウント)
- 先頭だけ大文字にしたい → PROPER関数(例: 人名、都市名の表記統一)
迷ったら、まずはデータの用途を考えてみてください。コード類は大文字統一、メールアドレスやURLは小文字統一が一般的です。人名や地名はPROPERが便利ですが、固有名詞のクセには気をつけましょう。
ARRAYFORMULAで列全体を一括変換する応用テクニック
データが数百行・数千行あると、数式をコピーするのも手間ですよね。そんなときはARRAYFORMULA関数を使いましょう。1つの数式で列全体をまとめて変換できます。
B2セルに次の数式を入力してください。
=ARRAYFORMULA(PROPER(A2:A))
これだけで、A2以降のすべての行に対してPROPER関数が適用されます。A列にデータを追加すると、B列にも自動で変換結果が表示されます。
ちょっとむずかしく見えますが、やっていることはシンプルです。「PROPER関数を配列(複数セル)にまとめて適用する」だけです。
ひとつ注意点があります。ARRAYFORMULAを使っている場合、B列の途中にデータを手入力するとエラーになります。B列はすべてARRAYFORMULAに任せて、手入力しないようにしてください。
空白行が気になる場合は、IF関数と組み合わせましょう。
=ARRAYFORMULA(IF(A2:A="","",PROPER(A2:A)))
A列が空白のときはB列も空白にする、という条件を加えた数式です。見た目がスッキリするのでおすすめですよ。
TRIM関数との組み合わせもARRAYFORMULAで一括処理できます。
=ARRAYFORMULA(IF(A2:A="","",PROPER(TRIM(A2:A))))
人名リストの一括クレンジングなど、大量データの前処理にぜひ活用してみてください。
よくある質問・注意点
PROPER関数を使うときに気になるポイントをまとめました。
Q. 元のセルのデータは書き換わりますか?
いいえ、書き換わりません。PROPER関数は別のセルに変換結果を返します。元データを置き換えたい場合は、変換結果の列をコピーして、元の列に「値のみ貼り付け」してください。
Q. 日本語が含まれていても使えますか?
はい、使えます。PROPER関数は半角アルファベットだけを変換します。日本語・数字・記号はそのまま残るので、「東京office」のような混在テキストでも安心です。
Q. 全角英字(abc)も変換されますか?
残念ながら、全角英字は変換されません。Googleスプレッドシートには全角→半角変換のASC関数がありません。全角英字を含むデータは、先にSUBSTITUTE関数で半角に置換してからPROPER関数を適用してください。
Q. ExcelのPROPER関数と違いはありますか?
構文も動作も完全に同じです。スプレッドシートで作った数式はExcelでもそのまま動きます。互換性を気にせず使ってOKですよ。
Q. 空のセルを参照するとエラーになりますか?
エラーにはなりません。空のセルを渡すと空文字列が返ります。大量のデータに一括適用しても、空白行でエラーが出る心配はありません。
まとめ
PROPER関数は、各単語の先頭だけを大文字に変換できるシンプルな関数です。この記事のポイントを振り返っておきましょう。
- 構文は
=PROPER(text)で引数はひとつだけ - 半角アルファベットのみ変換される(日本語・数字・全角英字はそのまま)
- 英語の人名・地名の表記統一に便利
- 数字や記号の直後も「単語の区切り」として扱われる点に注意
- McDonald・iPhoneなど固有名詞の独自ルールには対応できない
- UPPER関数(全大文字)・LOWER関数(全小文字)との使い分けがポイント
- ARRAYFORMULAと組み合わせれば列全体を一括変換できる
- TRIM関数との組み合わせでスペース除去も同時に処理可能
データの正規化をさらに進めたい方は、UPPER関数やLOWER関数、SUBSTITUTE関数もあわせてチェックしてみてください。大文字・小文字変換や特定文字列の置換にも役立ちますよ。
