2010年5月3日月曜日

第144回目 ユーザー関数(条件付SUMPRO関数、その3)

○第144回目 ユーザー関数(条件付SUMPRO関数、その3)

 パラメータ='D20,A42,A20,42,B20,C21のコピーの問題です。
 これをコピーしたら、計算式のように座標が変わってほしいということです。
 考えてみましたら、これはそれほど難しくないのです。既存のマクロで何とかなります。
 その前にパラメータの項目を修正しておきます。
 パラメータ=/D19,D20,A20,42,B20,C21として
 E19にこのパラメータを入れておきます。
 関数式を入れるのは、D21にします。
 D19,D20の数値を入れ替えることによって、答えが任意に求められることになります。
 パラメータと関数式が、D19:E21の中に収まることになります。 
 このセットをコピーしていきます。

 参照する表がかわらないとすると、パラメータの中で動くのは、D19、D20の二つになります。
 そこでパラメータそのものを、/D19,D20,$A$20,42,$B$20,$C$21 とします。(パラメータをこう変えると、関数式の中に、頭の/を取る処理を加えればよろしいです)
 
 1.まず、パラメータを、複数項目の置換えで、/を=、,を+にし、次のようにします。
 =D19+D20+$A$20+42+$B$20+$C$21
 2.関数式を含めたセットを任意の場所にコピーします。そうすれば座標が動きます。
 3.次に全体を指定して、複数項目の置き換えをし、元の姿に戻します。 = は/、+は,に置換えです。

 置換え文字 
  ┏━━┳━━┳━━┓
  ┃,  ┃+  ┃  ┃
  ┣━━╋━━╋━━┫
  ┃/  ┃=  ┃/  ┃
  ┣━━╋━━╋━━┫
  ┃  ┃+  ┃,  ┃
  ┗━━┻━━┻━━┛
 と3列3行に置換文字を入れておけば便利でしょう。
 最初の置換えは、先頭の2行2列を指定し、最後の置換えは、2行2列目から3行3列目を指定します。(計算式なので計算式の要件を満たしていなければ、=絡みの置換えが無効となる)

0 件のコメント: