資料作成やデータ編集などを行っていると、既存のデータを流用し、最後の文字 or 最初の文字だけ変更したい、という状況はよくあるのではないでしょうか?
この記事では、そんな状況で役に立つエクセルスキルをご紹介していきます。
具体的には指定した文字数分だけ、
〇既存の文字列の最後から取り出す
〇既存の文字列の最初から取り出す
〇既存の文字列の最後から取り除く
〇既存の文字列の最初から取り除く
という4つの方法をご紹介していきます。
初心者に寄り添い、画像多めで説明していきますので、ぜひ最後までごらんください。
それではさっそくやっていきます!
覚えておくべき3つの関数紹介
この記事では、基本的にエクセルにあらかじめ備わっている、3つの関数を組み合わせることによって、文字列の操作をしていきます。
まずはそのスキルの概要についてご説明していきます。
文字列の最後から取り出す:Right関数
まずは文字列の最後の数文字を取り出す方法をご紹介します。
基本的にエクセルに文字を打ち込んでいくと、左から右に文字列が伸びていきますよね。
これは、文字列の最初の文字は左側にあり、最後の文字は右側にあるというふうに理解しておくと良いでしょう。
つまり最後の文字を取り出すには、
文字の右側を取り出せ!
という意味であるRight関数を用います。
このRight関数の使い方は以下の通りです。
=RIGHT(文字列,文字数)
※具体的な使用方法についてはのちほど説明します。
文字列の最初から取り出す:Left関数
次に文字列の最初の数文字を取り出す方法をご紹介します。
ここは先ほどのRight関数と逆を行えばOKです。
つまり最初の文字を取り出すには、
文字の左側を取り出せ!
という意味であるLeft関数を用います。
このLeft関数の使い方は以下の通りです。
=LEFT(文字列,文字数)
※具体的な使用方法についてはのちほど説明します。
文字列の文字数を数える:Len関数
ここまで紹介したRight関数、Left関数はあくまで右側もしくは左側から、指定した文字数分だけ、既存の文字列から取り出す操作を行ってくれるものでした。
しかし、これだけでは文字列を操作するには不十分です。
例えば、何文字あるかわからないけど最後の数文字を取り除きたい、という場合です。
最後の文字を取り除く=最初の文字だけ残す、ということなので先ほど紹介したLeft関数で対応できそうな気もしますが、Left関数はあくまでも残す文字数がわかっているときにしか使えません。
よって、何文字あるかわからない状況においては、Right, Left関数だけでは、思い通りに文字列操作ができないというわけです。
その状況を解決してくれるのが文字列の文字数を数えてくれるLen関数です。
さきほど私は
「何文字あるかわからない状況においては・・・」
と説明しました。
逆に言えば文字数さえわかれば対応できるということです。
つまりこの文字数を数えてくれるLen関数を使えばこの状況を打破できるというわけです。
このLeft関数の使い方は以下の通りです。
=LEN(文字列)
というわけで今回覚えておくべき3つの関数について説明しました。
ここからはこれらの関数を使った具体的な文字列操作の例をご紹介していきます。
文字列操作の具体例
今回は以下のようにA1セルに入力されている文字列に対して、文字列の操作を行っていきます。
冒頭に紹介したように
〇最後から順番に取り出す
〇最初から順番に取り出す
〇最後から指定した分だけ取り除く
〇最初から指定した分だけ取り除く
という4つのパターンに分けで、文字列の端っこを操作する方法をご紹介していきます。
ぜひあなたも一緒にエクセルを開いて練習してみましょう。
文字列の最後だけを取り出す
まずは指定した文字数分、文字列の最後だけを取り出す方法についてご紹介していきます。
この場合は先ほど紹介した右側だけを取り出せるRight関数を使います。
以下が実際の使用例です。
今回は取り出す文字数を8に設定しています。
しっかりとA1セルの右側から順番に8文字分だけ取り出されていますね。
これがRight関数を使った、文字列の最後の数文字を取り出す方法になります。
文字列の最初だけを取り出す
次に指定した文字数分、文字列の最初だけを取り出す方法についてご紹介していきます。
ここでは先ほど紹介したLeft関数を使います。
以下が実際の使用例です。
ここでは取り出す文字数を7に設定しています。
しっかりとA1セルの左側から順番に7文字分だけ取り出されていますね。
これがLeft関数を使った、文字列の最初の数文字を取り出す方法になります。
文字列の最後の部分を取り除く
次は指定した文字数分、文字列の最後の部分を取り除く方法についてご紹介していきます。
先ほども少し説明しましたが、(文字数がわからない状態で、)最後の数文字を取り除き、最初だけ残すということはLeft関数だけではできません。
その問題を解決するために、Left関数とLen関数の組み合わせを使います。
※Len関数:文字列の文字数を数える関数
以下が実際の使用例です。
基本的にはLeft関数を使って、【文字列】と【文字数】を指定していることに変わりはありませんが、【文字数】の部分を数式化しています。
Len関数で文字列の文字数を算出し、そこから取り除きたい右側の文字数を引いてあげることで、右側の指定した文字分だけを取り除くことが可能になります。
今回は取り除く文字数を9に指定していますが、きちんと9文字分である
【:ヒガサラblog】が取り除かれていますよね。
これがLeft関数とLen関数を組み合わせた、文字列の最後の数文字を取り除く方法になります。
文字列の最初の部分を取り除く
最後は指定した文字数分、文字列の最初の部分を取り除く方法についてご紹介していきます。
基本的には先ほど紹介した、文字列の最初から取り除く方法とやっていることは同じですので詳細説明は割愛します。
※詳細理解したい方は一つ前の見出しをご覧ください。
以下が実際の使用例です。
今回は取り除く文字数を4に指定していますが、きちんと4文字分である
【エクセル】が取り除かれていますよね。
というわけで以上が文字列を操作する4つの方法でした。
VBA上での使用方法
ここまでに紹介した文字列操作は、VBAでも頻繁に活用する機会があります。
そこでここからはこれまでにやってきたことをVBA上で実行する方法についてご紹介していきます。
ここまで紹介した具体例をVBA上で実行するには、以下ようなコードになります。
Sub edit_string()
Dim mojiretu As String
mojiretu = Cells(1, 1)
Cells(2, 1) = Right(mojiretu, 8)
Cells(3, 1) = Left(mojiretu, 7)
Cells(4, 1) = Left(mojiretu, Len(mojiretu) - 9)
Cells(5, 1) = Right(mojiretu, Len(mojiretu) - 4)
End Sub
基本的な流れとしては、
〇A1セルに入っているデータを操作したい文字列として宣言する。
⇒ mojiretu=Cells(1,1)
〇ここまで紹介してきたRight, Left, Len関数を組み合わせて文字列を操作
ということを行っているだけです。
エクセルシート上での使い方とほとんど同じですね。
ぜひVBA上でも使いこなせるようになっておきましょう。
おわりに
というわけで今回は文字列を端から操作する方法についてご紹介しました。
ここができれば、自動化の幅は非常に広がっていくと思いますので、ぜひマスターしておきましょう!
このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。
■業務の生産性を上げたい。
■早く帰って子供と遊びたい。
こんな人はぜひ他の記事も読んでみてください。
また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。
私にわかる範囲であればご協力いたしますので。(もちろん無料です。)
最後に・・・
このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。
Twitterもやっていますので、興味があれば覗いてみてください。
それではまた!!
コメント