Суть: считает среднее для 3 значений из сводной таблицы. Если значения в сводной таблице нет, то формула iferror (еслиошибка) должна подставить пустое значение, этим мы избегаем ошибки #REF! Однако формула считается неправильно. Конкретно в этом примере, нет второго значения. В итоге формула приобретает вид average(106,"",108) и возвращает ошибку #VALUE. Если вместо "" в исходной формуле iferror ставить число (например, 0), то формула работает. Но среднее значение становится неверным.
ВОПРОС: Почему iferror оставляет кавычки, а не пустое значение? Кто-нибудь с таким сталкивался?
К сожалению, не получается приложить файл, получается больше 100 кб при любой сводной таблице.
Суть: считает среднее для 3 значений из сводной таблицы. Если значения в сводной таблице нет, то формула iferror (еслиошибка) должна подставить пустое значение, этим мы избегаем ошибки #REF! Однако формула считается неправильно. Конкретно в этом примере, нет второго значения. В итоге формула приобретает вид average(106,"",108) и возвращает ошибку #VALUE. Если вместо "" в исходной формуле iferror ставить число (например, 0), то формула работает. Но среднее значение становится неверным.
ВОПРОС: Почему iferror оставляет кавычки, а не пустое значение? Кто-нибудь с таким сталкивался?
К сожалению, не получается приложить файл, получается больше 100 кб при любой сводной таблице.
Если поставить "0", то считать будет, но среднее значение получится неверным. Модератор предложил написать формулы через FX. Попробуем. [moder]Я предложила Вам исправить Ваш первый пост, заключив написанную там формулу в теги с помощью кнопки fx[/moder] А, жаль=(
Также примечание: Интересен тот факт, что исходная формула работает неправильно, однако если формулу разбить на составные части и каждую часть поместить в отдельную ячейку, то всё будет работать.
Если поставить "0", то считать будет, но среднее значение получится неверным. Модератор предложил написать формулы через FX. Попробуем. [moder]Я предложила Вам исправить Ваш первый пост, заключив написанную там формулу в теги с помощью кнопки fx[/moder] А, жаль=(
Также примечание: Интересен тот факт, что исходная формула работает неправильно, однако если формулу разбить на составные части и каждую часть поместить в отдельную ячейку, то всё будет работать.dewre
Сообщение отредактировал dewre - Понедельник, 16.11.2015, 12:48
Интересен тот факт, что исходная формула работает неправильно, однако если формулу разбить на составные части и каждую часть поместить в отдельную ячейку, то всё будет работать.
Думаю, что это от того, что в этом случае функция СРЗНАЧ воспринимает диапазон ячеек как массив.
Сравните: формула
Код
=СРЗНАЧ(106;"";108)
дает ошибку #ЗНАЧ!, а формула со скобками массива
Код
=СРЗНАЧ({106;"";108})
даёт правильный ответ 107. Неприятность состоит в том, что мы, увы, не можем подставить в массив констант (внутрь фигурных скобок) выражения или ссылки на ячейки.
Если не боитесь макросов, то простейшая пользовательская функция-оболочка вокруг Average решает проблему
Код
=СРЗНАЧпольз(106;"";108)
и дает правильный ответ 107. Работает и дает 107 даже в следующем "осложненном" случае :)
Интересен тот факт, что исходная формула работает неправильно, однако если формулу разбить на составные части и каждую часть поместить в отдельную ячейку, то всё будет работать.
Думаю, что это от того, что в этом случае функция СРЗНАЧ воспринимает диапазон ячеек как массив.
Сравните: формула
Код
=СРЗНАЧ(106;"";108)
дает ошибку #ЗНАЧ!, а формула со скобками массива
Код
=СРЗНАЧ({106;"";108})
даёт правильный ответ 107. Неприятность состоит в том, что мы, увы, не можем подставить в массив констант (внутрь фигурных скобок) выражения или ссылки на ячейки.
Если не боитесь макросов, то простейшая пользовательская функция-оболочка вокруг Average решает проблему
Код
=СРЗНАЧпольз(106;"";108)
и дает правильный ответ 107. Работает и дает 107 даже в следующем "осложненном" случае :)
Вместо "" подставьте ссылку на заведомо пустую ячейку. =СРЗНАЧ(106;$XX$1;108)
Интересное замечание. НО! Нам-то нужна не просто ссылка на "сферическую ячейку в вакууме", а корректная обработка конструкции ЕСЛИОШИБКА. И вот в составе конструкции ЕСЛИОШИБКА(...;$XX$1) наша пустая ячейка превратится в 0, который уже будет влиять на среднее:
Код
=СРЗНАЧ(106;ЕСЛИОШИБКА(НД();$XX$1);108)
вместо ожидаемых 107 вернет "неправильное" значение 71,33, что равносильно
Вместо "" подставьте ссылку на заведомо пустую ячейку. =СРЗНАЧ(106;$XX$1;108)
Интересное замечание. НО! Нам-то нужна не просто ссылка на "сферическую ячейку в вакууме", а корректная обработка конструкции ЕСЛИОШИБКА. И вот в составе конструкции ЕСЛИОШИБКА(...;$XX$1) наша пустая ячейка превратится в 0, который уже будет влиять на среднее:
Код
=СРЗНАЧ(106;ЕСЛИОШИБКА(НД();$XX$1);108)
вместо ожидаемых 107 вернет "неправильное" значение 71,33, что равносильно