前回の、RANGE関数をさらに拡張し組込むのQL_INIT関数を使ってテーブル評価関数を定義します。
抽出元のテーブルの2次元配列の行数と、評価で返される二次元配列の行数は一致しなければなりません。
タイトル行も残すので、一行目は必ず数字の1です。
Function EV(V)
EV = Evaluate(CC("1*(", V, ")"))
End Function
Function EVT(V, Optional S = "") ' evaluate Table
On Error Resume Next
S = QL_INIT(EV(V), "1")
S(0, 1) = 1 ' タイトル行
EVT = S
End Function
' CC は CONCAT互換関数です。
Function CC(ParamArray AR())
On Error Resume Next
Dim S: S = ""
Dim I: For I = 0 To UBound(AR)
S = S & AR(I)
Next I
CC = S
End Function
上記関数を使用して、
(BA2) =FILTER(QL_INIT("M02N_[日付,出庫,済,依頼]"),EVT("M02N_[済]=0"))
当然、複数条件も可能です。
(BF2) =FILTER(QL_INIT("M02N_[日付,出庫,済,依頼]"),EVT("(M02N_[済]=0) * (M02N_[出庫]>100)"))