Excelのテキスト関数を使って文字列の操作とフォーマットを効果的に行う

Excelのテキスト関数を使って文字列の操作とフォーマットを効果的に行うIT

1章: Excelテキスト関数の基礎知識

Excelには多くの組み込み関数があり、その中でもテクスト関数は他の関数と混合して使用されることがよくあります。テキスト関数を用いれば、数値データを操作するだけでなく、文字列データを上手に扱うことができます。

文字列データは具体的には何でしょうか?それは名前や住所、商品名など、数値でないテキストデータを指します。Excelをただの表計算ツールとしてしか使っていないなら、文字列データを意識したことは少ないかもしれません。しかし、Excelは単なる表計算だけでなく「データベース」を簡易的に扱うツールとしても使用することができ、その際には文字列データの操作も重要になってきます。

では、具体的にExcelのテキスト関数で何ができるのか見ていきましょう。もちろんすべてを紹介することはできませんが、以下に代表的な関数をいくつか挙げてみます。

  • LEFT/RIGHT/MID:文字列から特定の位置の文字を取り出します。
  • LEN:文字列の長さ(文字数)を計算します。
  • FIND/SEARCH:文字列の中から特定の文字や文字列を探し、その位置を返します。
  • REPLACE/SUBSTITUTE:文字列の一部を別の文字列に置き換えます。

これらの関数を理解し、組み合わせて使うことで、本当に幅広いテキスト操作が可能になります。なお各関数の詳細については次章以降で紹介してまいりますので、ぜひ最後までお読みください。

さて、Excelのテキスト関数が他のプログラミング言語等の文字列操作と何が違うのか、それは「視覚的に結果を確認しながら操作できる」点です。コマンドライン上で文字列操作を行うとなると、結果を見るためには都度プリントするなどの操作が必要ですが、Excelでは一つセルを操作すれば即座に結果が反映されます。これはまさにExcelのテキスト関数の大きな強みです。

Excelを使った文字列操作に自信がない方、Excelの使い方をもう一歩踏み込んで学びたい方には、本シリーズがきっと大いに役立つことでしょう。引き続き次章「文字列操作の基本 – テキスト関数の利用」をお楽しみください。

2章: 文字列操作の基本 – テキスト関数の利用

今回の第2章では、Excelのテキスト関数を使った文字列操作の基本について詳しく説明します。テキスト関数の利用方法を知り、効率的に文字列を操作するスキルを身につけましょう。

LEFT, RIGHT, MID関数で文字を取り出す

最初に紹介する関数はLEFTRIGHTMIDです。これらはテキストから特定の位置の文字を取り出します。

たとえば、”12345″という文字列から2文字目から3文字分を取り出す操作は以下のようになります。

=MID("12345", 2, 3)

こちらの関数を使用すると、「234」という結果が得られます。

LEN関数で文字列の長さを計算する

次はLEN関数です。これは文字列の長さ(文字数)を計算します。

たとえば、”ABCDE”という文字列の長さを知りたい場合は、以下のようになります。

=LEN("ABCDE")

これを実行すると、「5」という結果を得ることができます。

FIND, SEARCH関数で指定の文字を探す

次に紹介するのがFINDSEARCH関数です。それぞれ小文字・大文字を区別する、しないという違いがありますが、これらは文字列から特定の文字や文字列を探し出し、その位置を返します。

たとえば、”ABCDE”という文字列内で”C”の位置を探し出すなら、以下の簡単なコードを使います。

=FIND("C", "ABCDE")

上記のコードを実行すると、「3」が返ってきます。つまり、”C”は”ABCDE”内の3番目に存在するということを意味します。

REPLACE, SUBSTITUTE関数で文字列を置き換える

そして最後にREPLACESUBSTITUTE関数です。これらは文字列の一部を別の文字列に置き換えます。

“ABCDE”から”BCD”を”123″に置き換えるには、次のようにします。

=SUBSTITUTE("ABCDE", "BCD", "123")

これを実行すると、「A123E」という結果が得られます。

以上が基本的なテキスト関数の使用法です。これらの関数を組み合わせて使うことで、あらゆる種類のテキスト操作が可能になります。次章ではデータのフォーマット変更、つまり数値、日付、時刻などの扱い方について説明します。

3章: データフォーマットの変更 – 数値、日付、時刻の扱い方

前章ではExcelで文字列を操作するための基本的なテキスト関数について説明しました。引き続き、本章ではデータのフォーマットを変更するための関数、具体的には数値、日付、時刻の扱い方について学んでいきましょう。

TEXT関数で数値の書式を指定する

Excelでは、数値の表示形式が重要な場面があります。特定の形式で数値を表示したい、桁数を固定したいという時に使えるのがTEXT関数です。

例えば、「1000」を「1,000」の形で表示するためには以下のようにします。

=TEXT(1000, "#,##0")

#,##0の部分が表示形式を指定する部分で、3桁ごとにカンマを入れる形を意味します。

DATEVALUE、TIMEVALUE関数で日付・時刻を数値に変換する

日付や時刻は「文字列」として認識されていることが多いですが、実はExcelでは「数値」で扱われます。特に日付計算などをする場合、この点を理解することが重要です。

文字列として入力された日付・時刻を、Excelの内部的な日付・時刻の数値に変換するための関数がDATEVALUETIMEVALUEです。

例えば、「2020/1/1」を数値に変換するには、以下のようにします。

=DATEVALUE("2020/1/1")

このとき、返ってくる数値が「43831」です。これがExcelにおける「2020/1/1」の内部的な数値表現です。

数値を日付・時刻に変換する

逆に数値を日付や時刻の形式に変換したい場合には、フォーマットメニューの「日付」や「時刻」を選択します。

先ほどの「43831」を日付に変換するには、セルを選択して右クリック→セルの書式設定→カテゴリの「日付」を選択します。

以上がExcelのテキスト関数によるデータフォーマットの変更についての基本的な内容です。数値、日付、時刻といったデータの扱い方を理解することで、Excelの活用範囲は格段に拡がります。

次章では、これまで学んだテキスト関数を更に活用するための高度な操作について解説します。引き続きお読みいただけますと幸いです。

4章: テキスト関数を用いた高度な操作 – 文字列分割、結合、検索

これまでにテキスト関数の基本的な使い方と、データフォーマットの変更方法について学んできました。本章では、それらを活用して更に高度な文字列操作を行う方法を紹介します。

CONCATENATE関数、&演算子で文字列を結合する

文字列を結合するにはCONCATENATE関数か&演算子を使うことができます。

例えば、「Excel」と「の力」の2つの文字列を結合するには以下のようにします。

=CONCATENATE("Excel", "の力")

または

= "Excel" & "の力"

このように関数や&演算子を使うことで、「Excelの力」という1つの文字列を作成することができます。

TRIM関数で余分なスペースを取り除く

文字列の前後または途中に余分なスペースがあると、予期せぬエラーを引き起こすことがあります。そういった時に有効なのがTRIM関数です。

例えば、” Excell “という余計なスペースが含まれた文字列からスペースを取り除くには以下のようにします。

=TRIM(" Excell  ")

上記のコードを実行すると、「Excell」という結果が得られます。このようにTRIM関数を使えば、文字列の前後と途中の2つ以上のスペースを1つにすることが可能です。

FIND関数、MID関数で任意の位置の文字列を抽出する

特定の文字や文字列が開始する位置を検索して、その後に続く文字列を抽出したい場合は、FIND関数とMID関数を組み合わせることで実現できます。

例えば、”abc_def_ghi”という文字列から”_”の後に続く文字列を抽出するには、以下のように記述します。

=MID("abc_def_ghi", FIND("_", "abc_def_ghi") + 1, LEN("abc_def_ghi"))

上記のコードを実行すると、「def_ghi」という結果が得られます。

以上、本章ではテキスト関数を用いた高度な文字列操作について解説しました。テキスト関数を駆使すれば、かゆいところにも手が届くExcel力を身につけることができます。次章では実践的なエクセル上級テクニックとその具体例をご紹介します。ぜひご期待ください。

5章: テキスト関数を活用したエクセル上級テクニックとその具体例

最終章では、これまでに学んだテキスト関数を活用して実践的な問題を解決するテクニックをいくつか紹介します。具体的な事例を通じて、テキスト関数の威力を最大限に引き出す方法を理解しましょう。

部署名と氏名を分離する

従業員リストがあり、各行に部署名と氏名が一緒に記載されているとします。ここで、「部署名」と「氏名」を分けて表示したいときにはどうすればいいでしょうか。当然ながらFIND関数とLEFTRIGHT関数を活用します。


=LEFT(A1,FIND("_",A1) - 1)
=RIGHT(A1,LEN(A1) - FIND("_",A1))

これにより、セルA1に”部署名_氏名”といった形式で入力された文字列から、”部署名”と”氏名”を個別に抽出することができます。

同一の記号が複数含まれる文字列を分割する

次に、”商品名_カテゴリー_価格”のようにアンダースコア(_)が複数回含まれる文字列を分割する場合を考えてみましょう。ここでも同様のテクニックが適用できますが、REPLACE関数を一度使って先頭のアンダースコア(_)を特殊な記号に変換しやすくするとコードがすっきりします。


=LEFT(A1, FIND("_", A1) - 1)
=MID(A1, FIND("_", A1) + 1, FIND("Δ", SUBSTITUTE(A1, "_", "Δ", 2)) - FIND("_", A1) - 1)
=MID(A1, FIND("Δ", SUBSTITUTE(A1, "_", "Δ", 2)) + 1, LEN(A1))

これにより、セルA1の文字列から商品名、カテゴリー、価格をそれぞれ分割して取り出すことが可能です。

日付データの分析

日付データが含まれる場合、年、月、日に分けて分析したい事情があります。この場合も当然ながらテキスト関数を活用できます。なお、ここでは1つのセルに日付データが”YYYY/MM/DD”の形式で格納されていると仮定します。


=LEFT(A1, 4)
=MID(A1, 6, 2)
=RIGHT(A1, 2)

これにより、セルA1の中から年、月、日をそれぞれ抽出することが可能です。

以上、エクセルのテキスト関数を上手く使いこなすことで日常の様々な問題解決に活用できることをご理解いただけたはずです。この知識を生かして、エクセルを更に使いこなし、データ解析の現場で活躍してください。

コメント