スプレッドシートのLOWER関数の使い方|小文字に統一して表記ゆれ・重複ミスを防ぐ

スポンサーリンク

「名簿のメールアドレスを照合したら、同じ人なのに一致しない」。スプレッドシートで顧客リストや会員IDを管理していると、こんな場面に出くわしませんか。

原因として多いのが、大文字・小文字の表記ゆれです。「Tanaka@Example.com」と「tanaka@example.com」は、使う関数によって同じ扱いにも別物扱いにもなります。放っておくと、重複を見逃したまま集計しかねません。

この記事では、スプレッドシートのLOWER関数の使い方と、大文字小文字を区別する関数・しない関数の見分け方を紹介します。

対応バージョン: Googleスプレッドシート(ブラウザ版)を前提に解説しています。Excelとの違いは「よくある質問」の最後にまとめました。

スプレッドシートのLOWER関数の基本|小文字に変わるもの・変わらないもの

LOWER関数は、文字列に含まれる英字を小文字に変換する関数です。読み方は「ロウアー」。英語の lower case(小文字)が名前の由来になっています。

構文と基本の使い方

構文は次のとおりで、引数は1つだけです。

=LOWER(テキスト)

引数には、セル参照(=LOWER(A2))か、ダブルクォーテーションで囲んだ文字列(=LOWER("ORANGE JUICE"))を指定します。

A列(入力)B列(数式)結果
HELLO WORLD=LOWER(A2)hello world
Google Sheets=LOWER(A3)google sheets
ABC-123=LOWER(A4)abc-123
東京OFFICE=LOWER(A5)東京office

英字だけが小文字になり、数字やハイフン、日本語はそのまま残ります。元のA列は書き換わらず、結果がB列に表示されるだけ。

日本語・数字・全角英字・日付を渡したときの結果

数値や日付、全角英字を渡したときの扱いは、公式ヘルプに書かれていません。実務で混ざりやすい値の結果を整理しておきましょう。

入力=LOWER() の結果注意点
123(数値)123文字列になる
2026/1/1(日付)2026/01/01日付ではなく文字列になる
TRUE(真偽値)true文字列になる
空白セル空(空文字列)エラーにはならない
#N/A#N/Aエラーがそのまま返る
ABC(全角英字)abc全角のまま小文字になる
ΑΒΓ(ギリシャ文字)αβγ英字以外も小文字になる

特に気をつけたいのが日付です。LOWERは結果を文字列で返すため、日付が「2026/01/01」のような文字列に変わり、日付として扱えなくなります。全角英字を半角にそろえたいなら、次の章のASC関数を組み合わせましょう。

LOWER関数で表記ゆれをそろえる実務パターン|メール・ID・URL

メールアドレスや会員ID、商品コードは、入力する人やシステムによって大文字小文字がばらつきます。手入力とCSVの取り込みが混ざると、なおさらです。コピペで使える正規化の式を用途別に見ていきましょう。

なお、メールアドレスの@より前は、仕組みのうえでは大文字小文字が区別されることがあります。照合用の小文字列は別に作り、送信に使う元データは残しておくと安心です。

TRIMと組み合わせたコピペ用の正規化式

コピペで取り込んだデータには、前後に余分なスペースが紛れ込みがちです。LOWERとTRIM関数を組み合わせれば、小文字化と空白の除去が1つの式で済みます。

=LOWER(TRIM(A2))
A列(入力)B列(=LOWER(TRIM(A2)))
Tanaka@Example.com(前後に半角スペース)tanaka@example.com
SATO@EXAMPLE.COMsato@example.com
Suzuki@Example.com(末尾に全角スペース)suzuki@example.com(全角スペースが残る)

ただし、TRIMが取り除くのは半角スペースだけ。全角スペースや、Webページ由来のノーブレークスペース(NBSP)は残ります。全角スペースは、SUBSTITUTEで半角に置き換えてからTRIMにかけましょう。

=LOWER(TRIM(SUBSTITUTE(A2," "," ")))

2つ目の引数が全角スペースです。NBSPはこの式でも残るため、Webからコピーしたデータが合わないときは疑ってみてください。

全角英字(ABC)を半角にそろえるなら、全角の英数字やカタカナを半角に変換するASC関数を使います。

=LOWER(TRIM(ASC(A2)))

ASCはカタカナも半角にしてしまうため、氏名や商品名の列にはかけないでください。メールアドレスやIDの列に限って使うのがコツです。

URL・slug向けにSUBSTITUTEも組み合わせる

ブログのslugやURLに使う識別子を作るときは、スペースをハイフンに置き換えます。SUBSTITUTE関数をTRIMの外側に足しましょう。

=LOWER(SUBSTITUTE(TRIM(A2)," ","-"))

TRIMで空白を整え、SUBSTITUTEでハイフンに変え、最後にLOWERで小文字にする流れです。

A列(入力)結果
Spring Sale 2026spring-sale-2026
New Product Launch(単語間に2つずつ・前後にもスペース)new-product-launch

ただし、URL全体にLOWERをかけるのは避けましょう。ドメインより後ろのパスは大文字小文字を区別するサーバーもあり、「/Page」と「/page」が別ページになることがあります。

記号の除去など複雑な正規化なら、REGEXREPLACE関数の出番です。

列全体にまとめて適用する(ARRAYFORMULA)

何百行もあるリストなら、1つの式で列全体を変換できます。B2セルに次の式を入れるだけ。

=ARRAYFORMULA(IF(A2:A="","",LOWER(TRIM(A2:A))))

IFで「A列が空なら空にする」条件を入れた形です。ただし、IFなしの =ARRAYFORMULA(LOWER(A2:A)) でも、空の行は空文字列で返ります。どちらの形でも、COUNTAは空文字列まで数えてしまうため、B列の入力済みの件数を数えたいときは =COUNTIF(B2:B,"?*") を使いましょう。

結果は下の行へ自動で展開されます。B列の途中に手入力すると数式が #REF! エラーになるので、展開先は空けておきましょう。仕組みの詳細はARRAYFORMULA関数の記事で解説しています。

UPPER・PROPERとの違い

大文字小文字を変える関数は、LOWERのほかにUPPERとPROPERの2つ。

関数変換の内容例(hello World)向いているデータ
LOWERすべて小文字hello worldメール・URL・slug
UPPERすべて大文字HELLO WORLD商品コード・国コード
PROPER単語の先頭だけ大文字Hello World英語の人名・地名

コード類を大文字でそろえるならUPPER関数を使います。3関数の詳しい比較はPROPER関数の記事にまとめました。

照合・重複チェックで大文字小文字が効く関数・効かない関数

ここがこの記事の本題です。LOWERは、どの関数の前にも挟めばいいわけではありません。大文字小文字を区別しない関数なら、LOWERを挟んでも結果は変わらないからです。

大文字小文字を区別する関数・しない関数の一覧

「Tanaka@Example.com」と「tanaka@example.com」を同じとみなすかどうか。主な関数を並べると次のとおりです。

関数大文字小文字LOWERは要るか
EXACT区別する要る
FIND区別する要る
QUERY(WHERE句)区別する要る(クエリ内で lower() を使う)
SUBSTITUTE区別する要る
REGEXMATCH区別する((?i) を付けると区別しない)要る(または (?i))
UNIQUE / COUNTUNIQUE区別する要る
SEARCH区別しない不要
COUNTIF区別しない不要
= 比較区別しない不要
VLOOKUP / MATCH / XLOOKUP区別しない不要

このうち、EXACT・FIND・QUERYは「区別する」、SEARCH・COUNTIFは「区別しない」と公式の資料に書かれています。ほかの関数は、公式ヘルプに大文字小文字の扱いが書かれていないため、表の内容はスプレッドシート上で実際に試した結果です。

「区別する」側の代表がEXACT関数です。A2に「Tanaka@Example.com」、B2に「tanaka@example.com」が入っているとしましょう。

=EXACT(A2,B2)
→ FALSE

=EXACT(LOWER(A2),LOWER(B2))
→ TRUE

両方を小文字にしてから比べれば、同じ値と判定されます。FINDも同様で、大文字が混ざった文字列から小文字の語を探すと見つかりません。

=FIND("example",A2)
→ エラー(見つからない)

=FIND("example",LOWER(A2))
→ 8

=SEARCH("example",A2)
→ 8

「Tanaka@」の7文字の次なので、位置は8です。SEARCHは最初から区別しないため、LOWERなしで同じ結果が返ります。

QUERYで絞り込むなら、クエリ文の中で lower() を使いましょう。WHERE句の contains などは大文字小文字を区別するためです。

=QUERY(A1:A6,"select A where lower(A) contains 'tanaka'",1)

COUNTIFの重複チェックはLOWERなしでいい|見逃すのは空白

重複チェックの定番はCOUNTIFですが、もともと大文字小文字を区別しません。LOWERを挟まなくても「Tanaka」と「tanaka」は同じものとして数えられます。

では、重複を見逃す原因は何か。次の表では、A4だけ末尾に半角スペースが入っています。

行A列(メール)=COUNTIF($A$2:$A$6,A2)
2Tanaka@Example.com2
3tanaka@example.com2
4sato@example.com(末尾にスペース)1
5SATO@EXAMPLE.COM1
6suzuki@example.com1

田中さんの2行は、大文字小文字が違っても2件と数えられています。一方で佐藤さんの2行は、スペース1つの差で別物扱い。見逃しの原因は大文字小文字ではなく、空白のほうでした。

対策は、正規化した補助列を作ってから数えることです。C列で整え、D列で重複を数えます。

C2: =LOWER(TRIM(A2))
D2: =COUNTIF($C$2:$C$6,C2)

これで5行の結果は上から2・2・2・2・1になり、佐藤さんの重複も拾えます。COUNTIFだけならTRIMでも足りますが、LOWERも入れておくとUNIQUEやEXACTでも同じ列を使い回せるのが利点です。

重複している行に色を付けたいときは、条件付き書式のカスタム数式に =COUNTIF($C$2:$C,C2)>1 を指定する方法もあります。

ユニークな件数を数えるなら、正規化列にUNIQUEをかけましょう。元のA列のままだと、大文字小文字や空白の違いで5件に増えるおそれがあります。

=COUNTA(UNIQUE(C2:C6))
→ 3

メニューにある重複削除の機能を使う前にも、正規化列を作っておくと判定がぶれにくくなります。

LOWERを挟むかどうかの判断基準

最後に、判断の目安を3つにまとめます。

  • 区別する関数を使う(EXACT・FIND・QUERY・UNIQUEなど): LOWERを挟む
  • 区別しない関数を使う(COUNTIF・SEARCHなど): LOWERは不要。空白や全角の混入を先に疑う
  • 同じデータを複数の関数で使う: 正規化列を1本作り、すべてそこを参照する

迷ったら3つ目の正規化列がおすすめ。どの関数でも同じ前提で判定できます。

LOWER関数のよくある質問・つまずき

実務でつまずきやすい4つの場面をまとめました。

元データを上書きしたい(値貼り付け)

LOWERの結果は数式です。元の列を小文字に置き換えたいなら、B列をコピーし、A列に「値のみ貼り付け」をします。ショートカットはCtrl+Shift+V(Macは⌘+Shift+V)です。上書きが済んだら、B列の数式は消してOK。

数式が残って並べ替え・コピーで崩れる

B列が数式のままだと、参照元のA列を削除したときにエラーになります。別のシートへコピーした場合も、貼り付け先で参照がずれることがあります。

並べ替えや列の削除をする前に、正規化列は値に固定しておきましょう。「作ったら値にする」と覚えておくと、事故がぐっと減りますよ。

数値・日付が文字列になる

日付の列にかけると「2026/01/01」のような文字列になり、日付として扱えなくなります。

数字だけのIDも、見た目は同じまま文字列に変わります。数値で入っている別の列と照合すると、一致しない場合があるので注意してください。 英字を含まない列には、そもそもLOWERをかけないのが一番です。

Excelとの違い

LOWER関数そのものは、Excelでも同じ構文で使えます。ただし、この記事で紹介したARRAYFORMULAはExcelにはありません。Microsoft 365のExcelなら、範囲を渡すだけで結果が下へ広がる仕組み(動的配列)で代わりになります。

大文字小文字の扱いも関数ごとにExcelと同じとは限らないため、一覧表をそのまま当てはめないでください。Excelで作業する方は、ExcelのLOWER関数の使い方をどうぞ。

まとめ|スプレッドシートのLOWER関数は「区別する関数」の前で使う

スプレッドシートのLOWER関数は、英字を小文字にそろえるシンプルな関数です。本当に役立つのは、大文字小文字を区別する関数と組み合わせたとき。ポイントを振り返りましょう。

  • 構文は =LOWER(テキスト) で、引数は1つだけ
  • 結果は文字列。日付や数値の列にはかけない
  • 正規化の基本形は =LOWER(TRIM(A2))。全角スペースはSUBSTITUTE、全角英字はASCで補う
  • slug作りは =LOWER(SUBSTITUTE(TRIM(A2)," ","-"))。URLのパスまで小文字にしない
  • EXACT・FIND・QUERYは区別するので、LOWERを挟む
  • COUNTIF・SEARCHは区別しないので、LOWERは不要。重複の見逃しは空白を疑う
  • 正規化列は値に固定してから使う

照合が合わないときは、まず「その関数は大文字小文字を区別するか」を一覧表で確かめてみてください。空白の処理はTRIM関数、細かい置き換えはSUBSTITUTE関数の記事も参考になります。

タイトルとURLをコピーしました