|
▼VBA初心者 さん:
こんばんは。
>>どんな数式を配列として、設定したのか具体的な例を挙げて下さい。
>
>申し訳ありません。
>具体的な例を挙げようと思います。
うーん、↓これだけでは下の数式の真意がはっきりとはわかりません・・。
実例を必ず出してくださいね!!
下の数式の場合は、longDatCountが仮に12だったとき、
dat!B3:B12に例としての数値の明記
セルB2の例としての数値を明記
セルE2の例としての数値を明記
dat!E3:E12の例としての数値の明記
dat!L3:L12の例としての数値の明記
これらの数値を明確にして、結果xxxという数値がほしい
でも、「=xxxx」という数式では、「xxxx」という結果しか返ってこない・・・。
というような記述をしてほしかったのですが・・・・。
で、
>
>該当するRangeオブジェクトに以下のように
>プロパティを設定しています。
>
>FormulaArray = "=VLOOKUP(E2,IF(dat!$B$3:B$" & longDatCount & "=B2,dat!$E$3:L$" & longDatCount & "),8,FALSE)"
・仮にシート名「dat」のセルB3〜B12に1〜10という数値が入っていたとしましょう!!
・又、シート名「dat」のセルE3〜E12には、11〜20という数値が入っていたとしましょう!!
・さらにシート名「dat」のセルL3〜L12には、21〜30という数値が入っていたとしましょう!!
新規ブックのひとつのシートのシート名を「dat」というシート名を付けて、上記のようにセルに数値を入れてください。
・ここでシート名「dat」以外のシートをアクティブにして下さい。
このシートのセルB2に「3」をセルE2に「13」を入力した後に以下のコードを
実行してみて下さい。
'===============================
Sub test()
longDatCount = 12
With Range("c3")
.FormulaArray = "=VLOOKUP(E2,IF(dat!$B$3:B$" & longDatCount & "=B2,dat!$E$3:l$" & longDatCount & "),8,FALSE)"
End With
End Sub
セルC3には、「23」が表示されますよね?
VBA初心者 さんの記述どおりにすると、それらしい結果が出てきますけどね!!
同じ結果は、
'======================================================
Sub test2()
longDatCount = 12
With Range("c3")
.Formula = "=sumproduct((dat!$B$3:B$" & longDatCount & _
"=B2)*(dat!$e$3:e$" & longDatCount & _
"=e2)*(dat!$l$3:l$" & longDatCount & "))"
End With
End Sub
なんて方法でも出すことが出来ます。
VBA初心者 さんの投稿で、私に記述できるのはここまでです。
私の解釈が違っていたのなら、さらに詳細を記述して下さい。
|
|