EXCEL. сложение и умножение в одной ячейке.
m23jordan1
Дата: Воскресенье, 31.03.2024, 19:43 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
Помогите, пожалуйста. Задача в двух вопросах!! 1)Eсли в ячейки цифра до 10, то сумма в др ячейке нужна 0. А если цифра в ячейке от 11 и выше, то надо умножить на 3. Например: Цифра в ячейке 22 * 3 = 36, 30 * 3 = 60. т.е. при этом умножении первый десяток не учитывается 2)В ячейке может стоять любое число, а рядом с ним (в этой же ячейке) тоже любое число , но оно в скобках. Это число в скобках надо умножить на 3. При том 1 часть вопроса должна тоже участвовать в решении. Например: 1) 10 (1) результат в др ячейке 3 2) 15 (2) результат в др ячейке 21 3) 22 (4) результат в др ячейке 48 Помогите, пожалуйста!
Помогите, пожалуйста. Задача в двух вопросах!! 1)Eсли в ячейки цифра до 10, то сумма в др ячейке нужна 0. А если цифра в ячейке от 11 и выше, то надо умножить на 3. Например: Цифра в ячейке 22 * 3 = 36, 30 * 3 = 60. т.е. при этом умножении первый десяток не учитывается 2)В ячейке может стоять любое число, а рядом с ним (в этой же ячейке) тоже любое число , но оно в скобках. Это число в скобках надо умножить на 3. При том 1 часть вопроса должна тоже участвовать в решении. Например: 1) 10 (1) результат в др ячейке 3 2) 15 (2) результат в др ячейке 21 3) 22 (4) результат в др ячейке 48 Помогите, пожалуйста! m23jordan1
Ответить
Сообщение Помогите, пожалуйста. Задача в двух вопросах!! 1)Eсли в ячейки цифра до 10, то сумма в др ячейке нужна 0. А если цифра в ячейке от 11 и выше, то надо умножить на 3. Например: Цифра в ячейке 22 * 3 = 36, 30 * 3 = 60. т.е. при этом умножении первый десяток не учитывается 2)В ячейке может стоять любое число, а рядом с ним (в этой же ячейке) тоже любое число , но оно в скобках. Это число в скобках надо умножить на 3. При том 1 часть вопроса должна тоже участвовать в решении. Например: 1) 10 (1) результат в др ячейке 3 2) 15 (2) результат в др ячейке 21 3) 22 (4) результат в др ячейке 48 Помогите, пожалуйста! Автор - m23jordan1 Дата добавления - 31.03.2024 в 19:43
DrMini
Дата: Воскресенье, 31.03.2024, 21:08 |
Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1872
Репутация:
268
±
Замечаний:
0% ±
Excel LTSC 2024 RUS
По первому вопросу можно так:Код
=ЕСЛИ(A1>=11;(A1-10)*3;)
Второй вопрос не понял. Приложите файл, как надо.
По первому вопросу можно так:Код
=ЕСЛИ(A1>=11;(A1-10)*3;)
Второй вопрос не понял. Приложите файл, как надо. DrMini
Сообщение отредактировал DrMini - Воскресенье, 31.03.2024, 21:09
Ответить
Сообщение По первому вопросу можно так:Код
=ЕСЛИ(A1>=11;(A1-10)*3;)
Второй вопрос не понял. Приложите файл, как надо. Автор - DrMini Дата добавления - 31.03.2024 в 21:08
AlexM
Дата: Воскресенье, 31.03.2024, 21:15 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
Код
=(МАКС(;ЛЕВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));19)-10)+ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));19))*3
Код
=СУММ(--(0&ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));{1;19};19)-{10;0};"0;;")))*3
Код
=(МАКС(;ЛЕВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));19)-10)+ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));19))*3
Код
=СУММ(--(0&ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));{1;19};19)-{10;0};"0;;")))*3
AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Воскресенье, 31.03.2024, 21:25
Ответить
Сообщение Код
=(МАКС(;ЛЕВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));19)-10)+ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));19))*3
Код
=СУММ(--(0&ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;")";);"(";ПОВТОР(" ";19));{1;19};19)-{10;0};"0;;")))*3
Автор - AlexM Дата добавления - 31.03.2024 в 21:15
DrMini
Дата: Воскресенье, 31.03.2024, 21:27 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1872
Репутация:
268
±
Замечаний:
0% ±
Excel LTSC 2024 RUS
По второму вопросу вышло так:Код
=ЕСЛИ(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)>=11;(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)-10)*3;)+ПСТР(A3;ПОИСК("(";A3)+1;ПОИСК(")";A3)-ПОИСК("(";A3)-1)*3
По второму вопросу вышло так:Код
=ЕСЛИ(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)>=11;(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)-10)*3;)+ПСТР(A3;ПОИСК("(";A3)+1;ПОИСК(")";A3)-ПОИСК("(";A3)-1)*3
DrMini
Ответить
Сообщение По второму вопросу вышло так:Код
=ЕСЛИ(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)>=11;(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)-10)*3;)+ПСТР(A3;ПОИСК("(";A3)+1;ПОИСК(")";A3)-ПОИСК("(";A3)-1)*3
Автор - DrMini Дата добавления - 31.03.2024 в 21:27
AlexM
Дата: Воскресенье, 31.03.2024, 21:31 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
DrMini , 5 (2) должно быть 6, а у вас -9
DrMini , 5 (2) должно быть 6, а у вас -9AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение DrMini , 5 (2) должно быть 6, а у вас -9Автор - AlexM Дата добавления - 31.03.2024 в 21:31
m23jordan1
Дата: Воскресенье, 31.03.2024, 21:33 |
Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
DrMini,
Ответить
Сообщение DrMini, Автор - m23jordan1 Дата добавления - 31.03.2024 в 21:33
DrMini
Дата: Воскресенье, 31.03.2024, 21:33 |
Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1872
Репутация:
268
±
Замечаний:
0% ±
Excel LTSC 2024 RUS
5 (2) должно быть 6, а у вас -9
Точняк. UPD тогда так:Код
=СУММ(ЕСЛИ(--ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)>=11;(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)-10)*3;);ПСТР(A3;ПОИСК("(";A3)+1;ПОИСК(")";A3)-ПОИСК("(";A3)-1)*3)
5 (2) должно быть 6, а у вас -9
Точняк. UPD тогда так:Код
=СУММ(ЕСЛИ(--ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)>=11;(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)-10)*3;);ПСТР(A3;ПОИСК("(";A3)+1;ПОИСК(")";A3)-ПОИСК("(";A3)-1)*3)
DrMini
Сообщение отредактировал DrMini - Воскресенье, 31.03.2024, 21:44
Ответить
Сообщение 5 (2) должно быть 6, а у вас -9
Точняк. UPD тогда так:Код
=СУММ(ЕСЛИ(--ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)>=11;(ЛЕВСИМВ(A3;НАЙТИ("(";A3)-1)-10)*3;);ПСТР(A3;ПОИСК("(";A3)+1;ПОИСК(")";A3)-ПОИСК("(";A3)-1)*3)
Автор - DrMini Дата добавления - 31.03.2024 в 21:33
AlexM
Дата: Воскресенье, 31.03.2024, 21:38 |
Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
Код
=ЕСЛИОШИБКА(СУММ(--(0&ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(E11&"(0)";")";);"(";ПОВТОР(" ";19));{1;19};19)-{10;0};"0;;")))*3;"")
Или последний аргумент функции ЕСЛИОШИБКА() поставьте 0
Код
=ЕСЛИОШИБКА(СУММ(--(0&ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(E11&"(0)";")";);"(";ПОВТОР(" ";19));{1;19};19)-{10;0};"0;;")))*3;"")
Или последний аргумент функции ЕСЛИОШИБКА() поставьте 0AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Воскресенье, 31.03.2024, 22:08
Ответить
Сообщение Код
=ЕСЛИОШИБКА(СУММ(--(0&ТЕКСТ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(E11&"(0)";")";);"(";ПОВТОР(" ";19));{1;19};19)-{10;0};"0;;")))*3;"")
Или последний аргумент функции ЕСЛИОШИБКА() поставьте 0Автор - AlexM Дата добавления - 31.03.2024 в 21:38
Светлый
Дата: Воскресенье, 31.03.2024, 21:50 |
Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
А так устроит?Код
=ЕСЛИ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10>0;ЛЕВБ(A1;ПОИСК("(";A1)-1))-ПСТР(A1;ПОИСК("(";A1);99)*3
А так устроит?Код
=ЕСЛИ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10>0;ЛЕВБ(A1;ПОИСК("(";A1)-1))-ПСТР(A1;ПОИСК("(";A1);99)*3
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение А так устроит?Код
=ЕСЛИ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10>0;ЛЕВБ(A1;ПОИСК("(";A1)-1))-ПСТР(A1;ПОИСК("(";A1);99)*3
Автор - Светлый Дата добавления - 31.03.2024 в 21:50
AlexM
Дата: Воскресенье, 31.03.2024, 21:53 |
Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
Светлый , 22 (4) результат в др ячейке 48 10 - 0 11 - 3
Светлый , 22 (4) результат в др ячейке 48 10 - 0 11 - 3AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение Светлый , 22 (4) результат в др ячейке 48 10 - 0 11 - 3Автор - AlexM Дата добавления - 31.03.2024 в 21:53
Светлый
Дата: Воскресенье, 31.03.2024, 22:02 |
Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
Тогда так:Код
=ЕСЛИ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10>0;(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10)*3)-ПСТР(A1;ПОИСК("(";A1);99)*3
*Или так:Код
=(ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99))*3
**С учётом ошибки:Код
=(ТЕКСТ(ЛЕВБ(A3;ЕСЛИОШИБКА(ПОИСК("(";A3);9)-1)-10;"0;\0")-ЕСЛИОШИБКА(ПСТР(A3;ПОИСК("(";A3);9);))*3
Тогда так:Код
=ЕСЛИ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10>0;(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10)*3)-ПСТР(A1;ПОИСК("(";A1);99)*3
*Или так:Код
=(ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99))*3
**С учётом ошибки:Код
=(ТЕКСТ(ЛЕВБ(A3;ЕСЛИОШИБКА(ПОИСК("(";A3);9)-1)-10;"0;\0")-ЕСЛИОШИБКА(ПСТР(A3;ПОИСК("(";A3);9);))*3
Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Воскресенье, 31.03.2024, 22:18
Ответить
Сообщение Тогда так:Код
=ЕСЛИ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10>0;(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10)*3)-ПСТР(A1;ПОИСК("(";A1);99)*3
*Или так:Код
=(ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99))*3
**С учётом ошибки:Код
=(ТЕКСТ(ЛЕВБ(A3;ЕСЛИОШИБКА(ПОИСК("(";A3);9)-1)-10;"0;\0")-ЕСЛИОШИБКА(ПСТР(A3;ПОИСК("(";A3);9);))*3
Автор - Светлый Дата добавления - 31.03.2024 в 22:02
AlexM
Дата: Воскресенье, 31.03.2024, 22:06 |
Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
Ошибка при значениях без числа в скобках 10 и 11 получаем #ЗНАЧ!
Ошибка при значениях без числа в скобках 10 и 11 получаем #ЗНАЧ! AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение Ошибка при значениях без числа в скобках 10 и 11 получаем #ЗНАЧ! Автор - AlexM Дата добавления - 31.03.2024 в 22:06
m23jordan1
Дата: Воскресенье, 31.03.2024, 22:20 |
Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация:
0
±
Замечаний:
0% ±
РЕбят!!! реально, Спасибо за помощь. Заработало все! все как нужно! долго не отвечал, . проверял, на одном компе (жены )все ОК, а на моем компе пишет ошибка #ИМЯ?. разобрался , версия EXCEL 2003 года, да-да, комп, старый но я только в нем работаю. Можно ли под мою версию что-то или "запить водой"?
РЕбят!!! реально, Спасибо за помощь. Заработало все! все как нужно! долго не отвечал, . проверял, на одном компе (жены )все ОК, а на моем компе пишет ошибка #ИМЯ?. разобрался , версия EXCEL 2003 года, да-да, комп, старый но я только в нем работаю. Можно ли под мою версию что-то или "запить водой"? m23jordan1
Ответить
Сообщение РЕбят!!! реально, Спасибо за помощь. Заработало все! все как нужно! долго не отвечал, . проверял, на одном компе (жены )все ОК, а на моем компе пишет ошибка #ИМЯ?. разобрался , версия EXCEL 2003 года, да-да, комп, старый но я только в нем работаю. Можно ли под мою версию что-то или "запить водой"? Автор - m23jordan1 Дата добавления - 31.03.2024 в 22:20
AlexM
Дата: Воскресенье, 31.03.2024, 22:23 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
тогда так.
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Сообщение тогда так. Автор - AlexM Дата добавления - 31.03.2024 в 22:23
Светлый
Дата: Воскресенье, 31.03.2024, 22:29 |
Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
Для 2003:Код
=(ТЕКСТ(ЛЕВБ(A1;ЕСЛИ(ЕОШ(ПОИСК("(";A1));9;ПОИСК("(";A1))-1)-10;"0;\0")-ЕСЛИ(ЕОШ(ПОИСК("(";A1));;ПСТР(A1;ПОИСК("(";A1);99)))*3
*Код
=ЕСЛИ(ЕОШ(ПОИСК("(";A1));ТЕКСТ(A1-10;"0;\0");(ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99)))*3
**Код
=ЕСЛИ(ЕОШ(-A1);ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99);ТЕКСТ(A1-10;"0;\0"))*3
***ПодсмотрелКод
=ЕСЛИ(ЕОШ(-A1);МАКС(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;)-ПСТР(A1;ПОИСК("(";A1);99);МАКС(A1-10;))*3
Для 2003:Код
=(ТЕКСТ(ЛЕВБ(A1;ЕСЛИ(ЕОШ(ПОИСК("(";A1));9;ПОИСК("(";A1))-1)-10;"0;\0")-ЕСЛИ(ЕОШ(ПОИСК("(";A1));;ПСТР(A1;ПОИСК("(";A1);99)))*3
*Код
=ЕСЛИ(ЕОШ(ПОИСК("(";A1));ТЕКСТ(A1-10;"0;\0");(ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99)))*3
**Код
=ЕСЛИ(ЕОШ(-A1);ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99);ТЕКСТ(A1-10;"0;\0"))*3
***ПодсмотрелКод
=ЕСЛИ(ЕОШ(-A1);МАКС(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;)-ПСТР(A1;ПОИСК("(";A1);99);МАКС(A1-10;))*3
Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Воскресенье, 31.03.2024, 23:12
Ответить
Сообщение Для 2003:Код
=(ТЕКСТ(ЛЕВБ(A1;ЕСЛИ(ЕОШ(ПОИСК("(";A1));9;ПОИСК("(";A1))-1)-10;"0;\0")-ЕСЛИ(ЕОШ(ПОИСК("(";A1));;ПСТР(A1;ПОИСК("(";A1);99)))*3
*Код
=ЕСЛИ(ЕОШ(ПОИСК("(";A1));ТЕКСТ(A1-10;"0;\0");(ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99)))*3
**Код
=ЕСЛИ(ЕОШ(-A1);ТЕКСТ(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;"0;\0")-ПСТР(A1;ПОИСК("(";A1);99);ТЕКСТ(A1-10;"0;\0"))*3
***ПодсмотрелКод
=ЕСЛИ(ЕОШ(-A1);МАКС(ЛЕВБ(A1;ПОИСК("(";A1)-1)-10;)-ПСТР(A1;ПОИСК("(";A1);99);МАКС(A1-10;))*3
Автор - Светлый Дата добавления - 31.03.2024 в 22:29 Ответить
Сообщение Оооооо!! для меня это чудо! на моем компе тож заработало. Спасибо еще раз Ребята за помощь! Всего Вам хорошего! Спасибо! Автор - m23jordan1 Дата добавления - 31.03.2024 в 22:37
Gustav
Дата: Воскресенье, 31.03.2024, 23:05 |
Сообщение № 17
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация:
1161
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
Запилил через имя calcLeftCell , созданное по Ctrl+F3, с использованием макрофункции ВЫЧИСЛИТЬ:Код
=ВЫЧИСЛИТЬ("МАКС(;"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1&"(0)";"(";"+");")";"*3");"+";"-10)*3+";1))
Имя создавалось при активной ячейке B1, поэтому ячейка слева от нее - A1, на которую и ссылается формула. Поскольку макрофункции относятся к макросам, то прилагаемый файл имеет тип .xlsM, а не .xlsX (это нормально). Работает так: в некоторую ячейку вводится проверочное выражение, а в ячейку СПРАВА от нее (в той же строке, но в следующем столбце) вводится формула "вычисленияЯчейкиСлева": В процессе работы функция ВЫЧИСЛИТЬ обрабатывает примерно следующие выражения, подготовленные для нее "внутренней начинкой" формулы: Так, для числа 30 фактически происходит вычисление выражения (ответ = 60): а для строки "22 (4)" - вычисление выражения (ответ = 48):Код
МАКС(;22 -10)*3+4*3+0*3
Фиктивная строка "(0)" внутри формулы добавляется в конец каждого тестируемого выражения - для единообразия обработки строк с "добавкой" в скобках и без нее. [p.s.]И раз уж невольно про макросы вспомнили,[/p.s.] то до кучи еще и UDF с одной строкой кода: [vba]Код
Public Function calcCell(x) calcCell = 3 * (WorksheetFunction.Max(0, Val(x) - 10) + Val(Split(x & "(0)", "(")(1))) End Function
[/vba]
Запилил через имя calcLeftCell , созданное по Ctrl+F3, с использованием макрофункции ВЫЧИСЛИТЬ:Код
=ВЫЧИСЛИТЬ("МАКС(;"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1&"(0)";"(";"+");")";"*3");"+";"-10)*3+";1))
Имя создавалось при активной ячейке B1, поэтому ячейка слева от нее - A1, на которую и ссылается формула. Поскольку макрофункции относятся к макросам, то прилагаемый файл имеет тип .xlsM, а не .xlsX (это нормально). Работает так: в некоторую ячейку вводится проверочное выражение, а в ячейку СПРАВА от нее (в той же строке, но в следующем столбце) вводится формула "вычисленияЯчейкиСлева": В процессе работы функция ВЫЧИСЛИТЬ обрабатывает примерно следующие выражения, подготовленные для нее "внутренней начинкой" формулы: Так, для числа 30 фактически происходит вычисление выражения (ответ = 60): а для строки "22 (4)" - вычисление выражения (ответ = 48):Код
МАКС(;22 -10)*3+4*3+0*3
Фиктивная строка "(0)" внутри формулы добавляется в конец каждого тестируемого выражения - для единообразия обработки строк с "добавкой" в скобках и без нее. [p.s.]И раз уж невольно про макросы вспомнили,[/p.s.] то до кучи еще и UDF с одной строкой кода: [vba]Код
Public Function calcCell(x) calcCell = 3 * (WorksheetFunction.Max(0, Val(x) - 10) + Val(Split(x & "(0)", "(")(1))) End Function
[/vba] Gustav
МОИ: Ник , Tip box: 41001663842605
Сообщение отредактировал Gustav - Воскресенье, 31.03.2024, 23:28
Ответить
Сообщение Запилил через имя calcLeftCell , созданное по Ctrl+F3, с использованием макрофункции ВЫЧИСЛИТЬ:Код
=ВЫЧИСЛИТЬ("МАКС(;"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1&"(0)";"(";"+");")";"*3");"+";"-10)*3+";1))
Имя создавалось при активной ячейке B1, поэтому ячейка слева от нее - A1, на которую и ссылается формула. Поскольку макрофункции относятся к макросам, то прилагаемый файл имеет тип .xlsM, а не .xlsX (это нормально). Работает так: в некоторую ячейку вводится проверочное выражение, а в ячейку СПРАВА от нее (в той же строке, но в следующем столбце) вводится формула "вычисленияЯчейкиСлева": В процессе работы функция ВЫЧИСЛИТЬ обрабатывает примерно следующие выражения, подготовленные для нее "внутренней начинкой" формулы: Так, для числа 30 фактически происходит вычисление выражения (ответ = 60): а для строки "22 (4)" - вычисление выражения (ответ = 48):Код
МАКС(;22 -10)*3+4*3+0*3
Фиктивная строка "(0)" внутри формулы добавляется в конец каждого тестируемого выражения - для единообразия обработки строк с "добавкой" в скобках и без нее. [p.s.]И раз уж невольно про макросы вспомнили,[/p.s.] то до кучи еще и UDF с одной строкой кода: [vba]Код
Public Function calcCell(x) calcCell = 3 * (WorksheetFunction.Max(0, Val(x) - 10) + Val(Split(x & "(0)", "(")(1))) End Function
[/vba] Автор - Gustav Дата добавления - 31.03.2024 в 23:05
bmv98rus
Дата: Воскресенье, 31.03.2024, 23:13 |
Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
ну и я отмечусьКод
=SUM(--TEXT(({0;""}&MID(SUBSTITUTE(E11&"(0)";"(";REPT(" ";15)&"(");{1;"15"};15))-{10;0};{"0;\0";"0;0"}))*3
Не знаю может ли быть только (3) я учел.
ну и я отмечусьКод
=SUM(--TEXT(({0;""}&MID(SUBSTITUTE(E11&"(0)";"(";REPT(" ";15)&"(");{1;"15"};15))-{10;0};{"0;\0";"0;0"}))*3
Не знаю может ли быть только (3) я учел. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Воскресенье, 31.03.2024, 23:17
Ответить
Сообщение ну и я отмечусьКод
=SUM(--TEXT(({0;""}&MID(SUBSTITUTE(E11&"(0)";"(";REPT(" ";15)&"(");{1;"15"};15))-{10;0};{"0;\0";"0;0"}))*3
Не знаю может ли быть только (3) я учел. Автор - bmv98rus Дата добавления - 31.03.2024 в 23:13
AlexM
Дата: Понедельник, 01.04.2024, 10:31 |
Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация:
1129
±
Замечаний:
0% ±
Excel 2003
Еще вариантКод
=3*(МАКС(;ЛЕВБ(A2;ПОИСК("?(";A2&"("))-10)-ЕСЛИ(Ч(A2);;ПСТР(A2;ПОИСК("(";A2);9)))
Еще вариантКод
=3*(МАКС(;ЛЕВБ(A2;ПОИСК("?(";A2&"("))-10)-ЕСЛИ(Ч(A2);;ПСТР(A2;ПОИСК("(";A2);9)))
AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Понедельник, 01.04.2024, 11:19
Ответить
Сообщение Еще вариантКод
=3*(МАКС(;ЛЕВБ(A2;ПОИСК("?(";A2&"("))-10)-ЕСЛИ(Ч(A2);;ПСТР(A2;ПОИСК("(";A2);9)))
Автор - AlexM Дата добавления - 01.04.2024 в 10:31
bmv98rus
Дата: Понедельник, 01.04.2024, 21:00 |
Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
AlexM , а как правильно. Дожал или ужал :-) Если в ячейке пусто то ошибка.
AlexM , а как правильно. Дожал или ужал :-) Если в ячейке пусто то ошибка.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение AlexM , а как правильно. Дожал или ужал :-) Если в ячейке пусто то ошибка.Автор - bmv98rus Дата добавления - 01.04.2024 в 21:00