Столкнулся сегодня со странной математической ошибкой. Думаю функция СУММЕСЛИМН() на это повлияла...
Файл состоит из двух частей. В 1 находятся данные которые потом складываются во вторую часть по части кода (AVTM_xxx > AVTM). В обоих частях есть итоги, и есть сводные колонки-итоги (в файле выделены цветом). Так вот, Оказалось что при сложении во вторую часть, если данные в разных строках, то некоторые числа могут задваиваться при суммировании!!! Посмотрите коды AVMA и RAT0 (выделил красным). Задвоение во второй части на сумму 62579 (836+61743) ячейка С47. Я так думаю что данные правее колонки BL находятся в разных строках для этого кода и почему-то задваивается... Хотя итоги в обоих частях правильные. Если что непонятно описал - можно увидеть по формулам...
Файл-пример сделал из рабочего убрав лишнее. Не ожидал такого фокуса от EXCEL...
Доброго времени суток!
Столкнулся сегодня со странной математической ошибкой. Думаю функция СУММЕСЛИМН() на это повлияла...
Файл состоит из двух частей. В 1 находятся данные которые потом складываются во вторую часть по части кода (AVTM_xxx > AVTM). В обоих частях есть итоги, и есть сводные колонки-итоги (в файле выделены цветом). Так вот, Оказалось что при сложении во вторую часть, если данные в разных строках, то некоторые числа могут задваиваться при суммировании!!! Посмотрите коды AVMA и RAT0 (выделил красным). Задвоение во второй части на сумму 62579 (836+61743) ячейка С47. Я так думаю что данные правее колонки BL находятся в разных строках для этого кода и почему-то задваивается... Хотя итоги в обоих частях правильные. Если что непонятно описал - можно увидеть по формулам...
Файл-пример сделал из рабочего убрав лишнее. Не ожидал такого фокуса от EXCEL...ZorKon71
Получается в моём случае надо так: =ЕСЛИОШИБКА(СУММ(J1;V1;AH1;BH1;BL1);0)
Не думаю, что так надо делать.
В прошлой редакции формулы:
Код
=ЕСЛИОШИБКА(J1+V1+AH1+BH1+BL1;0)
функция ЕСЛИОШИБКА хоронила весь результат, пытаясь сложить пустой текст из ячейки BH1 (она оказалась не пустая, а именно с пустым текстом) с суммой остальных нормальных ячеек с числами.
В новой редакции формулы:
Код
=СУММ(J1;V1;AH1;BH1;BL1)
функция СУММ решает вопросы преобразования непустого текста в число 0 до сложения, поэтому она выдает вполне разумный результат - сумму четырех остальных нормальных ячеек.
По-хорошему прошлую редакцию нужно было бы записать с обработкой ошибки по каждому слагаемому, типа как-то так:
Но дело в том, что в ячейке BH1 - НЕТ ОШИБКИ, а есть вполне легитимный пустой текст. Ошибка же возникает при попытке выполнения операции сложения "+". Но я с трудом (и ужасом!) представляю себе формулу с ЕСЛИОШИБКА на каждую возможную пару слагаемых из пяти (т.е. не просто четырех последовательных знаков "+", как они идут в формуле, а знаков "+" в количестве числа сочетаний из 5 по 2).
И слава Богу, что есть функция СУММ, оставляющая за кадром все подобные переживания.
Теперь о сочетании ЕСЛИОШИБКА(СУММ. Вы, видимо, по инерции пытаетесь пристроить ЕСЛИОШИБКА и в новую формулу, думая, что так будет надежнее. Но, как уже сказано, ошибки, которые вы ожидали и пытались обрабатывать, теперь нивелированы функцией СУММ. Если же вдруг в ячейке BH1 возникнет настоящая ошибка, например, деление на 0 - #ДЕЛ/0!, то СУММ ее отобразит как ошибку, а ЕСЛИОШИБКА(СУММ скроет за общим значением 0, и вы опять будете выяснять, из-за какого из пяти слагаемых это произошло - медвежья услуга!
С ЕСЛИОШИБКА при СУММ, скорее, имеет какое-то право на жизнь такая редакция формулы:
Но подобным образом, пардон, "перебдевать" сразу на все случае жизни... Не знаю, сами решайте! Можно добавлять обработку ошибок по мере их устойчивого возникновения. Возникает в ячейке BH1 деление на 0 - ну, добавим для нее (и только для нее!) обработку:
Код
=СУММ(J1;V1;AH1;ЕСЛИОШИБКА(BH1;0);BL1)
Но это всё, возвращаясь в русло исходного вопроса, лишь мои фантазии с делением на 0. Если же максимальная "ошибка" - не слишком удобный текст в ячейке, который вполне логично превращается в 0 при суммировании, то - обычная формула с СУММ без общей ЕСЛИОШИБКА:
Получается в моём случае надо так: =ЕСЛИОШИБКА(СУММ(J1;V1;AH1;BH1;BL1);0)
Не думаю, что так надо делать.
В прошлой редакции формулы:
Код
=ЕСЛИОШИБКА(J1+V1+AH1+BH1+BL1;0)
функция ЕСЛИОШИБКА хоронила весь результат, пытаясь сложить пустой текст из ячейки BH1 (она оказалась не пустая, а именно с пустым текстом) с суммой остальных нормальных ячеек с числами.
В новой редакции формулы:
Код
=СУММ(J1;V1;AH1;BH1;BL1)
функция СУММ решает вопросы преобразования непустого текста в число 0 до сложения, поэтому она выдает вполне разумный результат - сумму четырех остальных нормальных ячеек.
По-хорошему прошлую редакцию нужно было бы записать с обработкой ошибки по каждому слагаемому, типа как-то так:
Но дело в том, что в ячейке BH1 - НЕТ ОШИБКИ, а есть вполне легитимный пустой текст. Ошибка же возникает при попытке выполнения операции сложения "+". Но я с трудом (и ужасом!) представляю себе формулу с ЕСЛИОШИБКА на каждую возможную пару слагаемых из пяти (т.е. не просто четырех последовательных знаков "+", как они идут в формуле, а знаков "+" в количестве числа сочетаний из 5 по 2).
И слава Богу, что есть функция СУММ, оставляющая за кадром все подобные переживания.
Теперь о сочетании ЕСЛИОШИБКА(СУММ. Вы, видимо, по инерции пытаетесь пристроить ЕСЛИОШИБКА и в новую формулу, думая, что так будет надежнее. Но, как уже сказано, ошибки, которые вы ожидали и пытались обрабатывать, теперь нивелированы функцией СУММ. Если же вдруг в ячейке BH1 возникнет настоящая ошибка, например, деление на 0 - #ДЕЛ/0!, то СУММ ее отобразит как ошибку, а ЕСЛИОШИБКА(СУММ скроет за общим значением 0, и вы опять будете выяснять, из-за какого из пяти слагаемых это произошло - медвежья услуга!
С ЕСЛИОШИБКА при СУММ, скорее, имеет какое-то право на жизнь такая редакция формулы:
Но подобным образом, пардон, "перебдевать" сразу на все случае жизни... Не знаю, сами решайте! Можно добавлять обработку ошибок по мере их устойчивого возникновения. Возникает в ячейке BH1 деление на 0 - ну, добавим для нее (и только для нее!) обработку:
Код
=СУММ(J1;V1;AH1;ЕСЛИОШИБКА(BH1;0);BL1)
Но это всё, возвращаясь в русло исходного вопроса, лишь мои фантазии с делением на 0. Если же максимальная "ошибка" - не слишком удобный текст в ячейке, который вполне логично превращается в 0 при суммировании, то - обычная формула с СУММ без общей ЕСЛИОШИБКА:
Я подозреваю, что там надо складывать столбцы, которые можно выбрать, исходя из заголовка столбца (шапки таблицы), тогда можно приспособить СУММЕСЛИ(). Но шапку мы не видим, поэтому и решение такое себе)
Я подозреваю, что там надо складывать столбцы, которые можно выбрать, исходя из заголовка столбца (шапки таблицы), тогда можно приспособить СУММЕСЛИ(). Но шапку мы не видим, поэтому и решение такое себе)Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Я подозреваю, что там надо складывать столбцы, которые можно выбрать, исходя из заголовка столбца (шапки таблицы)
Не... левая часть просто складывает одинаковые столбцы справа. Вот только правая часть наполняется в соответствии с заголовками. Потому там и возможны результаты с ошибками. Хотя я уже задумался уже там исправлять ошибки к 0. Что бы слева убрать проверку ЕСЛИОШИБКА(). Проблема то основная в том что из строк AVTM_xx1, AVTM_xx2, AVTM_xx2 получается задвоение при сложении в одну строку AVTM. Не ожидал. Впервые встретился с таким.
Я подозреваю, что там надо складывать столбцы, которые можно выбрать, исходя из заголовка столбца (шапки таблицы)
Не... левая часть просто складывает одинаковые столбцы справа. Вот только правая часть наполняется в соответствии с заголовками. Потому там и возможны результаты с ошибками. Хотя я уже задумался уже там исправлять ошибки к 0. Что бы слева убрать проверку ЕСЛИОШИБКА(). Проблема то основная в том что из строк AVTM_xx1, AVTM_xx2, AVTM_xx2 получается задвоение при сложении в одну строку AVTM. Не ожидал. Впервые встретился с таким.ZorKon71