コード的にはこれはとても単純に思えますが、それでも#VALUEで立ち往生しています。
配列を引数として使用するカスタムExcel関数を作成しました。これは、次のように使用するとそれ自体が正常に機能します。= countArray({3,5})は2になります(説明のために、実際の数式は異なります)。
ただし、引数として使用したい実際の配列は別のセルに含まれています(例:= {3,5})。そのため、配列を直接含めるのではなく、引数として使用したい配列を含むセルへの参照を使用して、関数を= countArray(A1)として呼び出したいので、1つと同じ式。
これを行う方法はありますか?
Cell formulas:
A1: ={3,5}
B1: =countArray({3,5})
B2: =countArray(A1)
Function countArray(arr()) As Integer
countArr = UBound(arr)
End Function
B1の式は機能しますが、B2の式は機能しません。A1の内容については、このように入れると、セルの値は3しか表示されません。このため、セルには実際には配列が含まれていると思います。そうではありませんか?セルに配列を値として含める(またはこれらを他のセルから参照させる)には、区切り文字列として格納して配列に変換する必要がありますか?
編集:数年経ちましたので、この質問を投稿してから試した道路について少しコメントできるかもしれません。最初は、セル内のJSON構造を操作する方向に進んでみましたが、ある程度の成功を収めました。それ以来、最近のPower Query(Excel 2016がネイティブに統合されているため)は、その「セル」で(とりわけ)リスト構造をサポートし、実際には関連する関数をサポートしていることもわかりました。私はこれらのどれももうあまり使用していません(今はSparkにもっと興味があります)が、これが他の人がこの質問に出くわすのを助けるかもしれないことを願っています。