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

Вход

Регистрация

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

 

= Мир MS Excel/Сокращение формулы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сокращение формулы (Формулы/Formulas)
Сокращение формулы
mkotik Дата: Среда, 23.01.2019, 12:48 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 140
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день, уважаемые знатоки!
Как вы думаете, есть ли возможность сократить вот такую формулу:
Код
=ЕСЛИ(KPI_Sort=1;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=2;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectServicesFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=3;
ЕСЛИОШИБКА((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectServicesFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
/
((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)));0);
ЕСЛИ(KPI_Sort=4;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectInsuranceFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=5;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectDServicesFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=6;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectAssemblyFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectInstallFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
))))))
 
Ответить
СообщениеДобрый день, уважаемые знатоки!
Как вы думаете, есть ли возможность сократить вот такую формулу:
Код
=ЕСЛИ(KPI_Sort=1;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=2;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectServicesFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=3;
ЕСЛИОШИБКА((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectServicesFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
/
((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)));0);
ЕСЛИ(KPI_Sort=4;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectInsuranceFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=5;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectDServicesFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИ(KPI_Sort=6;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectAssemblyFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");
SelectRevenueFact;SelectInstallFact;SelectClientType;
ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
))))))

Автор - mkotik
Дата добавления - 23.01.2019 в 12:48
bmv98rus Дата: Среда, 23.01.2019, 13:00 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2029
Репутация: 321 ±
Замечаний: 20% ±

Excel 2013/2016
Может есть! А может и нет. Все от того зависит, что она делает и что обрабатывает.


Замечательный медведь, процентов на 20.
 
Ответить
СообщениеМожет есть! А может и нет. Все от того зависит, что она делает и что обрабатывает.

Автор - bmv98rus
Дата добавления - 23.01.2019 в 13:00
mkotik Дата: Среда, 23.01.2019, 13:12 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 140
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, спасибо за быстроту :)
Хотел получить совет, что можно подсократить в написании :)
Постарался вынести в переменные, но все равно громоздкая получилась
 
Ответить
Сообщениеbmv98rus, спасибо за быстроту :)
Хотел получить совет, что можно подсократить в написании :)
Постарался вынести в переменные, но все равно громоздкая получилась

Автор - mkotik
Дата добавления - 23.01.2019 в 13:12
_Boroda_ Дата: Среда, 23.01.2019, 13:21 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 14885
Репутация: 5882 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Что у Вас такое SelectLastYear, _SelectMonth и т.д.? Имена? Тогда можно и остальное в имена засунуть. Куски типа
Код
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
кладите в имена, которые потом и используйте в формуле


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЧто у Вас такое SelectLastYear, _SelectMonth и т.д.? Имена? Тогда можно и остальное в имена засунуть. Куски типа
Код
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
кладите в имена, которые потом и используйте в формуле

Автор - _Boroda_
Дата добавления - 23.01.2019 в 13:21
Светлый Дата: Среда, 23.01.2019, 13:30 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1009
Репутация: 259 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Не анализировал, но есть последовательность:
Код
KPI_Sort=1
=2, =3 и т.д. Вдруг получится свернуть в:
Код
KPI_Sort=СТРОКА(1:6)
Или через:
Код
ВЫБОР(KPI_Sort;


Программировать проще, чем писать стихи.
 
Ответить
СообщениеДобрый день!
Не анализировал, но есть последовательность:
Код
KPI_Sort=1
=2, =3 и т.д. Вдруг получится свернуть в:
Код
KPI_Sort=СТРОКА(1:6)
Или через:
Код
ВЫБОР(KPI_Sort;

Автор - Светлый
Дата добавления - 23.01.2019 в 13:30
bmv98rus Дата: Среда, 23.01.2019, 13:34 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2029
Репутация: 321 ±
Замечаний: 20% ±

Excel 2013/2016
Как можно оптимизировать если нет понимания что там считается?

ну что напрашивается, то использовать не IF(… CUBEVALUE(…. а CUBEVALUE( ,,, if ..) , то есть не выбирать функцию с предопределенными параметрами, а менять параметры.
IF тоже можно заменить на CHOOSE , вместо IF(KPI_Sort=1; A; IF(KPI_Sort=2; B ;IF(KPI_Sort=3 ;C; … ))). будет IF(KPI_Sort>6 ;G; Chose(KPI_Sort;A;B;C;D;E;F)
что тут и написано
Цитата Светлый, 23.01.2019 в 13:30, в сообщении № 5 ()
Или через:


Замечательный медведь, процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 23.01.2019, 13:37
 
Ответить
СообщениеКак можно оптимизировать если нет понимания что там считается?

ну что напрашивается, то использовать не IF(… CUBEVALUE(…. а CUBEVALUE( ,,, if ..) , то есть не выбирать функцию с предопределенными параметрами, а менять параметры.
IF тоже можно заменить на CHOOSE , вместо IF(KPI_Sort=1; A; IF(KPI_Sort=2; B ;IF(KPI_Sort=3 ;C; … ))). будет IF(KPI_Sort>6 ;G; Chose(KPI_Sort;A;B;C;D;E;F)
что тут и написано
Цитата Светлый, 23.01.2019 в 13:30, в сообщении № 5 ()
Или через:

Автор - bmv98rus
Дата добавления - 23.01.2019 в 13:34
_Boroda_ Дата: Среда, 23.01.2019, 13:36 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 14885
Репутация: 5882 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Для всех, кроме =3, там разница в 4-м аргументе КУБЗНАЧЕНИЕ. Вот туда и можно написать ВЫБОР или кучку ЕСЛИ
типа
Код
=ЕСЛИ(KPI_Sort=3;...;(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;ЕСЛИ(..............);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)))


[offtop]
Как можно оптимизировать если нет понимания что там считается?

Сам написал, сам потом и привел пример "как". Из спячки не вышел? :D :D :D
[/offtop]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДля всех, кроме =3, там разница в 4-м аргументе КУБЗНАЧЕНИЕ. Вот туда и можно написать ВЫБОР или кучку ЕСЛИ
типа
Код
=ЕСЛИ(KPI_Sort=3;...;(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;ЕСЛИ(..............);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)))


[offtop]
Как можно оптимизировать если нет понимания что там считается?

Сам написал, сам потом и привел пример "как". Из спячки не вышел? :D :D :D
[/offtop]

Автор - _Boroda_
Дата добавления - 23.01.2019 в 13:36
bmv98rus Дата: Среда, 23.01.2019, 13:39 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 2029
Репутация: 321 ±
Замечаний: 20% ±

Excel 2013/2016
мне еще очень +0)/1000 нравится :-)


Замечательный медведь, процентов на 20.
 
Ответить
Сообщениемне еще очень +0)/1000 нравится :-)

Автор - bmv98rus
Дата добавления - 23.01.2019 в 13:39
mkotik Дата: Среда, 23.01.2019, 13:40 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 140
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, спасибо за быстроту :)
Хотел получить совет, что можно подсократить в написании :)
Постарался вынести в переменные, но все равно громоздкая получилась
 
Ответить
Сообщениеbmv98rus, спасибо за быстроту :)
Хотел получить совет, что можно подсократить в написании :)
Постарался вынести в переменные, но все равно громоздкая получилась

Автор - mkotik
Дата добавления - 23.01.2019 в 13:40
mkotik Дата: Среда, 23.01.2019, 13:47 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 140
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Связь плохая, извините - выбежал на обед :)
 
Ответить
СообщениеСвязь плохая, извините - выбежал на обед :)

Автор - mkotik
Дата добавления - 23.01.2019 в 13:47
bmv98rus Дата: Среда, 23.01.2019, 14:23 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2029
Репутация: 321 ±
Замечаний: 20% ±

Excel 2013/2016
Сам написал, сам потом и привел пример "как". Из спячки не вышел?

Сократить - не значит оптимизировать. :-) Вам ли Александр это не знать :-)

мне вот "{[РО Отдел].["&T(OFFSET(Настройки!$BN$2,SMALL(IF($C19=Настройки!$BI$3:$BI$93,ROW(Настройки!$1:$91)),ROW(INDIRECT("1:"&COUNTIF(Настройки!BI:BI,C19)))),))&"]}"), совсем не по нраву, что -там, для чего там.....?


Замечательный медведь, процентов на 20.
 
Ответить
Сообщение
Сам написал, сам потом и привел пример "как". Из спячки не вышел?

Сократить - не значит оптимизировать. :-) Вам ли Александр это не знать :-)

мне вот "{[РО Отдел].["&T(OFFSET(Настройки!$BN$2,SMALL(IF($C19=Настройки!$BI$3:$BI$93,ROW(Настройки!$1:$91)),ROW(INDIRECT("1:"&COUNTIF(Настройки!BI:BI,C19)))),))&"]}"), совсем не по нраву, что -там, для чего там.....?

Автор - bmv98rus
Дата добавления - 23.01.2019 в 14:23
sboy Дата: Среда, 23.01.2019, 14:37 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 2448
Репутация: 689 ±
Замечаний: 0% ±

Excel 2010
[offtop]
совсем не по нраву,

Это создал, Светлый, в предыдущей теме ТСа :)


Яндекс: 410016850021169
 
Ответить
Сообщение[offtop]
совсем не по нраву,

Это создал, Светлый, в предыдущей теме ТСа :)

Автор - sboy
Дата добавления - 23.01.2019 в 14:37
mkotik Дата: Среда, 23.01.2019, 15:10 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 140
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus,
овсем не по нраву, что -там, для чего там.....?

тут всё чётко - долго разбирались - отладили. Тема - Создание подмассива из массива
Не отвечаю - жду когда кубы обновятся :)
 
Ответить
Сообщениеbmv98rus,
овсем не по нраву, что -там, для чего там.....?

тут всё чётко - долго разбирались - отладили. Тема - Создание подмассива из массива
Не отвечаю - жду когда кубы обновятся :)

Автор - mkotik
Дата добавления - 23.01.2019 в 15:10
bmv98rus Дата: Среда, 23.01.2019, 15:30 | Сообщение № 14
Группа: Проверенные
Ранг: Старожил
Сообщений: 2029
Репутация: 321 ±
Замечаний: 20% ±

Excel 2013/2016
тут всё чётко - долго разбирались - отладили

ну отладили, не означает что переотладить не стоит. минимум можно в имена запихнуть весь этот блок, ведь автор не знал как его творение будет использовано далее.
а в зависимости от того, как это все применяется переписать на Index и Idirect и Offset.


Замечательный медведь, процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 23.01.2019, 15:52
 
Ответить
Сообщение
тут всё чётко - долго разбирались - отладили

ну отладили, не означает что переотладить не стоит. минимум можно в имена запихнуть весь этот блок, ведь автор не знал как его творение будет использовано далее.
а в зависимости от того, как это все применяется переписать на Index и Idirect и Offset.

Автор - bmv98rus
Дата добавления - 23.01.2019 в 15:30
Светлый Дата: Среда, 23.01.2019, 17:50 | Сообщение № 15
Группа: Проверенные
Ранг: Старожил
Сообщений: 1009
Репутация: 259 ±
Замечаний: 0% ±

Excel 2010
Вот такой блок:
Код
=ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)
будет использоваться в формуле 2 или 3 раза с небольшими корректировками и обвязкой. Основа:
Код
=ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;ВЫБОР(МИН(KPI_Sort;7);"";SelectServicesFact;SelectServicesFact;SelectInsuranceFact;SelectDServicesFact;SelectAssemblyFact;SelectInstallFact);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)
делится на первый блок, при условии KPI_Sort=3, иначе на 1. И ещё надо разобраться со ссылкой C19, C20, C21 и ВЫБОР(1;""). Как отреагирует КУБ на такую ;""; конструкцию.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Среда, 23.01.2019, 17:54
 
Ответить
СообщениеВот такой блок:
Код
=ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)
будет использоваться в формуле 2 или 3 раза с небольшими корректировками и обвязкой. Основа:
Код
=ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;ВЫБОР(МИН(KPI_Sort;7);"";SelectServicesFact;SelectServicesFact;SelectInsuranceFact;SelectDServicesFact;SelectAssemblyFact;SelectInstallFact);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)
делится на первый блок, при условии KPI_Sort=3, иначе на 1. И ещё надо разобраться со ссылкой C19, C20, C21 и ВЫБОР(1;""). Как отреагирует КУБ на такую ;""; конструкцию.

Автор - Светлый
Дата добавления - 23.01.2019 в 17:50
Светлый Дата: Среда, 23.01.2019, 18:05 | Сообщение № 16
Группа: Проверенные
Ранг: Старожил
Сообщений: 1009
Репутация: 259 ±
Замечаний: 0% ±

Excel 2010
Попробуйте так:
Код
=ЕСЛИ(KPI_Sort=3;ЕСЛИОШИБКА((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectServicesFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))/((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)));0);ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;ВЫБОР(МИН(KPI_Sort;7);"";SelectServicesFact;SelectServicesFact;SelectInsuranceFact;SelectDServicesFact;SelectAssemblyFact;SelectInstallFact);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
Для KPI_Sort=1 может быть ошибка, остальные должны работать.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеПопробуйте так:
Код
=ЕСЛИ(KPI_Sort=3;ЕСЛИОШИБКА((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectServicesFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))/((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)));0);ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C19=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C19))));))&"]}");SelectRevenueFact;ВЫБОР(МИН(KPI_Sort;7);"";SelectServicesFact;SelectServicesFact;SelectInsuranceFact;SelectDServicesFact;SelectAssemblyFact;SelectInstallFact);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
Для KPI_Sort=1 может быть ошибка, остальные должны работать.

Автор - Светлый
Дата добавления - 23.01.2019 в 18:05
mkotik Дата: Среда, 23.01.2019, 20:43 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 140
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Цитата Светлый, 23.01.2019 в 18:05, в сообщении № 16 ()
Для KPI_Sort=1 может быть ошибка, остальные должны работать.

Чуть подправил - c19->c21
Так и есть - KPI_Sort=1 не работает, по остальному ОТЛИЧНО!
Вот такая получилась:
Код
=ЕСЛИ(KPI_Sort=3;
ЕСЛИОШИБКА((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectServicesFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
/
((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)));0);
ЕСЛИ(KPI_Sort=1;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");
SelectRevenueFact;SelectClientType; ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;ВЫБОР(МИН(KPI_Sort;7);"";SelectServicesFact;SelectServicesFact;SelectInsuranceFact;SelectDServicesFact;SelectAssemblyFact;SelectInstallFact);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)))
 
Ответить
Сообщение
Цитата Светлый, 23.01.2019 в 18:05, в сообщении № 16 ()
Для KPI_Sort=1 может быть ошибка, остальные должны работать.

Чуть подправил - c19->c21
Так и есть - KPI_Sort=1 не работает, по остальному ОТЛИЧНО!
Вот такая получилась:
Код
=ЕСЛИ(KPI_Sort=3;
ЕСЛИОШИБКА((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectServicesFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0))
/
((ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)));0);
ЕСЛИ(KPI_Sort=1;
(ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";
КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");
SelectRevenueFact;SelectClientType; ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0));
ЕСЛИОШИБКА((КУБЗНАЧЕНИЕ("Conn";КУБМНОЖ("Conn";"{[РО Отдел].["&Т(СМЕЩ(Настройки!$BN$2;НАИМЕНЬШИЙ(ЕСЛИ($C21=Настройки!$BI$3:$BI$93;СТРОКА(Настройки!$1:$91));СТРОКА(ДВССЫЛ("1:"&СЧЁТЕСЛИ(Настройки!BI:BI;C21))));))&"]}");SelectRevenueFact;ВЫБОР(МИН(KPI_Sort;7);"";SelectServicesFact;SelectServicesFact;SelectInsuranceFact;SelectDServicesFact;SelectAssemblyFact;SelectInstallFact);SelectClientType;ЕСЛИ(_SelectQuarter="-";SelectLastYear;ЕСЛИ(_SelectMonth="-";SelectLastQuarter;SelectLastMonth)))+0)/1000;0)))

Автор - mkotik
Дата добавления - 23.01.2019 в 20:43
mkotik Дата: Среда, 23.01.2019, 20:48 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 140
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо большое ВСЕМ!
"Пошёл" в имена "заталкивать" Настройки....
 
Ответить
СообщениеСпасибо большое ВСЕМ!
"Пошёл" в имена "заталкивать" Настройки....

Автор - mkotik
Дата добавления - 23.01.2019 в 20:48
bmv98rus Дата: Среда, 23.01.2019, 20:57 | Сообщение № 19
Группа: Проверенные
Ранг: Старожил
Сообщений: 2029
Репутация: 321 ±
Замечаний: 20% ±

Excel 2013/2016
Светлый, и всеж зачем там +0 и почему /1000 не вынести на последок? Вроде везде она.

mkotik, зачем такие длинные имена достаточно
SelectLY, а SelectLastYear в описание можно поместить ну и так далее. Переименовать можно прямо в диспетчере, в формулах автоматом изменятся.


Замечательный медведь, процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 23.01.2019, 21:00
 
Ответить
СообщениеСветлый, и всеж зачем там +0 и почему /1000 не вынести на последок? Вроде везде она.

mkotik, зачем такие длинные имена достаточно
SelectLY, а SelectLastYear в описание можно поместить ну и так далее. Переименовать можно прямо в диспетчере, в формулах автоматом изменятся.

Автор - bmv98rus
Дата добавления - 23.01.2019 в 20:57
Светлый Дата: Среда, 23.01.2019, 21:01 | Сообщение № 20
Группа: Проверенные
Ранг: Старожил
Сообщений: 1009
Репутация: 259 ±
Замечаний: 0% ±

Excel 2010
Так и есть - KPI_Sort=1 не работает
Попробуйте заменить "" в
Код
ВЫБОР(МИН(KPI_Sort;7);""
на 0 или что-то другое. Я проверить не могу, что сработает.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
Так и есть - KPI_Sort=1 не работает
Попробуйте заменить "" в
Код
ВЫБОР(МИН(KPI_Sort;7);""
на 0 или что-то другое. Я проверить не могу, что сработает.

Автор - Светлый
Дата добавления - 23.01.2019 в 21:01
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сокращение формулы (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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