─今回の関数紹介────────────────────────────
SUBSTITUTE(サブスティテュート) =SUBSTITUTE(文字列,検索文字列,置換文字列 [,置換対象])
この関数は、機能で言えば[編集]→[置換]と似ています。 違いは主に、 SUBSTITUTE関数 / 置換 1.置換対象先: 文字?セル / セル?ブック 2.対象データへの関わり: 間接的 / 直接的
毎回自動的に置換したいけど、元のデータには手を加えたくないというような場 合に有効です。置換文字列を入力せずに","だけを入れると、単純に検索文字列を 抜き出してくれます。置換対象というのは、左の対象からいくつ目を置換するか と、細かく指定できます。入力しなければセル全てが対象です。
この他に、指定した文字数及びバイト数を置換するREPLACE、REPLACEBという関 数もありますが、使い勝手が微妙です。 =REPLACE(文字列,開始位置,文字数,置換文字列)
─第5話 過去の遺産(2)─────────────────────────
前配属の部署の上司に、その時私が業務上作っていたファイルを再編集して欲し いと依頼があった。まさに過去の遺産・・・。
A B 1 支払期日 入金予定金額 2 " 翌 月 末日" "' 15,000,000 " 3 " 翌 月 15日" "' 120,000 "
システムから取った、上のようなデータを支払期日が"末"なら30へ、入金予定金 額は数値として認識させるため、編集しなければならなくなった。
まず、前回紹介済みのTRIMまたは今回の紹介SUBSTITUTEを使って空白を全部取り 去る。
A列について
=TRIM(A1) または、 =SUBSTITUTE(A1," ",)
ここから更に"末"の場合は30に置き換える数式にする。
=SUBSTITUTE(TRIM(A1),"末",30) または、 =SUBSTITUTE(SUBSTITUTE(A1," ",),"末",30)
B列について
=TRIM(B1) または、 =SUBSTITUTE(B1," ",)
ここから更に数値として認識させるため、様々な方法を駆使した結果、
=TRIM(B1)+0 または、 =SUBSTITUTE(B1," ",)+0
これで数値として認識してくれた。数式は完了。 後は、マクロでの製作となった。ふう・・・。
システムから抽出するデータは、CSV形式でこのような編集が大変な状態で出で くることがあるのですが、なんといっても人の手が加わってない分、毎回同じ様 式で出てきます。数式も、どんなに複雑に作ってもそれは一度作ってしまえば変 更しなくて楽です。
|