2016-12-16 3 views
0

У меня есть формула, как этотPass массива превосходят функции

SUMIFS(CURR_COUNT;MDL;"ALT";MDLCD;{13117;13417};RG;"44";CURR_OPTION_GROUP;"**") 

И мне нужно разбить строку из ячейки и передать массив в формулу вместо {13117;13417} я могу разобрать строку в VBA, например, или, может быть, в Excel но я не знаю, как передать его формуле.

Я написал этот мир кода в VBA

Function GetArray(str) As Variant 
    GetArray = Split(str, ",") 
End Function 

И добавить к формуле

CURR_COUNT;MDL;"ALT";CURR_MDLCD;GetArray(BF22);RG;"44";CURR_OPTION_GROUP;"**") 

Но использовать только Елки элемент массива.

+0

Вам нужно обернуть SUMIFS в SUM (...) .. –

+0

Я сделал это, но это мне не помогло 'SUM (SUMIFS (CURR_COUNT; MDL;" ALT "; MDLCD; GetArray (BF22); RG;" 44 "; CURR_OPTION_GROUP;" ** "))' – mojo

+0

В принципе Мне нужно передать данные в критерии суммирования. Но это не работает. – mojo

ответ

0

вы можете создать индивидуальные функции для выполнения этого, например,

Function rangetoarray(rng as range) 
    i="" 
    For each cell in rng 
      i=i&";"&cell 
    Next 
    rangetoarray=i 
End Function 

, а затем использовать это в вас SumIf функции и проверить, является ли его работы или нет

+0

Точка в том, что у меня есть данные на одной ячейке, а не в диапазоне. И данные ячейки = "13117,13417", например. Мне нужно разобрать эти данные и установить его в формулу вместо жестко закодированных данных. – mojo

0

Введите эту формулу FormulaArray:

=SUM(SUMIFS(CURR_COUNT;MDL;"ALT";MDLCD;GetArray(BF22);RG;"44";CURR_OPTION_GROUP;"**")) 

Введенные формулыArraya вводятсяCTRL + SHIFT + ENTERодновременно, для того, чтобы сделать как вы увидите{и}вокруг формулы, если введены правильно

Смежные вопросы