Два способа, о которых я могу думать ...
WAY 1
Напишите третью функцию, которая объединит массив со значением MINGE.Я создал образец, так как не знаю, что делают HLOOKUPRANGE и MINGE, но концепция та же.
SID () имитирует HLOOKUPRANGE в этом примере.Но все, что он делает в данный момент, это суммирует значения
Так что, если вы введете
=SID({1,2,3,4,5})
, это даст вам сумму 15. Теперь допустим, что мы хотели получить сумму
=SID({1,2,3,4,5,MINGE()})
где значение MINGE () равно 6. Вот как мы это сделаем
=SID(Unite({1,2,3,4,5},6))
Что даст вам 21. Этот код входит в модуль
Option Explicit
Dim TempAr() As Variant
Public Function Sid(headers() As Variant) As Variant
Dim temp As Long, i As Long
For i = LBound(headers) To UBound(headers)
temp = temp + headers(i)
Next i
Sid = temp
End Function
Public Function Unite(MyArray() As Variant, Vl As Variant) As Variant
Dim n As Long, i As Long
n = UBound(MyArray)
ReDim Preserve TempAr(n + 1)
For i = LBound(MyArray) To UBound(MyArray)
TempAr(i) = MyArray(i)
Next i
TempAr(n + 1) = Vl
Unite = TempAr
End Function
Если бы я применил то же самое к вашим функциям, то это выглядело бы примерно так
=HLOOKUPRANGE(UNITE({"Color", "Red", "Alpha"},MINGE(A4:Z4, INPUT_ALPHA_VALUE)), A1:Z30, SELECTED_INDEX)
WAY 2
Вы могли бы слегка изменить функцию HLOOKUPRANGE напринять дополнительные значения.Например, формула
= SUM ({1,2,3,4,5}, {6}) делает то же самое, что и выше в рабочей таблице.
Таким образом, вы можете изменить свойHLOOKUPRANGE () для
Public Function HLOOKUPRANGE(headers() As Variant, lookup_range As Range, _
row_index As Integer, Optional HeadersItem1 As Variant, _
Optional HeadersItem2 As Variant) As Variant
'~~> In the code add HeadersItem1 and HeadersItem2 to headers()
'~~> If they are not blank
End Function
ИСПОЛЬЗОВАНИЕ будет выглядеть следующим образом
=HLOOKUPRANGE({"Color", "Red", "Alpha"}, A1:Z30, SELECTED_INDEX,MINGE(A4:Z4, INPUT_ALPHA_VALUE)))
или
=HLOOKUPRANGE({"Color", "Red"}, A1:Z30, SELECTED_INDEX,MINGE(A4:Z4, INPUT_ALPHA_VALUE)),SELECTED_INDEX,MINGE(B4:B4, INPUT_ALPHA_VALUE)))