|
つんさん、こば〜
>Function mySub2(arg_r As Range) As String
>Function mySub(argR1 As Range, arg_str As String) As Long
これは完璧です。でも‥‥‥
>これで、「=mysub(A5,mysub2(B1:B4))」という形で使ってみました。
という使い方では、2つに分けた意味がありません。
ひとつの関数で結合&分解しているのと同じ負荷が掛かります。
つんさんが最初に作ったのと同じ様に個々のセルで毎回毎回、対象範囲を
処理してしまいますから‥‥‥
>集計表ですが、計算対象範囲は、1列430行で、
>計算式を入れる範囲は、16行×48列=768セル
768セル×参照先430セル⇒33万回
先ず、作業「行」をひとつ用意して、その行の各セルに例えば
[B10] =mysub2(B1:B4)
といった風にして、『その列の文字列合体』結果を出します。
それで、集計結果のセルには
=mysub(A5, $B$10 )
とします。
こうすると、元データの1列を舐める処理は、データの列数分の回数だけで済みます
集計セルからは、[B10]などの単一セルを参照するだけなので、集計セルの数と
同じ回数しか参照しませんね。
>集計表ですが、計算対象範囲は、1列430行で、
>計算式を入れる範囲は、16行×48列=768セル
mysub2 ‥‥‥ 48×430⇒20640
mysub ‥‥‥ 768×1 ⇒ 768
(計) 21408回
セル参照処理を31万回も省けます。
|
|