カテゴリー
LEFT LEN MID RIGHT 関数

セル内の特定・不特定の文字を取り出す関数

エクセルから文字を切り取って別のセルに貼り付ける方法を紹介します。別のセルに切り取るには特定の文字だけを削除する方法、不規則の文字列から抽出する方法があります。この関数を使いこなせば表記ズレを直したり、一括で文字を修正するのに役立てます。


セル内の特定した文字だけを取り出す場合

例:メールアドレスの一部(@以降)を切り取りたい場合


@example.comを削除
下記の表でメールアドレスの@以降のドメイン部分を切り取りたい場合は置換機能で切り取ることができます。

①削除したいセルの範囲をマウスでドラッグする。



②検索と置換機能を使う
キーボードのコントロールボタンとHボタンを同時に押して検索と置換機能を呼び出して下さい。

③削除する
検索する文字列:@example.com
置換後の文字列:
空白にします。
この入力が終わったらすべて置換をクリックします。


④削除後の内容確認
置換が終わったら削除できてるか確認してみて下さい。


同一の内容であればこのような一括削除が可能です。
置換後の文字列:に任意の文字を入力すれば、検索する文字列から置き換えすることができます。ドメインの変更があった場合に役に立ちます。



不規則の文字を取り出す場合
特定の文字列ではなく、不規則に並んでいるセルうち、指定した範囲の文字を取り出します。

取り出す前に指定した文字がセル内の何文字目に存在するか確認する必要があります。セル内に記載された内容を読み上げれば数えられますが、関数によって探すことができます。

=FIND(”検索したい単語”,文字数目を表示したいセル)
=FIND(“o”,B3)
”o”→セル内に含まれているoを検索する。大文字と小文字は区別されてます
B3→B3の中身を検索する。
関数の入力結果は16と表示されました。
1文字目から検索開始して16文字目にoという文字が含まれてましたのでこのような結果となります。

下記の例でoが含まれてるのを抜き出すとこのような結果になります。

また、文字は1文字だけではなく単語を入れても検索可能です。
co.jpを検索文字とした場合は下記のような結果となります。
結果に♯VALUE!となっている場合は検索単語が含まれていないという意味になります。



セル内の検索したい文字数目が判明したら抜き出す情報が手に入りました。抜き出すのに使用する関数は
①LEFT関数
②RIGHT関数
③MID関数
になります。

例 URLを記載したセルからそれぞれの関数を使って抜き出す。

①LEFT関数
セルに記載されている文字から左から数えて○個目の文字まで表示する関数
=LEFT(指定したセル,抜き出す文字数)

URLからhttps://の部分を抜き取る場合は次のような式になります。

=LEFT(B3,8)
B3にあるセル→https://www.yahoo.co.jp/
文字数→8文字

FIND関数でwwwを検索値にすればwにある文字数が9文字目と結果が返ってきますので、その1文字前のLEFT関数内では文字数8と入力すれば良いということがわかります。


②RIGHT関数
セルに記載されている文字から右から数えて○個目の文字まで表示する関数
=RIGHT(指定したセル,抜き出す文字数)

URLから右から数えて10文字目以降の文字を表示させる
=RIGHT(B3,10)
B3にあるセル→https://www.yahoo.co.jp/
文字数→10文字
その結果、 hoo.co.jp/ が表示されます。

③MID関数
指定した文字以降から指定した文字数までを取り出して表示する関数
=MID(指定したセル,抜き出したい文字数目,抜き出したい文字数)

FIND関数で抜き出したい文字を検索値にして何文字目に存在するのかを調べておくとMID関数を入力するのが楽です。

例 www以降の文字を抜き取りたい
=FIND(“www”,B3)
と入力し、結果が9と返ってきます。
なので、MID関数に入力する抜き出したい文字数目には9と入力すれば良いと言うことがわかります。

URLから9文字目以降の文字を表示させる
=MID(B3,9,1000)


B3にあるセル→https://www.yahoo.co.jp/
9→B3にあるセルの9文字目
1000→セル内の1000個までを取り出す。
1000は例です。セル内の値を超えた分は表示されず、表示可能な中身が全て表示されます。10とすれば10文字分取り出します。
10文字の場合は www.yahoo. となります。
半角・全角関係なく1文字は1文字として取り出します。

この関数を使う場合、上記の特定の文字を削除すると同じような結果になります。不特定の文字が並んでいる内の○文字以降を抜き出したいという場合はこの関数が有効的に使えます。


おまけ
セル内の文字数が何文字入っているかを調べる関数

=LEN(調べたいセル)
先程のB3の文字数を調べるときは・・・
=LEN(B3)
と入れます。すると24という数字が返ってきますので、この数字が文字数を表しています。

FIND関数でwwwを検索値にすればwにある文字数が15文字目と結果が返ってきますので、その1文字前のRIGHT関数内では文字数10と入力すれば良いということがわかります。

カテゴリー
関数

エクセルテクニック 関数の中身を分解し結合して正しい関数を作る方法

エクセルで関数を作成しているときに、引数によってはセルのドラッグしたときに自動で引数の数値が変化してくれないものがあります。
例えば、VLOOKUP関数だと列番号が自動で数値が変わらず固定した数値になってしまいます。10個程度の関数ならば1個ずつ手で直すことはできますが、50個や100個になると手で直すのが面倒くさいです。せっかくのエクセルなのにここは手作業なの?と思うかもしれますが、原始的な方法にはなりますが関数の中身を一度分解して、再度結合することで思うように関数を作成することができます。

作成例
下記の個人情報を整理するためのVLOOKUPを関数を分解して作成する

データはダミーのものです。
http://kazina.com/dummy/
のサイトよりデータ出力しました。


作業エリア
ここの黄色のエリアに全ての関数を作ります。

作業手順
①S5に通常のVLOOKUP関数を作ります。

画像に alt 属性が指定されていません。ファイル名: image-46.png



=VLOOKUP(R5,$B$4:$M$21,2,FALSE)

中身
検索値:R5 固定する必要ありません
範囲:B4からM21を絶対参照にする
列番号:2 
検索方法:FALSE

この状態でS5を右のセルにコピペするとこんな感じになってしまいます。

この状態ではダメなので次のステップで式を分解して式を作成します。

②式の分解

作業エリア外の余白にVLOOKUP関数を分解したセルを作成します。

分解前
=VLOOKUP(R5,$B$4:$M$21,2,FALSE)

これを・・・

S25
=VLOOKUP(R5,$B$4:$M$21,

=の前にある ’ ←クオーテーションは必須です。
これがないとエクセルは式の一部として認識してしまいます。

T25
,FALSE)

を入れます。
分解前にあった列番号は次のステップで挿入します。

③列番号の作成

余白の23行目に挿入したい列番号を数字を並べます。


④セルの結合
この並べた数字の2の下(T24)に次の式を挿入します。

$S$25&T23&$T$25

式の中身
$S$25→②で作成したS25です。
&T23&→23行目に作成した列番号とS25とT25を文章として結合するものです。
$T$25→②で作成したT25です。

これを挿入すると式の計算結果が文字列として

=VLOOKUP(R5,$B$4:$M$21,2,FALSE)

という結果が返ってきます。
この結果が正しければ、T24のセルをコピーして23行目に作成した列番号12まで作成していきます。
するとこのようなものができあがります。


⑤セルのコピペ
これをこのまま作業エリアに値の貼り付けたくなりますが、貼り付けても式を貼り付けただけになてしまいます。
24行目に作成した式を全てコピーして、Windowsに入っているメモ帳を起動し、そのまま貼り付けをして下さい

貼り付けが終わったら、また貼り付けしたものを全て選択してコピーします。その後に、作業エリアのT5に貼り付けしてみて下さい。すると作成した式がVLOOKUP関数として認識され正しい値が返ってきます


⑥作業エリア 下のセルにコピペ
S5からAC5を選択した状態で21列目まで式をコピペして下さい。一気に作成できます。作業エリアの完成です。


関数を分解して結合するテクニックは他の関数でも使えるテクニックになります。難しそうにみえますが慣れれば、すぐに作成できるようになります。このテクニックを使いこなせば巨大な関数を作ったとき苦ではなくなります。