2009年4月5日日曜日

第113回目 計算式の内部の関数値を求める

○第113回目 計算式の内部の関数値を求める

 これは、xxx=lookup(……)*c10という式があったとき、lookup(……)の結果を求めようとするものです。他には、SUM関数、SUMPRODUCT関数などが考えられます。


 これは、次のような流れで作ります。
 1.計算式中の該当する部分のみを抜き出す。上の例では、lookup(……)の部分を抜き出すということになります。
 2.その部分を計算式の形式に整えて、特殊な場所のセルに計算式として埋め込みます。
 3.そのセルには計算結果が出てきますので、その結果を変数に入れます。また、エクセルの外で使えるように、クリップボードに貼付けます。処理終了後、特殊な場所のセルをクリアします。
 4.計算式の内容一覧表の中に、該当する計算式とその結果を表示します。

 1.において
 最初の位置は簡単に取得できますが、後ろの位置は、いろいろな場合があるので、ちょっと工夫が必要です。現実には、それ以降のカンマの位置を求め、そこからそれ以降のカッコの閉じの位置を最後の位置としました。元にある数値が複雑な形式の場合は、参照の元となる変数の記述にカッコが使われる場合があるので、このようにしています。
 しかしながら、要素が三つあるので、二つ目のカンマ以降のカッコの閉じのほうがより正確でしょう。応用ですので各自チャレンジしてみてください。
 3.において
 セルに計算式を埋め込むのは簡単ですが、それをクリップボードに入れるのは若干注意が必要です。コピペを実際に行ってからではないとクリップボードにはいかないからです。当該セルに当該セルの内容をデータのみコピペしてしまい、その後、そのセルをクリアするというのがいいようです。変数値から直接クリップボードに入れる関数があればいいのですが、今のところわかりませんので、このようにしています。
 他の関数においても、それ専用に考えていけばいいと思います。すべてが一つのやり方ではできるとは思いませんので。

 このことにより、計算式の中の項目を数値に置き換えることがかなりできるようになります。計算式のデバックがより簡単になると思います。

0 件のコメント: