Однажды на форум OsZone.net обратился пользователь, с просьбой помочь в вычислениях значений суммы знаменателей чисел, записанных в виде дробей в текстовом формате по определенному условию. Формула получилась довольно громоздкой, и трудной для восприятия и понимания.
Я подумал, если в ячейке можно использовать перенос строк, почему бы его не применить для записи формул. В результате из нагромождения
=СУММПРОИЗВ(--((J9:U9)="ТО")*ПСТР(D9;ПОИСК("/";D9)+1;10)+((J9:U9)="ТР")*ПСТР(E9;ПОИСК("/";E9)+1;10)+((J9:U9)="К")*ПСТР(F9;ПОИСК("/";F9)+1;10))
получилось приличное
=СУММПРОИЗВ(--
((J9:U9)="ТО")*ПСТР(D9;ПОИСК("/";D9)+1;10)+
((J9:U9)="ТР")*ПСТР(E9;ПОИСК("/";E9)+1;10)+
((J9:U9)="К")*ПСТР(F9;ПОИСК("/";F9)+1;10)
)
Я не ставил своей целью вдаваться в подробности вычислений. Если хотите, можете разобраться сами.
Перенос строк в ячейках Microsoft Excel делается просто - сочетанием клавиш Alt + Enter
P.S.
Дальнейшая оптимизация (не без помощи знатоков) привела к следующим решениям:
=СУММПРОИЗВ(СЧЁТЕСЛИ($J9:$U9;$D$7:$F$7);--ЗАМЕНИТЬ($D9:$F9;1;ПОИСК("/";$D9:$F9);))
Две формулы ниже - формулы массива, после окончания записи в ячейку вместо Enter нужно нажать сочетание клавиш Ctrl+Shift+Enter - (CSE). После ввода у формулы появляются фигурные скобки
=СУММ(ЕСЛИ(D$7:F$7=ТРАНСП(J9:U9);--(ЗАМЕНИТЬ(D9:F9;1;ПОИСК("/";D9:F9);))))
В остальные ячейки формула вводится "протягиванием" по диапазону.
Наконец - шедевр:
=СУММ(ПСТР(D9:F9;ПОИСК("/";D9:F9)+1;9)*СЧЁТЕСЛИ(J9:U9;$D$7:$F$7))
Я подумал, если в ячейке можно использовать перенос строк, почему бы его не применить для записи формул. В результате из нагромождения
=СУММПРОИЗВ(--((J9:U9)="ТО")*ПСТР(D9;ПОИСК("/";D9)+1;10)+((J9:U9)="ТР")*ПСТР(E9;ПОИСК("/";E9)+1;10)+((J9:U9)="К")*ПСТР(F9;ПОИСК("/";F9)+1;10))
получилось приличное
=СУММПРОИЗВ(--
((J9:U9)="ТО")*ПСТР(D9;ПОИСК("/";D9)+1;10)+
((J9:U9)="ТР")*ПСТР(E9;ПОИСК("/";E9)+1;10)+
((J9:U9)="К")*ПСТР(F9;ПОИСК("/";F9)+1;10)
)
Я не ставил своей целью вдаваться в подробности вычислений. Если хотите, можете разобраться сами.
Перенос строк в ячейках Microsoft Excel делается просто - сочетанием клавиш Alt + Enter
P.S.
Дальнейшая оптимизация (не без помощи знатоков) привела к следующим решениям:
=СУММПРОИЗВ(СЧЁТЕСЛИ($J9:$U9;$D$7:$F$7);--ЗАМЕНИТЬ($D9:$F9;1;ПОИСК("/";$D9:$F9);))
Две формулы ниже - формулы массива, после окончания записи в ячейку вместо Enter нужно нажать сочетание клавиш Ctrl+Shift+Enter - (CSE). После ввода у формулы появляются фигурные скобки
=СУММ(ЕСЛИ(D$7:F$7=ТРАНСП(J9:U9);--(ЗАМЕНИТЬ(D9:F9;1;ПОИСК("/";D9:F9);))))
В остальные ячейки формула вводится "протягиванием" по диапазону.
Наконец - шедевр:
=СУММ(ПСТР(D9:F9;ПОИСК("/";D9:F9)+1;9)*СЧЁТЕСЛИ(J9:U9;$D$7:$F$7))
Комментариев нет:
Отправить комментарий