文字列の抽出と計算 2.Excel関数 ~ ② 半角スペースを利用
はじめに
前回は、求める数値の位置と長さが一定であることに着目し、MID関数を用いて中央の数字を取り出しました。
今回も、前回と同じテーマで、別の解決方法を模索してみます。
今回のテーマ
前回と同じテーマです。
一つのセルに、3桁の数字が3つあります。これらは、半角スペースで区切られています。この数字について、真ん中のグループの和を求めてみましょう。
半角スぺースを利用する
今回抽出したい値は全て、その前後に半角スペースが入力されています。この規則性を利用して、文字を抽出します。
使用する関数:FIND,LEN,RIGHT,LEFT
最初に登場する半角スペースが何文字目にあるか、FIND関数で求めます。
※B列に入力した数式を、C列に表示させています。
4文字目が半角スペースな訳ですから、全体の文字数を求めるLEN関数と組み合わせて、最初の半角スペース以降の文字数を求めることができます。
この文字数分だけ文字の右から抜き出すことで、最初のグループを取り除きます。
求められた「456 789」に対して、同じように半角スペースの位置を求め、その直前まで左から抜き出します。
これに1を掛け、数値化します。2~3行目も同様です。
最後に合計を求めて、完了です。
この方法であれば、空白位置が変わっても数式が追従するので、自動対応可能です。
おわりに
今回の方法に対する評価(私見)は、以下のとおりです。
メリット :
- 半角スペースの位置変更に自動対応可能(前回のデメリットを一部解消)
- 行列の増減に追従してくれる
デメリット:
- 「*1」など、直感的に理解しにくい(知らないと設定できない)
- 数式が大変複雑。数式を誤って編集すると、元に戻すのが非常に困難。
- 半角スペースが2個以外の場合に対応できていない
半角スペースの位置変更に追従できるようになった点が、前回より進歩したところでしょうか。ただし数式が複雑化したため、作成した方以外のメンテナンスが困難になってしまいました。
(おわり)