Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/СУММПРОИЗВ с вложенной ф-ей LOG как исключить нули - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
СУММПРОИЗВ с вложенной ф-ей LOG как исключить нули
Misanthrope Дата: Пятница, 21.11.2014, 12:24 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, вопрос довольно специфичный, не уверен что могу даже верно сформулировать его для поиска на вашем необъятном форуме.

Задача - расчет энтропии лейкоцитарной формулы по адаптированной формуле Шеннона для неполной группы показателей.

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

Целевая формула в текстовом виде выглядит следующим образом

h= H/Hmax

H= - Cумма Ai/100 x log2 Ai/100
Hmax = log2 n

h- относительная энтропия
H - энтропия
Hmax - предельная энтропия

Ai - процентное содержание группы лейкоцитов

n - количество групп лейкоцитов. В идеале должно быть 6, в исследовании доступно 5. ЕСЛИ какая либо из групп имеет значение A=0, то и предельную энтропию приходится уменьшать на одну группу и, собственно, считать относительную величину нежели строить выводы на базе непосредственно энтропии.

Проблема возникла при расчете H
моя текущая формула выглядит следующим образом
Код
=-СУММПРОИЗВ((A2:E2)/100;LOG((A2:E2)/100;2))/LOG(5;2)


источник проблемы LOG((A2:E2)/100;2)) если исходные данные содержат 0, расчет выдает ошибку ибо нелья посчитать логарифм нуля.

как можно исключить из диапазона ячейки содержащие ноль?

В конкретной подвыборке такой случай всего один, но в дальнейшем нули будут возникать повсеместно.
К сообщению приложен файл: 5801704.xls (31.0 Kb)


Сообщение отредактировал Misanthrope - Пятница, 21.11.2014, 12:34
 
Ответить
СообщениеДобрый день, вопрос довольно специфичный, не уверен что могу даже верно сформулировать его для поиска на вашем необъятном форуме.

Задача - расчет энтропии лейкоцитарной формулы по адаптированной формуле Шеннона для неполной группы показателей.

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

Целевая формула в текстовом виде выглядит следующим образом

h= H/Hmax

H= - Cумма Ai/100 x log2 Ai/100
Hmax = log2 n

h- относительная энтропия
H - энтропия
Hmax - предельная энтропия

Ai - процентное содержание группы лейкоцитов

n - количество групп лейкоцитов. В идеале должно быть 6, в исследовании доступно 5. ЕСЛИ какая либо из групп имеет значение A=0, то и предельную энтропию приходится уменьшать на одну группу и, собственно, считать относительную величину нежели строить выводы на базе непосредственно энтропии.

Проблема возникла при расчете H
моя текущая формула выглядит следующим образом
Код
=-СУММПРОИЗВ((A2:E2)/100;LOG((A2:E2)/100;2))/LOG(5;2)


источник проблемы LOG((A2:E2)/100;2)) если исходные данные содержат 0, расчет выдает ошибку ибо нелья посчитать логарифм нуля.

как можно исключить из диапазона ячейки содержащие ноль?

В конкретной подвыборке такой случай всего один, но в дальнейшем нули будут возникать повсеместно.

Автор - Misanthrope
Дата добавления - 21.11.2014 в 12:24
buchlotnik Дата: Пятница, 21.11.2014, 12:41 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Например, так (массивная):
Код
=-СУММПРОИЗВ((A10:E10)/100;ЕСЛИ(ЕОШ((LOG((A10:E10)/100;2)));0;LOG((A10:E10)/100;2)))/LOG(5;2)
К сообщению приложен файл: _5801704.xls (35.5 Kb)
 
Ответить
СообщениеНапример, так (массивная):
Код
=-СУММПРОИЗВ((A10:E10)/100;ЕСЛИ(ЕОШ((LOG((A10:E10)/100;2)));0;LOG((A10:E10)/100;2)))/LOG(5;2)

Автор - buchlotnik
Дата добавления - 21.11.2014 в 12:41
Pelena Дата: Пятница, 21.11.2014, 12:54 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19392
Репутация: 4537 ±
Замечаний: ±

Excel 365 & Mac Excel
Похожий вариант, тоже массивная
Код
=-СУММПРОИЗВ((A15:E15)/100;ЕСЛИ(A15:E15>0;LOG((A15:E15)/100;2);0))/LOG(5;2)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПохожий вариант, тоже массивная
Код
=-СУММПРОИЗВ((A15:E15)/100;ЕСЛИ(A15:E15>0;LOG((A15:E15)/100;2);0))/LOG(5;2)

Автор - Pelena
Дата добавления - 21.11.2014 в 12:54
Misanthrope Дата: Пятница, 21.11.2014, 14:21 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
buchlotnik, спасибо за ответ, впервые столкнулся с формулой ЕОШ. Можете в кратце пояснить её работу в вашем олгаритме?

Если я все верно понимаю:
1) Функция ЕОШ отсматирвает ряд где расчитана формула логарифма для каждой ячейки
2) находит те ячейки где расчет произошел с ошибкой
3) таким образом выполняется уловие "истина" и ячейке с ошибкой присваивается значение ноль?

и опять же это работает только в массиве

Pelena, С разных сторон писал точно такую же поправку к формуле как Ваша, но она не работала до тех пор пока не ввел её как массив... в чем секрет? почему она не работает если не массив?

Спасибо, буду перечитывать статьи про массивы, похоже именно там скрывалась истина)
 
Ответить
Сообщениеbuchlotnik, спасибо за ответ, впервые столкнулся с формулой ЕОШ. Можете в кратце пояснить её работу в вашем олгаритме?

Если я все верно понимаю:
1) Функция ЕОШ отсматирвает ряд где расчитана формула логарифма для каждой ячейки
2) находит те ячейки где расчет произошел с ошибкой
3) таким образом выполняется уловие "истина" и ячейке с ошибкой присваивается значение ноль?

и опять же это работает только в массиве

Pelena, С разных сторон писал точно такую же поправку к формуле как Ваша, но она не работала до тех пор пока не ввел её как массив... в чем секрет? почему она не работает если не массив?

Спасибо, буду перечитывать статьи про массивы, похоже именно там скрывалась истина)

Автор - Misanthrope
Дата добавления - 21.11.2014 в 14:21
krosav4ig Дата: Пятница, 21.11.2014, 14:31 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
немассивная, вроде работает правильно
Код
=-СУММПРОИЗВ((A21:E21)/100;LOG((A21:E21-ЗНАК(A21:E21)+1)/100;2))/LOG(5;2)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениенемассивная, вроде работает правильно
Код
=-СУММПРОИЗВ((A21:E21)/100;LOG((A21:E21-ЗНАК(A21:E21)+1)/100;2))/LOG(5;2)

Автор - krosav4ig
Дата добавления - 21.11.2014 в 14:31
buchlotnik Дата: Пятница, 21.11.2014, 15:09 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Misanthrope, конструкция такая
Код
=ЕСЛИ(ЕОШ(формула);0;формула)

т.е. ЕОШ проверяет произошла ли ошибка вычислений, и передает функции ЕСЛИ значение ИСТИНА или ЛОЖЬ. Функция ЕСЛИ при значении ИСТИНА вернёт ноль, в противном случае - вычислит формулу. Общая формула массивная, потому что в качестве аргумента вбита не одна ячейка, а диапазон. Чтобы Excel это понял и на нас не ругался вводим формулу через ctrl+shift+enter
 
Ответить
СообщениеMisanthrope, конструкция такая
Код
=ЕСЛИ(ЕОШ(формула);0;формула)

т.е. ЕОШ проверяет произошла ли ошибка вычислений, и передает функции ЕСЛИ значение ИСТИНА или ЛОЖЬ. Функция ЕСЛИ при значении ИСТИНА вернёт ноль, в противном случае - вычислит формулу. Общая формула массивная, потому что в качестве аргумента вбита не одна ячейка, а диапазон. Чтобы Excel это понял и на нас не ругался вводим формулу через ctrl+shift+enter

Автор - buchlotnik
Дата добавления - 21.11.2014 в 15:09
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!