Excel Average - Подсчет количества переменных - PullRequest
0 голосов
/ 19 ноября 2018

Я использую среднюю функцию excel, чтобы получить среднее значение ряда цен на отели в разных городах Европы.

=average(21,42,63,84,105)

Я бы хотел посчитать количество переменных в каждой средней функции (например, в приведенном выше примере 5). Данные удаляются с веб-сайтов, поэтому они представлены в формате выше, а не помещаются в отдельные ячейки.

Есть ли способ сделать это, не вынимая переменные, помещая их в ячейку, а затем разделяя ячейки с помощью текста на столбцы?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Я фанат использования UDF, так что вот альтернативный метод.

Для этого вы можете создать пользовательскую пользовательскую функцию (UDF).Просто разделите функцию по разделителю и получите свой номер из UBOUND().

Public function getNumArgs(inputRng as range) as long

    'First check that you are actually looking at a formula
    If Left(inputRng.Formula, 1) <> "=" Then
        getNumArgs = False
        exit function
    End If

    getnumargs = ubound(split(inputrng.formula, ",")) + 1

end function

. Вы добавите 1, потому что VBA использует базу 0.

Затем вы будете использовать свойПользовательский UDF так же, как и любая другая формула рабочего листа:

=getNumArgs(A1)

Самое большое преимущество использования UDF заключается в том, что вам не нужно запоминать сложную формулу.

0 голосов
/ 19 ноября 2018

Вы можете превратить ваше уравнение в строку, используя FORMULATEXT(), а затем определить количество усредняемых значений, посчитав количество запятых в вашей строке (что относится к вашему окончательному ответу на Total Commas + 1 = Total Values


Первая часть уравнения подсчитывает длину символа с запятыми. Вторая часть подсчитывает длину символа без запятых. Разница заключается просто в количестве запятых.добавьте единицу, поскольку ваше последнее значение не сопровождается запятой

=LEN(FORMULATEXT(A1))-LEN(SUBSTITUTE(FORMULATEXT(A1),",",""))+1

Предполагается, что ваша средняя формула находится в ячейке A1

...