одно общее решение в Excel для SUMIF() с несколькими условиями похоже на это (эта формула учитывает все случаи, в которых столбец A имеет значение в C1, а столбец B имеет значение в D1):Передача матрицы (?) В VBA в Excel
=SUMPRODUCT((A1:A9=C1)*(B1:B9=D1))
Теперь мне нужна функция, которая объединяет строки из строк, выполняющих несколько условий. Существует отличное решение для один условия на http://www.ms-office-forum.net/forum/showthread.php?t=273352
Я, однако, хочу проверить несколько условий - и, следовательно, использовать подпроизведение() трюк сверху. Моя проблема: как мне определить параметр в функции для получения массива? Это то, что я до сих пор:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Public Function CONCATIF(Kriterium, Inhalte)
Dim mydic As Object
Dim L As Long
Set mydic = CreateObject("Scripting.Dictionary")
For L = 1 To UBound(Kriterium)
If Kriterium(L, 1) = 1 Then
If Inhalte(L, 1) <> "" Then
mydic(L) = Inhalte(L, 1)
End If
End If
Next
CONCATIF = Join(mydic.items, vbCrLf)
End Function
Это прекрасно работает, если выбрать один столбцы для параметра 1. Но как только я включаю формулу продукта (как выше), только вариант/Double со значением 1 для Kriterium.
=CONCATIF(A1:A9; E1:E9) Works fine (if column A is 0/1 coded)
=CONCATIF((A1:A9=C1)*(B1:B9=D1); E1:E9) Does not work at all
Любые предложения? Спасибо!
Try для вызова функции, нажав __CTRL + SHIFT + ENTER__. Это работает для меня –
Я вообще не хочу называть SumProduct() - хочу написать функцию, которая делает что-то подобное, например SumProduct(). – BurninLeo
@simoco: Вы решили проблему !! Большое спасибо. Любая идея, почему SUMPRODUCT() не требует CRTL + SHIFT + ВВОД? – BurninLeo