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

Вход

Регистрация

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

 

= Мир MS Excel/Расчет данных из текста - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Расчет данных из текста (Формулы/Formulas)
Расчет данных из текста
MrMishania Дата: Понедельник, 06.05.2024, 18:16 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.
Просьба подсказать, какими формулами можно сделать расчет из текста?
Пример - я ввожу данные по коробке, её габариты: 758*113*520 (без знака равно, мне нужны данные по размерам коробки, без расчета)
Дальше я считаю сколько это кубов, понятное дело что можно в соседней ячейке ввести эти же цифры и поделить на 1000000000, если данные в миллиметрах и тп. Но я не хочу повторно вводить эти данные, я хочу чтобы у меня из ячейки где указаны габариты без знака равно 758*113*520 сразу считалось в куб.
Я пробовал через =ЧЗНАЧ(СЦЕПИТЬ("=";R2)) где R2 это ячейка в формате текста, с текстом "758*113*520". При сцеплении с "=" получается "=758*113*520" - осталось только чтобы это как-то началось считаться, методом тыка и поиска думал что поможет функция ЧЗНАЧ, но она не работает.
Можно ли как-то сделать, чтобы из данных с габаритами в соседней ячейке сразу считалось сколько это в кубах? Я могу жить без этого, вводя в след ячейке данные повторно, но уже дело принципа, я и более сложные вещи вывозил, а здесь тупик...
 
Ответить
СообщениеДобрый день.
Просьба подсказать, какими формулами можно сделать расчет из текста?
Пример - я ввожу данные по коробке, её габариты: 758*113*520 (без знака равно, мне нужны данные по размерам коробки, без расчета)
Дальше я считаю сколько это кубов, понятное дело что можно в соседней ячейке ввести эти же цифры и поделить на 1000000000, если данные в миллиметрах и тп. Но я не хочу повторно вводить эти данные, я хочу чтобы у меня из ячейки где указаны габариты без знака равно 758*113*520 сразу считалось в куб.
Я пробовал через =ЧЗНАЧ(СЦЕПИТЬ("=";R2)) где R2 это ячейка в формате текста, с текстом "758*113*520". При сцеплении с "=" получается "=758*113*520" - осталось только чтобы это как-то началось считаться, методом тыка и поиска думал что поможет функция ЧЗНАЧ, но она не работает.
Можно ли как-то сделать, чтобы из данных с габаритами в соседней ячейке сразу считалось сколько это в кубах? Я могу жить без этого, вводя в след ячейке данные повторно, но уже дело принципа, я и более сложные вещи вывозил, а здесь тупик...

Автор - MrMishania
Дата добавления - 06.05.2024 в 18:16
AlexM Дата: Понедельник, 06.05.2024, 18:28 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4513
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
файл-пример приложите
В А1 - 758*113*520
Код
=ПРОИЗВЕД(--ПСТР(ПОДСТАВИТЬ(A1;"*";ПОВТОР(" ";99));{0;1;2}*99+1;99))/10^9



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 06.05.2024, 18:36
 
Ответить
Сообщениефайл-пример приложите
В А1 - 758*113*520
Код
=ПРОИЗВЕД(--ПСТР(ПОДСТАВИТЬ(A1;"*";ПОВТОР(" ";99));{0;1;2}*99+1;99))/10^9

Автор - AlexM
Дата добавления - 06.05.2024 в 18:28
MrMishania Дата: Вторник, 07.05.2024, 11:25 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

AlexM спаcибо! Посмотрю сейчас. Немного не ожидал что настолько длинное решение))
Пример во вложении. Там первая строчка неудачная попытка через "чзнач", а остальные просто оставил как раньше, где руками вводить габариты опять. А хочу чтобы введя в поле габариты, след срока автоматом переводила в кубы. Понятное дело без этого жил, сейчас просто дело принципа, полюбому же можно)
К сообщению приложен файл: primer_gabarity.xlsx (10.4 Kb)


Сообщение отредактировал MrMishania - Вторник, 07.05.2024, 11:27
 
Ответить
СообщениеAlexM спаcибо! Посмотрю сейчас. Немного не ожидал что настолько длинное решение))
Пример во вложении. Там первая строчка неудачная попытка через "чзнач", а остальные просто оставил как раньше, где руками вводить габариты опять. А хочу чтобы введя в поле габариты, след срока автоматом переводила в кубы. Понятное дело без этого жил, сейчас просто дело принципа, полюбому же можно)

Автор - MrMishania
Дата добавления - 07.05.2024 в 11:25
Nic70y Дата: Вторник, 07.05.2024, 11:37 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 8791
Репутация: 2293 ±
Замечаний: 0% ±

Excel 2010
вариант UDF
[vba]
Код
Function xb(a As Range)
    xb = Evaluate(a.Value) / 1000000000
End Function
[/vba]
К сообщению приложен файл: primer_gabarity.xlsm (15.0 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениевариант UDF
[vba]
Код
Function xb(a As Range)
    xb = Evaluate(a.Value) / 1000000000
End Function
[/vba]

Автор - Nic70y
Дата добавления - 07.05.2024 в 11:37
AlexM Дата: Вторник, 07.05.2024, 11:59 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4513
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
А хочу чтобы введя в поле габариты, след срока автоматом переводила в кубы
Так и работает формула. Формула для таких преобразований совсем не длинная.
К сообщению приложен файл: primer_gabarity_1.xlsx (10.6 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
А хочу чтобы введя в поле габариты, след срока автоматом переводила в кубы
Так и работает формула. Формула для таких преобразований совсем не длинная.

Автор - AlexM
Дата добавления - 07.05.2024 в 11:59
MrMishania Дата: Вторник, 07.05.2024, 12:17 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

AlexM у меня ваш файлик на даёт скачать защита. Я из офиса сижу. Из дома чекну. Спасибо!
Nic70y - спасибо! Это просто ппц, функция xb, никогда не слышал, и сам бы не догадался. Даже обидно что всё ТАК было просто. Респект!
Репутация вам не могу повысить, видимо из-за того что новичок на форуме.


Сообщение отредактировал MrMishania - Вторник, 07.05.2024, 12:19
 
Ответить
СообщениеAlexM у меня ваш файлик на даёт скачать защита. Я из офиса сижу. Из дома чекну. Спасибо!
Nic70y - спасибо! Это просто ппц, функция xb, никогда не слышал, и сам бы не догадался. Даже обидно что всё ТАК было просто. Респект!
Репутация вам не могу повысить, видимо из-за того что новичок на форуме.

Автор - MrMishania
Дата добавления - 07.05.2024 в 12:17
MrMishania Дата: Вторник, 07.05.2024, 12:28 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

аааа, это нужно через макросы делать, чтобы xb работала, ясно)) а то было подозрительно просто.
 
Ответить
Сообщениеаааа, это нужно через макросы делать, чтобы xb работала, ясно)) а то было подозрительно просто.

Автор - MrMishania
Дата добавления - 07.05.2024 в 12:28
MrMishania Дата: Вторник, 07.05.2024, 13:07 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

=ПРОИЗВЕД(--ПСТР(ПОДСТАВИТЬ(A1;"*";ПОВТОР(" ";99));{0;1;2}*99+1;99))/10^9

работает, но ппц длинная формула, подставить то подставил, но вообще не понимаю пока смысл)) но главное что работает.
 
Ответить
Сообщение
=ПРОИЗВЕД(--ПСТР(ПОДСТАВИТЬ(A1;"*";ПОВТОР(" ";99));{0;1;2}*99+1;99))/10^9

работает, но ппц длинная формула, подставить то подставил, но вообще не понимаю пока смысл)) но главное что работает.

Автор - MrMishania
Дата добавления - 07.05.2024 в 13:07
Nic70y Дата: Вторник, 07.05.2024, 13:11 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 8791
Репутация: 2293 ±
Замечаний: 0% ±

Excel 2010
аааа, это нужно через макросы делать
ну можно и так сказать
UDF - User Defined Function - Пользовательская функция
длинная формула
это еще не длинная)
Репутация вам не могу повысить
повысили)


ЮMoney 41001841029809
 
Ответить
Сообщение
аааа, это нужно через макросы делать
ну можно и так сказать
UDF - User Defined Function - Пользовательская функция
длинная формула
это еще не длинная)
Репутация вам не могу повысить
повысили)

Автор - Nic70y
Дата добавления - 07.05.2024 в 13:11
AlexM Дата: Вторник, 07.05.2024, 13:13 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4513
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
1. подставляем вместо "*" 99 пробелов
2. --ПСТР() из полученной в 1 строки извлекаем по 99 символов начиная с 1, 100 и 199. получаем массив из трех чисел.
3. ПРОИЗВ() перемножаем три числа и переводим в кубы разделяя на 10^9 (1000000000)
Для вашего случая формулу можно немного сократить заменив 99 на 9



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Вторник, 07.05.2024, 13:17
 
Ответить
Сообщение1. подставляем вместо "*" 99 пробелов
2. --ПСТР() из полученной в 1 строки извлекаем по 99 символов начиная с 1, 100 и 199. получаем массив из трех чисел.
3. ПРОИЗВ() перемножаем три числа и переводим в кубы разделяя на 10^9 (1000000000)
Для вашего случая формулу можно немного сократить заменив 99 на 9

Автор - AlexM
Дата добавления - 07.05.2024 в 13:13
bigor Дата: Вторник, 07.05.2024, 13:46 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1110
Репутация: 212 ±
Замечаний: 0% ±

нет
Если не контейнеры возите, то можно еще чуть сократить
Код
=ПРОИЗВЕД(--ПСТР(ПОДСТАВИТЬ(A1;"*";"     ");{0;1;2}*5+1;5))/10^9


Сообщение отредактировал bigor - Вторник, 07.05.2024, 13:48
 
Ответить
СообщениеЕсли не контейнеры возите, то можно еще чуть сократить
Код
=ПРОИЗВЕД(--ПСТР(ПОДСТАВИТЬ(A1;"*";"     ");{0;1;2}*5+1;5))/10^9

Автор - bigor
Дата добавления - 07.05.2024 в 13:46
elovkov Дата: Вторник, 07.05.2024, 13:47 | Сообщение № 12
Группа: Друзья
Ранг: Обитатель
Сообщений: 380
Репутация: 51 ±
Замечаний: 0% ±

Excel 2013
получаем массив из трех чисел

Интересно, не знал, что так можно с ПСТР делать, надо запомнить

ппц длинная формула

Не видели Вы длинных формул)))


Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица
 
Ответить
Сообщение
получаем массив из трех чисел

Интересно, не знал, что так можно с ПСТР делать, надо запомнить

ппц длинная формула

Не видели Вы длинных формул)))

Автор - elovkov
Дата добавления - 07.05.2024 в 13:47
MrMishania Дата: Вторник, 07.05.2024, 15:09 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

да не, формулы то длинные я видел, и сам юзаю)) особенно когда "если" фигурирует))
я не ожидал что в данном случае нужно будет столько действий. по сути через сцепить "=" и "460*116*300*, где уже текст "=460*116*300" я думал можно как-то проще конвертировать это в цифры и запустить расчёт. Но такой формулы не нашёл. Можно было вообще обыграть через 3 ячейки с габаритами и потом сумму их делить на 100000000. Но стало принципиально найти вариант. С макросом тоже гуд решение, я просто их не юзал никогда раньше.
А здесь я пытаюсь вникнуть в формулу и вообще не понимаю что и для чего... онли через копипаст юзать буду)
 
Ответить
Сообщениеда не, формулы то длинные я видел, и сам юзаю)) особенно когда "если" фигурирует))
я не ожидал что в данном случае нужно будет столько действий. по сути через сцепить "=" и "460*116*300*, где уже текст "=460*116*300" я думал можно как-то проще конвертировать это в цифры и запустить расчёт. Но такой формулы не нашёл. Можно было вообще обыграть через 3 ячейки с габаритами и потом сумму их делить на 100000000. Но стало принципиально найти вариант. С макросом тоже гуд решение, я просто их не юзал никогда раньше.
А здесь я пытаюсь вникнуть в формулу и вообще не понимаю что и для чего... онли через копипаст юзать буду)

Автор - MrMishania
Дата добавления - 07.05.2024 в 15:09
Nic70y Дата: Вторник, 07.05.2024, 15:20 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 8791
Репутация: 2293 ±
Замечаний: 0% ±

Excel 2010
MrMishania, если три числа всегда трехзначные, то можно так
Код
=ЛЕВБ(B2;3)*ПСТР(B2;5;3)*ПРАВБ(B2;3)/1000000000


ЮMoney 41001841029809
 
Ответить
СообщениеMrMishania, если три числа всегда трехзначные, то можно так
Код
=ЛЕВБ(B2;3)*ПСТР(B2;5;3)*ПРАВБ(B2;3)/1000000000

Автор - Nic70y
Дата добавления - 07.05.2024 в 15:20
MrMishania Дата: Вторник, 07.05.2024, 15:34 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

=ЛЕВБ(B2;3)*ПСТР(B2;5;3)*ПРАВБ(B2;3)/1000000000

ТОЧНО!!! Всё пошёл биться о стену, что сам не догадался)))) спс!
=ЛЕВСИМВ(B2;3)*ПСТР(B2;5;3)*ПРАВСИМВ(B2;3)/1000000000
её то я сам теперь всегда сделаю, а предыдущий вариант от AlexM пока что переварить для понимания сложно, чтобы воспроизвести не копируя.
 
Ответить
Сообщение
=ЛЕВБ(B2;3)*ПСТР(B2;5;3)*ПРАВБ(B2;3)/1000000000

ТОЧНО!!! Всё пошёл биться о стену, что сам не догадался)))) спс!
=ЛЕВСИМВ(B2;3)*ПСТР(B2;5;3)*ПРАВСИМВ(B2;3)/1000000000
её то я сам теперь всегда сделаю, а предыдущий вариант от AlexM пока что переварить для понимания сложно, чтобы воспроизвести не копируя.

Автор - MrMishania
Дата добавления - 07.05.2024 в 15:34
MrMishania Дата: Вторник, 07.05.2024, 17:24 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

UDF - User Defined Function - Пользовательская функция

Уже создал у себя такую же, через alt+F11. Назвал только функцию по другому. Думал она теперь во всех файлах появится, но оказалось только в том где создал.
Жаль что ничего не понимаю в этом редакторе, в плане чтобы такую же создать, придётся сюда лезть за текстом:
Function xb(a As Range)
xb = Evaluate(a.Value) / 1000000000
End Function

освоить бы такую штуку, чтобы самому функции разные создавать было бы неплохо))
 
Ответить
Сообщение
UDF - User Defined Function - Пользовательская функция

Уже создал у себя такую же, через alt+F11. Назвал только функцию по другому. Думал она теперь во всех файлах появится, но оказалось только в том где создал.
Жаль что ничего не понимаю в этом редакторе, в плане чтобы такую же создать, придётся сюда лезть за текстом:
Function xb(a As Range)
xb = Evaluate(a.Value) / 1000000000
End Function

освоить бы такую штуку, чтобы самому функции разные создавать было бы неплохо))

Автор - MrMishania
Дата добавления - 07.05.2024 в 17:24
Hugo Дата: Вторник, 07.05.2024, 22:54 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Ещё с древних пор есть макрофункция ВЫЧИСЛИТЬ(), но удобнее UDF.
А код можно держать в надстройке, если принципиально xlsx


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеЕщё с древних пор есть макрофункция ВЫЧИСЛИТЬ(), но удобнее UDF.
А код можно держать в надстройке, если принципиально xlsx

Автор - Hugo
Дата добавления - 07.05.2024 в 22:54
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Расчет данных из текста (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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