第18回目 凝った計算式の作り方1
たまに、単純にコピーしたのでは複写できない計算式があります。
例えば、横に展開されている合計を、縦にするというようなものです。
コピーの縦横変換で出来るにはできるのですが、操作が入ってしまい、自動化が出来ればと思うものです。
このような用途はたまに出てきます。
その1 縦のものを横にする。
BA5から縦に合計が40個並んでいます。これをB列の50行目から、横に展開します。
式は簡単なのです。B50に"=BA5"というように計算式を入れていけばいいのです。
このような場合工夫はないものでしょうか。
BA5の5のところを+1していけばいいのです。
B51に文字として、xxx=BA といれます。
B52に5といれます。
B52から横に+1していきます。C52は6になり、D52は7になります。
B53にこれらの文字を結合します。=$B$51 & B52 とし、これを横にコピーします。
すると、計算結果は、xxx=BA5、xxx=BA6、xxx=BA7…というようになります。
50行目にコピーします。値のみです。
ここで頭の"xxx"をとれば、求める数式になるのです。
これは、置き換えで出来ます。(うまく数式にならないことがあります。原因はよくわかりません。操作を戻して、"50行目にコピーします。値のみです"の後に、同じ場所に、更に文字を"罫線の除くすべて"を指定してコピーしてからするとうまくいきます)
この考え方は、変数的な要素を入れて文字列を結合し、文字列を数式に戻すということです。
その2 横のものを縦にする。
50行目に合計が横にB列から40個並んでいます。これをBA列の5行目から、縦に展開します。
今度は数字ではなく、文字記号を変数にする必要があります。B,C,D,E…と変化させていき、文字列を結合すればいいのです。
では、どのように列記号の文字を作っていけばいいのでしょうか。
簡単です。配列変数にA(1列)からIV(256列)までを入れていき、配列の番号と列記号を対応させておけばいいんです。
IVは、"I" & "V" ですので、工夫すればすぐ出来ます。力技でもそれなりの時間で出来ます。
他にもいろいろな工夫があると思います。

0 件のコメント:
コメントを投稿