この記事では「エクセルで真ん中の文字や数字を抽出・抜き出す方法【中央:任意の桁を抽出】」について解説していきます。
方法としては下記関数を使用し、処理を構築します。
・MID関数
・ROUNDUP関数
・LEN関数
・IF関数
・ISEVEN関数
それでは、サンプルデータを用いて解説しましょう。
特定の文字列から真ん中の数字だけを抜き出す・抽出する【中央を取り出す】
下記サンプルは任意の数値となります。
ここから中央の数字を取り出す処理を施します。
ただし、中央の数字の定義は
・Nが偶数の場合→N/2番目の数字及び(N/2)+1番目の数字
・Nが奇数の場合→(N/2)+1番目の数字
とします。
セルB2に「=MID(B1,ROUNDUP(LEN(B1)/2,0),IF(ISEVEN(LEN(B1)),2,1))」 と入力します。
なお、セル参照と数値の入力を行っているので、”(ダブルクォーテーション)で括ってしまうと正しく動作しない点、注意しましょう。
使用している関数について解説します。
MID関数は、対象の文字列の特定の位置にある文字を抽出する際に使用し、
と入力します。
各引数には
・開始位置(ROUNDUP関数): ROUNDUP関数の戻り値(後述)
・文字数(IF関数): IF関数の戻り値(後述)
をそれぞれ指定します。
ROUNDUP関数は、指定した桁で切り上げを行う際に使用し、
と入力します。
各引数には
・桁数(0): 1→小数点第一位、0→一の位、-1→十の位、…といった仕様である
をそれぞれ指定します。
LEN関数は、指定された文字列の長さを求める際に使用し、
と入力します。
各引数には
を指定します。
IF関数は、条件の真偽により出力する値を変更する際に使用し、
と入力します。
各引数には
・値が真の場合(2): 桁数が偶数の場合に選択される桁数
・値が偽の場合(2): 桁数が奇数の場合に選択される桁数
をそれぞれ指定します。
ISEVEN関数は、指定された値の偶奇を判定する際に使用し、
と入力します。
各引数には
を指定します。
処理のフローとしては
- LEN関数でNを求める
- ROUNDUP(LEN(B1)/2,0)により偶数であればN/2、奇数であれば(N/2)+1を求める
- IF(ISEVEN(LEN(B1)),2,1)により偶数であれば2桁、奇数であれば1桁を出力する
- MID関数で①~③に基づき、中央の数字を取り出す
といったところです。
ENTERを押すと、結果が出力されます。
桁数が偶数であっても上記の定義に沿った抽出が行われることを確認しましょう。
文字と数字が混在している場合の中央の数値を抽出する方法
対象のデータにおいて、文字と数字が混在していても前述した数式で対応できます。
元データを「平成30年度」に変更してみましょう。
これに前述した数式を適用してみると、文字と数字混在していても中央の数値を取り出せることがわかります。
なお、この数式は2桁までの値でかつ数値の前後の文字数がイコールであれば文字の種類に関係なく適用可能です。
まとめ エクセルで真ん中の数字や文字を抽出・取得方法【関数:任意の桁を抽出】
この記事では「エクセルで真ん中の文字や数字を抽出・抜き出す方法【中央:任意の桁を抽出】」について解説しました。
複雑な処理フローをすぐに構築できる方は中々いないのが現状ではあります。
しかし、逆を言えば、このようなことができる人物はどの世界にいても希少価値の高い人材であるということでもあります。
将来どのような世界に身を置くことになるか予想ができない現代において、処理フローを考え出す能力を養っておくことは決して損ではありません。
コメント