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

Вход

Регистрация

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

 

= Мир MS Excel/выбор формулы в соответствии с вводимыми данными - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
выбор формулы в соответствии с вводимыми данными
Rusel Дата: Четверг, 21.06.2012, 13:54 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Друзья. В приложенном файле пример таблицы, в которую предполагается ввод данных (длина и ширина). Это размер детали. В колонке "облицовка" указывается как обрабатывается деталь: L - только по длине по одной стороне, LL - по длине по двум сторонам, LLWW - по всем сторонам и т.д. Так вот задача в том, чтобы в желтой ячейке "B2" расчет производился в соответствии с введенными данными по обработке детали. Возможные формулы приведены в колонке "G" напротив соответствующих данных. Кроме того, нужно чтобы в желтой ячейке выводилась итоговая цифра - сумма по всем введенным строкам, с учетом количества деталей. Как смог, объяснил.
Это решаемо?
К сообщению приложен файл: 8885773.xls (21.0 Kb)


Сообщение отредактировал Rusel - Четверг, 21.06.2012, 13:54
 
Ответить
СообщениеДрузья. В приложенном файле пример таблицы, в которую предполагается ввод данных (длина и ширина). Это размер детали. В колонке "облицовка" указывается как обрабатывается деталь: L - только по длине по одной стороне, LL - по длине по двум сторонам, LLWW - по всем сторонам и т.д. Так вот задача в том, чтобы в желтой ячейке "B2" расчет производился в соответствии с введенными данными по обработке детали. Возможные формулы приведены в колонке "G" напротив соответствующих данных. Кроме того, нужно чтобы в желтой ячейке выводилась итоговая цифра - сумма по всем введенным строкам, с учетом количества деталей. Как смог, объяснил.
Это решаемо?

Автор - Rusel
Дата добавления - 21.06.2012 в 13:54
Gustav Дата: Четверг, 21.06.2012, 14:27 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Для ячейки H5 предлагаю формулу для подсчета в одной строке:

[vba]
Code

=
( ДЛСТР(F5) - ДЛСТР(ПОДСТАВИТЬ(F5;"L";"")) ) * C5
+
( ДЛСТР(F5) - ДЛСТР(ПОДСТАВИТЬ(F5;"W";"")) ) * D5
[/vba]
P.S. Это только обыгрывание кода облицовки. Полагаю, надо еще всё это тривиально на "кол." умножить?


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Четверг, 21.06.2012, 14:46
 
Ответить
СообщениеДля ячейки H5 предлагаю формулу для подсчета в одной строке:

[vba]
Code

=
( ДЛСТР(F5) - ДЛСТР(ПОДСТАВИТЬ(F5;"L";"")) ) * C5
+
( ДЛСТР(F5) - ДЛСТР(ПОДСТАВИТЬ(F5;"W";"")) ) * D5
[/vba]
P.S. Это только обыгрывание кода облицовки. Полагаю, надо еще всё это тривиально на "кол." умножить?

Автор - Gustav
Дата добавления - 21.06.2012 в 14:27
Serge_007 Дата: Четверг, 21.06.2012, 14:50 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
В первом приближении так:
[vba]
Code
=СУММ(ВЫБОР(ПОИСКПОЗ(F5:F12;{"l";"ll";"lw";"lww";"llw";"llww";"w";"ww"};);C5:C12;C5:C12*2;C5:C12+D5:D12;C5:C12+D5:D12*2;C5:C12*2+D5:D12;(C5:C12+D5:D12)*2;D5:D12;D5:D12*2))
[/vba]
Формула массива


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВ первом приближении так:
[vba]
Code
=СУММ(ВЫБОР(ПОИСКПОЗ(F5:F12;{"l";"ll";"lw";"lww";"llw";"llww";"w";"ww"};);C5:C12;C5:C12*2;C5:C12+D5:D12;C5:C12+D5:D12*2;C5:C12*2+D5:D12;(C5:C12+D5:D12)*2;D5:D12;D5:D12*2))
[/vba]
Формула массива

Автор - Serge_007
Дата добавления - 21.06.2012 в 14:50
Rusel Дата: Четверг, 21.06.2012, 15:04 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Serge_007, ваш вариант работает, но без учета данных колонки "количество". Как их туда добавить?

=СУММ(ВЫБОР(ПОИСКПОЗ(F5:F5;{"l";"ll";"lw";"lww";"llw";"llww";"w";"ww"};);C5:C5*B5:B5;C5:C5*B5:B5*2;(C5:C5+D5:D5)*B5:B5;(C5:C5+D5:D5*2)*B5:B5;(C5:C5*2+D5:D5)*B5:B5;(C5:C5+D5:D5)*2*B5:B5;D5:D5*B5:B5;D5:D5*2*B5:B5))

так верно будет? Это для одной строки таблицы.


Сообщение отредактировал Rusel - Четверг, 21.06.2012, 15:15
 
Ответить
СообщениеSerge_007, ваш вариант работает, но без учета данных колонки "количество". Как их туда добавить?

=СУММ(ВЫБОР(ПОИСКПОЗ(F5:F5;{"l";"ll";"lw";"lww";"llw";"llww";"w";"ww"};);C5:C5*B5:B5;C5:C5*B5:B5*2;(C5:C5+D5:D5)*B5:B5;(C5:C5+D5:D5*2)*B5:B5;(C5:C5*2+D5:D5)*B5:B5;(C5:C5+D5:D5)*2*B5:B5;D5:D5*B5:B5;D5:D5*2*B5:B5))

так верно будет? Это для одной строки таблицы.

Автор - Rusel
Дата добавления - 21.06.2012 в 15:04
Serge_007 Дата: Четверг, 21.06.2012, 15:18 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Rusel)
ваш вариант работает

Нет. Не пользуйтесь им

Quote (Rusel)
Это для одной строки таблицы.

Нет. Вы просили
Quote (Rusel)
чтобы в желтой ячейке выводилась итоговая цифра - сумма по всем введенным строкам


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Rusel)
ваш вариант работает

Нет. Не пользуйтесь им

Quote (Rusel)
Это для одной строки таблицы.

Нет. Вы просили
Quote (Rusel)
чтобы в желтой ячейке выводилась итоговая цифра - сумма по всем введенным строкам

Автор - Serge_007
Дата добавления - 21.06.2012 в 15:18
Rusel Дата: Четверг, 21.06.2012, 15:23 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

А как теперь применить формулу массива к ячейке "В1" чтобы вычислить площадь?
 
Ответить
СообщениеА как теперь применить формулу массива к ячейке "В1" чтобы вычислить площадь?

Автор - Rusel
Дата добавления - 21.06.2012 в 15:23
ZORRO2005 Дата: Четверг, 21.06.2012, 15:25 | Сообщение № 7
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Все варианты работают.
См. вложение.
К сообщению приложен файл: 8885773_3.xls (30.5 Kb)
 
Ответить
СообщениеВсе варианты работают.
См. вложение.

Автор - ZORRO2005
Дата добавления - 21.06.2012 в 15:25
Michael_S Дата: Четверг, 21.06.2012, 15:27 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Rusel, заполните табличку числами и покажите, где и что должно получиться.
 
Ответить
Сообщение Rusel, заполните табличку числами и покажите, где и что должно получиться.

Автор - Michael_S
Дата добавления - 21.06.2012 в 15:27
Gustav Дата: Четверг, 21.06.2012, 15:28 | Сообщение № 9
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Хех! Я вот тоже думал, что для одной строки достаточно, но раз желаете одной формулой, то - извольте, тоже массивная:

[vba]
Code

=СУММ( B5:B12 * (
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"L";"")) ) * C5:C12
+
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"W";"")) ) * D5:D12
) )
[/vba]
Замечу, что моя формула обрабатывает любые комбинации: не только, например, LLWW, но и зеркальное WWLL, и даже LWLW... wink


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеХех! Я вот тоже думал, что для одной строки достаточно, но раз желаете одной формулой, то - извольте, тоже массивная:

[vba]
Code

=СУММ( B5:B12 * (
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"L";"")) ) * C5:C12
+
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"W";"")) ) * D5:D12
) )
[/vba]
Замечу, что моя формула обрабатывает любые комбинации: не только, например, LLWW, но и зеркальное WWLL, и даже LWLW... wink

Автор - Gustav
Дата добавления - 21.06.2012 в 15:28
Rusel Дата: Четверг, 21.06.2012, 15:35 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Всем огромное спасибо, оба варианта для меня приемлемы.

Но как же все таки применить теперь формулу массива, чтобы вычислить площадь. Это должно быть проще, потому что нет привязки к "LLW" и т.д., а просто перемножаются длина и ширина. На как это сделать в массиве - не знаю... sad
 
Ответить
СообщениеВсем огромное спасибо, оба варианта для меня приемлемы.

Но как же все таки применить теперь формулу массива, чтобы вычислить площадь. Это должно быть проще, потому что нет привязки к "LLW" и т.д., а просто перемножаются длина и ширина. На как это сделать в массиве - не знаю... sad

Автор - Rusel
Дата добавления - 21.06.2012 в 15:35
Serge_007 Дата: Четверг, 21.06.2012, 15:36 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Поправил
[vba]
Code
=СУММ(ВЫБОР(ЕСЛИ(F5:F12<>"";ПОИСКПОЗ(F5:F12;{"l";"ll";"lw";"lww";"llw";"llww";"w";"ww"};);9);C5:C12;C5:C12*2;C5:C12+D5:D12;C5:C12+D5:D12*2;C5:C12*2+D5:D12;(C5:C12+D5:D12)*2;D5:D12;D5:D12*2;0)*B5:B12)
[/vba]

Quote (Rusel)
просто перемножаются длина и ширина

Отдельной формулой надо?
К сообщению приложен файл: Rusel_22.xls (33.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПоправил
[vba]
Code
=СУММ(ВЫБОР(ЕСЛИ(F5:F12<>"";ПОИСКПОЗ(F5:F12;{"l";"ll";"lw";"lww";"llw";"llww";"w";"ww"};);9);C5:C12;C5:C12*2;C5:C12+D5:D12;C5:C12+D5:D12*2;C5:C12*2+D5:D12;(C5:C12+D5:D12)*2;D5:D12;D5:D12*2;0)*B5:B12)
[/vba]

Quote (Rusel)
просто перемножаются длина и ширина

Отдельной формулой надо?

Автор - Serge_007
Дата добавления - 21.06.2012 в 15:36
Gustav Дата: Четверг, 21.06.2012, 15:43 | Сообщение № 12
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Quote (Gustav)
Хех! Я вот тоже думал, что для одной строки достаточно, но раз желаете одной формулой, то - извольте, тоже массивная:

=СУММ( B5:B12 * (
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"L";"")) ) * C5:C12
+
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"W";"")) ) * D5:D12
) )

Упс! Оказывается ZORRO2005 меня уже "массивно воплотил" в своем файле чуть раньше smile Ну, тогда, пользуясь случаем хочу заострить внимание сообщества над несколько иным попутным вопросом - не пора ли нам задуматься над форматированием публикуемых формул? Свою вот здесь приблизительно отформатировал - не идеал, но всё же, как мне кажется, попонятнее, чем когда сплошным потоком символов. Что думаете по этому поводу? Можно попробовать сообща выработать какие-то примерные правила форматирования...


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Quote (Gustav)
Хех! Я вот тоже думал, что для одной строки достаточно, но раз желаете одной формулой, то - извольте, тоже массивная:

=СУММ( B5:B12 * (
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"L";"")) ) * C5:C12
+
( ДЛСТР(F5:F12) - ДЛСТР(ПОДСТАВИТЬ(F5:F12;"W";"")) ) * D5:D12
) )

Упс! Оказывается ZORRO2005 меня уже "массивно воплотил" в своем файле чуть раньше smile Ну, тогда, пользуясь случаем хочу заострить внимание сообщества над несколько иным попутным вопросом - не пора ли нам задуматься над форматированием публикуемых формул? Свою вот здесь приблизительно отформатировал - не идеал, но всё же, как мне кажется, попонятнее, чем когда сплошным потоком символов. Что думаете по этому поводу? Можно попробовать сообща выработать какие-то примерные правила форматирования...

Автор - Gustav
Дата добавления - 21.06.2012 в 15:43
Rusel Дата: Четверг, 21.06.2012, 15:43 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Да, отдельной, в другую ячейку
 
Ответить
СообщениеДа, отдельной, в другую ячейку

Автор - Rusel
Дата добавления - 21.06.2012 в 15:43
Serge_007 Дата: Четверг, 21.06.2012, 16:16 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Rusel)
отдельной, в другую ячейку

[vba]
Code
=СУММ(ЕСЛИ((C5:C12>0)+(D5:D12>0)=1;C5:C12+D5:D12;ЕСЛИ((C5:C12>0)+(D5:D12>0)=2;C5:C12*D5:D12;0)))
[/vba]

Quote (Gustav)
Оказывается ZORRO2005 меня уже "массивно воплотил" в своем файле чуть раньше

И меня smile
Чуть по другому правда, но суть та же

Quote (Gustav)
Что думаете по этому поводу?

Я уже заказал Syntax Higlighter для тегов [cоde] [/cоde]. Жду пока автор вернётся из отпуска
ЗЫ Этот вопрос лучше было задавать в специальной теме. Дизайн постов называется smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Rusel)
отдельной, в другую ячейку

[vba]
Code
=СУММ(ЕСЛИ((C5:C12>0)+(D5:D12>0)=1;C5:C12+D5:D12;ЕСЛИ((C5:C12>0)+(D5:D12>0)=2;C5:C12*D5:D12;0)))
[/vba]

Quote (Gustav)
Оказывается ZORRO2005 меня уже "массивно воплотил" в своем файле чуть раньше

И меня smile
Чуть по другому правда, но суть та же

Quote (Gustav)
Что думаете по этому поводу?

Я уже заказал Syntax Higlighter для тегов [cоde] [/cоde]. Жду пока автор вернётся из отпуска
ЗЫ Этот вопрос лучше было задавать в специальной теме. Дизайн постов называется smile

Автор - Serge_007
Дата добавления - 21.06.2012 в 16:16
Serge_007 Дата: Четверг, 21.06.2012, 16:36 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (ZORRO2005)
Площадь:
=СУММ(C5:C12*D5:D12) -формула массива

Серёг, так не будет работать для
L
LL
W
WW


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (ZORRO2005)
Площадь:
=СУММ(C5:C12*D5:D12) -формула массива

Серёг, так не будет работать для
L
LL
W
WW

Автор - Serge_007
Дата добавления - 21.06.2012 в 16:36
Michael_S Дата: Четверг, 21.06.2012, 17:08 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Еще такой вариант
К сообщению приложен файл: Rusel.xls (33.5 Kb)


Сообщение отредактировал Michael_S - Четверг, 21.06.2012, 17:17
 
Ответить
СообщениеЕще такой вариант

Автор - Michael_S
Дата добавления - 21.06.2012 в 17:08
MCH Дата: Четверг, 21.06.2012, 23:18 | Сообщение № 17
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

ну и мой вариант, на примере файла Zorro - 8885773_3.xls , формула массива:
Code
=СУММ(МУМНОЖ(ВЫБОР(ПОИСК(ПСТР(F5:F11;{1;2;3;4};1);" LW");;C5:C11;D5:D11);{1:1:1:1})*B5:B11)

можно и без МУМНОЖ (зачем два раза складывать?):
Code
=СУММ(ВЫБОР(ПОИСК(ПСТР(F5:F11;{1;2;3;4};1);" LW");;C5:C11;D5:D11)*B5:B11)
 
Ответить
Сообщениену и мой вариант, на примере файла Zorro - 8885773_3.xls , формула массива:
Code
=СУММ(МУМНОЖ(ВЫБОР(ПОИСК(ПСТР(F5:F11;{1;2;3;4};1);" LW");;C5:C11;D5:D11);{1:1:1:1})*B5:B11)

можно и без МУМНОЖ (зачем два раза складывать?):
Code
=СУММ(ВЫБОР(ПОИСК(ПСТР(F5:F11;{1;2;3;4};1);" LW");;C5:C11;D5:D11)*B5:B11)

Автор - MCH
Дата добавления - 21.06.2012 в 23:18
Rusel Дата: Пятница, 22.06.2012, 06:10 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 10 ±
Замечаний: 0% ±

Еще раз всех благодарю за оперативную помощь!!!
 
Ответить
СообщениеЕще раз всех благодарю за оперативную помощь!!!

Автор - Rusel
Дата добавления - 22.06.2012 в 06:10
  • Страница 1 из 1
  • 1
Поиск:

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