Сумма массива чисел, разделенных запятыми в 1 ячейке, только если есть хотя бы 5 элементов - PullRequest
0 голосов
/ 23 мая 2018
  1. Мне нужна сумма массива элементов в одной и той же ячейке.
  2. Они разделены запятыми.
  3. Если имеется <5 элементов, тогда НЕ вычисляйтесумма этой ячейки. </li>

Пример:

cell 1A: 2,1,2,3,1  cell 1B: 9 (the sum)

cell 2A: 1, 2       cell 2B: -- (nothing as there are less than five elements).

Я пытался объяснить себя.Надеюсь, это понятно.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Вы можете добиться этого, используя менеджер имен ( Ctrl + F3 ), чтобы обмануть Excel при чтении списка в виде массива. Я назвал свой именованный диапазон "valueArray":

=EVALUATE("{"&SUBSTITUTE(Sheet1!$A2," ","")&"}")

Обратите внимание, что нет абсолютной ссылки на аргумент строки, и он начинается в той же строке, что и данные (для правильного выравнивания первого использования массива).

Вы можете просто сослаться на Sheet1!$A2, непосредственно заключенный в EVALUATE() и фигурные скобки, но SUBSTITUTE() использовался, чтобы гарантировать, что данные не будут скомпрометированы пробелами.

Name Manager

Теперь, когда у вас есть массив, вы можете с лёгкостью выполнять на нем свою логику, если выдается ошибка или ячейка пуста, когда вы ожидаете результат, вероятно, одинзначения не были проанализированы как число (возможно, там есть буква или два):

=IF(COUNT(valueArray)>4,SUM(valueArray),"")

Example

0 голосов
/ 23 мая 2018

Я задал похожий вопрос здесь:

Старый вопрос

Но у вас есть дополнительное требование, поэтому попробуйте выполнить следующую пользовательскую функцию:

Public Function SumWithin(s As String) As Variant
    If s = "" Then
        SumWithin = ""
        Exit Function
    End If

    If InStr(1, s, ",") = 0 Then
        SumWithin = ""
        Exit Function
    End If

    arry = Split(s, ",")
    If UBound(arry) < 4 Then
        SumWithin = ""
        Exit Function
    End If

    For Each a In arry
        SumWithin = SumWithin + CDbl(a)
    Next a
End Function

Некоторые примеры:

enter image description here

При таком подходе исключаются все дополнительные ячейки, необходимые для типичного текста в столбцах Подход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...