Сокращение формулы подстановки значений
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. Спасибо.
Добрый день, уважаемые господа! Помогите, пожалуйста, сократить формулу: Код
=ЕСЛИ(СЧЁТЕСЛИ($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
Сообщение отредактировал 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)
лучше
Так нужно? Код
=СУММПРОИЗВ(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_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: 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;"")))
по-моему будет меньше всего тормозить.
Думаете чем формула короче, тем лучше? ошибаетесь. Код
=СУММПРОИЗВ((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
Ю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 Благодарю за оперативность и вариативность :-) Апдейт. Раньше не замечал таймера на повышение репутации. Борода, я Вам чуть позже плюсану :-) спасибо еще раз за помощь!)
Думаете чем формула короче, тем лучше?
Понимаю, что далеко не всегда это так, но, думаю, что формула, которую предложил Александр будет завешивать процесс значительно меньше, чем моя :-) _Boroda_ , Nic70y Благодарю за оперативность и вариативность :-) Апдейт. Раньше не замечал таймера на повышение репутации. Борода, я Вам чуть позже плюсану :-) спасибо еще раз за помощь!)ArkaIIIa
Сообщение отредактировал 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)
(с) О, тут уже столько нарешали, пока покурить сходил! Ну да ладно, все равно оставлю.
ArkaIIIa , привет. Предлагаю массивную формулу: Код
=МАКС((F$2:H$4=A2)*F$1:H$1)
(с) О, тут уже столько нарешали, пока покурить сходил! Ну да ладно, все равно оставлю. Rioran
Роман, Москва, 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
Ответить
Сообщение 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;)
еще вариант Код
=ПОИСКПОЗ(1;СЧЁТЕСЛИ(СМЕЩ($F$2:$F$65536;;{0;1;2});A2)^0;)
krosav4ig
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