この配列数式は、ctrl sht enter を使用して入力すると問題なく機能します。
={IF(ROWS(A$7:A7)>A$4,"",IF(SUMPRODUCT((consumers=$A$6)*(data=A$5)*(data=A$5<>""))>0,INDEX
(employees,SMALL(IF(((consumers=$A$6)*(data=A$5)*(data=A$5<>"")),COLUMN(Data!$B$2:$AC$2)-COLUMN
(Data!$B$2)+1),ROWS(A$7:A7)))))}
私はいくつかの調査を行い、VBAでこの式を使用したい場合はR1C1表記を使用する必要があることを読みました...だから、これは私がこれまでに持っているものです:
Sub frmarry()
Range("y28").Select
Selection.FormulaArray = "=IF(ROWS(R28C25:R28C25)>R26C25,"",IF(SUMPRODUCT((consumers=R27C25)*
(data=R24C7)*(data=R24C7<>""))>0,INDEX(staff,SMALL(IF(((consumers=R27C25)*(data=R24C7)*
(data=R24C7<>"")),COLUMN(Data!$R2C2:$R2C29)-COLUMN(Data!R2C2)+1),ROWS(R28C25:R28C25)))))"
End Sub
ここで、ルーチンを実行すると、次のフラグが表示されます。
'unable to set the FormaulaArray property of the Range class'
デバッグを選択すると、上記の配列式が強調表示されます。
Excel の設定を使用して数式を R1C1 表記に設定したところ、変換で何かが間違っていた可能性があります。私は R1C1 表記法に精通していないので、R1C1 に詳しい人がこの問題を解決するのに役立つか、この VBA の問題をトラブルシューティングできるように指示してくれることを期待していました。
ありがとう。