メモです。
エクセルにあって欲しい関数・・ってか、何故無いの?
例えば、セルA1に「1+1」と入力してセルB1にその答えを表示させたい。
さらに、セルA1の式を変更したらセルB1の答えも変更されている。
・・と云う関数ってメッチャ欲しいし、エクセル様に その程度の関数が無い!って云うのが信じられないですよねぇ。
・・・ワタチだけ?
で、日々の業務はどうしているかと云うとフリーの文字列計算関数(アドイン、マクロ)のお世話になっています。
ただねぇ・・時代に逆行したがる行政様は、これらが作るマクロモジュールを嫌がられる傾向にあります。
それで、色々ネット検索してみるとマクロモジュールを作らずに同じようなことが出来る方法がありましたので紹介したいと思います。
・・使い勝手としては、前述のTEXTCALC,Calcと比べるとかなり見劣りはしますね(・∀・)
-----
使うのはマクロ関数EVALUATEと名前の定義
EVALUATEは、「渡された文字列を計算すべき処理なのだと認識する」ものらしいどぇす。
・・詳しい事は分かりません(゚∀゚)
「名前の定義」でEVALUATEが参照する範囲を決めて計算させるようです・・
下図ではセルE3でセルD3の文字式を参照して答えを返しています。
では、作ってみましょう
名前の定義で「EVALUATE」が参照する範囲を決めます。
CALL1って名前にしました
一つ左隣りを参照って感じ(笑)
範囲は「ブック」よりも「シート」の方が汎用性があるようです。
セルB2にポインタを置いて左隣のA2を参照します(相対参照)
「=EVALUATE(Sheet1!A2」
セルB2にセルA2の答えが返ってきました(^o^)
相対参照にしているので、だらーーっと下方向にドラッグするとB列にそれぞれの答えが返っています。
式は、こんな感じ
・・CALL1ばかりで本当にそれぞれ参照しているの??
って不安に駆られましたので中身をみてみました。
OKです、それぞれ ちゃんと左隣を参照していました(^o^)
あとは、roundで丸め処理を行えば計算書として使えそうですね。
---
まだまだ使ってみたばかりなので分からないところがワンサカありますが、やっぱ・・エクセルに この関数があったほうが良いですねぇ(゚∀゚)
・・この声はマイクロソフトに届きますやろか?
参考までに・・ネットでググったページはこちらです
↓
ありがとうございます。
