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

Вход

Регистрация

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

 

= Мир MS Excel/Сокращение формулы подстановки значений - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Сокращение формулы подстановки значений
ArkaIIIa Дата: Вторник, 23.09.2014, 10:50 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Добрый день, уважаемые господа!

Помогите, пожалуйста, сократить формулу:
Код
=ЕСЛИ(СЧЁТЕСЛИ($F$2:$F$4;A2)>0;$F$1;ЕСЛИ(СЧЁТЕСЛИ($G$2:$G$4;A2)>0;$G$1;ЕСЛИ(СЧЁТЕСЛИ($H$2:$H$4;A2)>0;$H$1;"")))


Особенно интересует вариант с использованием {} - если это возможно.

П.С. Интересует вариант, который требовал бы минимум ресурсов при перерасчете нескольких десятков тысяч строк.
П.П.С. Версия Excel - 2010.

Спасибо.
К сообщению приложен файл: 121212.xls (25.0 Kb)


Сообщение отредактировал ArkaIIIa - Вторник, 23.09.2014, 10:52
 
Ответить
СообщениеДобрый день, уважаемые господа!

Помогите, пожалуйста, сократить формулу:
Код
=ЕСЛИ(СЧЁТЕСЛИ($F$2:$F$4;A2)>0;$F$1;ЕСЛИ(СЧЁТЕСЛИ($G$2:$G$4;A2)>0;$G$1;ЕСЛИ(СЧЁТЕСЛИ($H$2:$H$4;A2)>0;$H$1;"")))


Особенно интересует вариант с использованием {} - если это возможно.

П.С. Интересует вариант, который требовал бы минимум ресурсов при перерасчете нескольких десятков тысяч строк.
П.П.С. Версия Excel - 2010.

Спасибо.

Автор - ArkaIIIa
Дата добавления - 23.09.2014 в 10:50
_Boroda_ Дата: Вторник, 23.09.2014, 10:59 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16691
Репутация: 6491 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Код
=СУММПРОИЗВ(F$1:H$1*ЕЧИСЛО(ПОИСК(A2;F$2:H$4)))

Особенно интересует вариант с использованием {}

Код
=СУММ(F$1:H$1*ЕЧИСЛО(ПОИСК(A2;F$2:H$4)))


Добавлено.
думаю, что формула, которую предложил Александр будет завешивать процесс значительно меньше, чем моя

А с точки зрения скорости каскад из ЕСЛИ предпочтительней, конечно.
Да, и конструкция ЕЧИСЛО(ПОИСК - это не обязательно. Нужно только для случаев, когда фамилии в таблице не совсем совпадают с фамилиями в столбце - например, в таблице они с именем-отчеством или с пробелом лишним, или еще как). То есть, эта
=СУММПРОИЗВ((F$2:H$4=A2)*$F$1:$H$1)
лучше
К сообщению приложен файл: 121212_1.xls (26.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Код
=СУММПРОИЗВ(F$1:H$1*ЕЧИСЛО(ПОИСК(A2;F$2:H$4)))

Особенно интересует вариант с использованием {}

Код
=СУММ(F$1:H$1*ЕЧИСЛО(ПОИСК(A2;F$2:H$4)))


Добавлено.
думаю, что формула, которую предложил Александр будет завешивать процесс значительно меньше, чем моя

А с точки зрения скорости каскад из ЕСЛИ предпочтительней, конечно.
Да, и конструкция ЕЧИСЛО(ПОИСК - это не обязательно. Нужно только для случаев, когда фамилии в таблице не совсем совпадают с фамилиями в столбце - например, в таблице они с именем-отчеством или с пробелом лишним, или еще как). То есть, эта
=СУММПРОИЗВ((F$2:H$4=A2)*$F$1:$H$1)
лучше

Автор - _Boroda_
Дата добавления - 23.09.2014 в 10:59
Nic70y Дата: Вторник, 23.09.2014, 11:00 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 8984
Репутация: 2359 ±
Замечаний: 0% ±

Excel 2010
Думаете чем формула короче, тем лучше?
ошибаетесь.
Код
=СУММПРОИЗВ((F$2:H$4=A2)*$F$1:$H$1)
а так красивее:
Код
=ЕЧИСЛО(ПОИСКПОЗ(A2;F$2:F$4;0))*F$1+ЕЧИСЛО(ПОИСКПОЗ(A2;G$2:G$4;0))*G$1+ЕЧИСЛО(ПОИСКПОЗ(A2;H$2:H$4;0))*H$1
+ Ваша:
Код
=ЕСЛИ(СЧЁТЕСЛИ($F$2:$F$4;A2);$F$1;ЕСЛИ(СЧЁТЕСЛИ($G$2:$G$4;A2);$G$1;ЕСЛИ(СЧЁТЕСЛИ($H$2:$H$4;A2);$H$1;"")))
склейте свою и мою:
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;F$2:F$4;0));F$1;ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;G$2:G$4;0));G$1;ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;H$2:H$4;0));H$1;"")))
по-моему будет меньше всего тормозить.


ЮMoney 41001841029809
 
Ответить
СообщениеДумаете чем формула короче, тем лучше?
ошибаетесь.
Код
=СУММПРОИЗВ((F$2:H$4=A2)*$F$1:$H$1)
а так красивее:
Код
=ЕЧИСЛО(ПОИСКПОЗ(A2;F$2:F$4;0))*F$1+ЕЧИСЛО(ПОИСКПОЗ(A2;G$2:G$4;0))*G$1+ЕЧИСЛО(ПОИСКПОЗ(A2;H$2:H$4;0))*H$1
+ Ваша:
Код
=ЕСЛИ(СЧЁТЕСЛИ($F$2:$F$4;A2);$F$1;ЕСЛИ(СЧЁТЕСЛИ($G$2:$G$4;A2);$G$1;ЕСЛИ(СЧЁТЕСЛИ($H$2:$H$4;A2);$H$1;"")))
склейте свою и мою:
Код
=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;F$2:F$4;0));F$1;ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;G$2:G$4;0));G$1;ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;H$2:H$4;0));H$1;"")))
по-моему будет меньше всего тормозить.

Автор - Nic70y
Дата добавления - 23.09.2014 в 11:00
ArkaIIIa Дата: Вторник, 23.09.2014, 11:02 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Думаете чем формула короче, тем лучше?

Понимаю, что далеко не всегда это так, но, думаю, что формула, которую предложил Александр будет завешивать процесс значительно меньше, чем моя :-)

_Boroda_, Nic70y
Благодарю за оперативность и вариативность :-)

Апдейт. Раньше не замечал таймера на повышение репутации. Борода, я Вам чуть позже плюсану :-) спасибо еще раз за помощь!)


Сообщение отредактировал ArkaIIIa - Вторник, 23.09.2014, 11:04
 
Ответить
Сообщение
Думаете чем формула короче, тем лучше?

Понимаю, что далеко не всегда это так, но, думаю, что формула, которую предложил Александр будет завешивать процесс значительно меньше, чем моя :-)

_Boroda_, Nic70y
Благодарю за оперативность и вариативность :-)

Апдейт. Раньше не замечал таймера на повышение репутации. Борода, я Вам чуть позже плюсану :-) спасибо еще раз за помощь!)

Автор - ArkaIIIa
Дата добавления - 23.09.2014 в 11:02
Rioran Дата: Вторник, 23.09.2014, 11:05 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
ArkaIIIa, привет.

Предлагаю массивную формулу:

Код
=МАКС((F$2:H$4=A2)*F$1:H$1)

(с) О, тут уже столько нарешали, пока покурить сходил! Ну да ладно, все равно оставлю.
К сообщению приложен файл: TimeToSimplify.xls (26.0 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Вторник, 23.09.2014, 11:07
 
Ответить
СообщениеArkaIIIa, привет.

Предлагаю массивную формулу:

Код
=МАКС((F$2:H$4=A2)*F$1:H$1)

(с) О, тут уже столько нарешали, пока покурить сходил! Ну да ладно, все равно оставлю.

Автор - Rioran
Дата добавления - 23.09.2014 в 11:05
ArkaIIIa Дата: Вторник, 23.09.2014, 11:33 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Rioran
Спасибо, Роман! Чем больше вариантов - тем лучше. Всегда что-то новое узнаешь :-)
 
Ответить
СообщениеRioran
Спасибо, Роман! Чем больше вариантов - тем лучше. Всегда что-то новое узнаешь :-)

Автор - ArkaIIIa
Дата добавления - 23.09.2014 в 11:33
krosav4ig Дата: Вторник, 23.09.2014, 21:55 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант
Код
=ПОИСКПОЗ(1;СЧЁТЕСЛИ(СМЕЩ($F$2:$F$65536;;{0;1;2});A2)^0;)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 23.09.2014, 21:57
 
Ответить
Сообщениееще вариант
Код
=ПОИСКПОЗ(1;СЧЁТЕСЛИ(СМЕЩ($F$2:$F$65536;;{0;1;2});A2)^0;)

Автор - krosav4ig
Дата добавления - 23.09.2014 в 21:55
  • Страница 1 из 1
  • 1
Поиск:

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