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

Вход

Регистрация

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

 

= Мир MS Excel/Получить числовые значения из ячейки разделенные "х" - Мир MS Excel

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

Excel 2013
Обращаюсь к профи....
Есть необходимость выбрать из ячейки числовые данные, разделенные знаком "х" или "*" в формате "число Х число" или "число * число" и записать их в две разные ячейки для последующего расчета площади, сечения и т.д.
пример - "Воздуховод из оцинкованной стали сечением 700х400"
Заранее благодарен за урок
К сообщению приложен файл: 9572258.xlsx (8.2 Kb)
 
Ответить
СообщениеОбращаюсь к профи....
Есть необходимость выбрать из ячейки числовые данные, разделенные знаком "х" или "*" в формате "число Х число" или "число * число" и записать их в две разные ячейки для последующего расчета площади, сечения и т.д.
пример - "Воздуховод из оцинкованной стали сечением 700х400"
Заранее благодарен за урок

Автор - Linur
Дата добавления - 11.03.2015 в 23:25
buchlotnik Дата: Среда, 11.03.2015, 23:52 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Linur, здравствуйте. Намудрил, но вроде работает
вынимаем размер:
Код
=ПРАВСИМВ(B3;ДЛСТР(B3)-ПОИСК("@";ПОДСТАВИТЬ(B3;" ";"@";(СУММПРОИЗВ(--(ПСТР(B3;СТРОКА($A$1:$A$100);1)=" "))))))

вытаскиваем параметры:
Код
=--ЛЕВСИМВ(F3;ПОИСК("х";F3)-1)
Код
=--ПОДСТАВИТЬ(F4;G4&"х";"")
К сообщению приложен файл: 0765795-2-.xlsx (9.0 Kb)


Сообщение отредактировал buchlotnik - Четверг, 12.03.2015, 00:17
 
Ответить
СообщениеLinur, здравствуйте. Намудрил, но вроде работает
вынимаем размер:
Код
=ПРАВСИМВ(B3;ДЛСТР(B3)-ПОИСК("@";ПОДСТАВИТЬ(B3;" ";"@";(СУММПРОИЗВ(--(ПСТР(B3;СТРОКА($A$1:$A$100);1)=" "))))))

вытаскиваем параметры:
Код
=--ЛЕВСИМВ(F3;ПОИСК("х";F3)-1)
Код
=--ПОДСТАВИТЬ(F4;G4&"х";"")

Автор - buchlotnik
Дата добавления - 11.03.2015 в 23:52
Kuzmich Дата: Среда, 11.03.2015, 23:59 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
В модуль листа1
[vba]
Код
Sub Razdel()
Dim i As Long
Dim iLastRow As Long
Dim Arr
Dim iStr As String
    iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For i = 3 To iLastRow
      Arr = Split(Cells(i, 2), " ")
      iStr = Arr(UBound(Arr))
        If InStr(1, iStr, "х") <> 0 Then
          Cells(i, 3) = Split(iStr, "х")(0)
          Cells(i, 4) = Split(iStr, "х")(1)
        ElseIf InStr(1, iStr, "*") <> 0 Then
         Cells(i, 3) = Split(iStr, "*")(0)
         Cells(i, 4) = Split(iStr, "*")(1)
       End If
    Next
End Sub
[/vba]


Сообщение отредактировал Kuzmich - Четверг, 12.03.2015, 00:08
 
Ответить
СообщениеВ модуль листа1
[vba]
Код
Sub Razdel()
Dim i As Long
Dim iLastRow As Long
Dim Arr
Dim iStr As String
    iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For i = 3 To iLastRow
      Arr = Split(Cells(i, 2), " ")
      iStr = Arr(UBound(Arr))
        If InStr(1, iStr, "х") <> 0 Then
          Cells(i, 3) = Split(iStr, "х")(0)
          Cells(i, 4) = Split(iStr, "х")(1)
        ElseIf InStr(1, iStr, "*") <> 0 Then
         Cells(i, 3) = Split(iStr, "*")(0)
         Cells(i, 4) = Split(iStr, "*")(1)
       End If
    Next
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 11.03.2015 в 23:59
Manyasha Дата: Четверг, 12.03.2015, 00:06 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Linur, какие-то длинные формулы получились :)
Сначала вытаскиваем параметры:
Код
=ПСТР(B3;ПОИСК("@";ПОДСТАВИТЬ(B3;" ";"@";ДЛСТР(B3)-ДЛСТР(ПОДСТАВИТЬ(B3;" ";""))))+1;ДЛСТР(B3)-ПОИСК("@";ПОДСТАВИТЬ(B3;" ";"@";ДЛСТР(B3)-ДЛСТР(ПОДСТАВИТЬ(B3;" ";"")))))

разделяем по "х": левая часть
Код
=ЗАМЕНИТЬ(E3;ПОИСК("х";E3);ДЛСТР(E3)-ПОИСК("х";E3);"")
правая
Код
=ЗАМЕНИТЬ(E3;1;ДЛСТР(E3)-ПОИСК("х";E3)+1;"")
К сообщению приложен файл: 11.xlsx (8.8 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеLinur, какие-то длинные формулы получились :)
Сначала вытаскиваем параметры:
Код
=ПСТР(B3;ПОИСК("@";ПОДСТАВИТЬ(B3;" ";"@";ДЛСТР(B3)-ДЛСТР(ПОДСТАВИТЬ(B3;" ";""))))+1;ДЛСТР(B3)-ПОИСК("@";ПОДСТАВИТЬ(B3;" ";"@";ДЛСТР(B3)-ДЛСТР(ПОДСТАВИТЬ(B3;" ";"")))))

разделяем по "х": левая часть
Код
=ЗАМЕНИТЬ(E3;ПОИСК("х";E3);ДЛСТР(E3)-ПОИСК("х";E3);"")
правая
Код
=ЗАМЕНИТЬ(E3;1;ДЛСТР(E3)-ПОИСК("х";E3)+1;"")

Автор - Manyasha
Дата добавления - 12.03.2015 в 00:06
_Boroda_ Дата: Четверг, 12.03.2015, 00:17 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ребята-девчата (в смысле - Михаил и Марина), а вы про звездень не забыли?
"х" или "*"

Кстати, параметры (если это последнее слово), можно вытащить и так, например:
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(B3;" ";ПОВТОР(" ";99));99))

Но это не интересно. Интереснее сразу повытаскивать
Для D формула массива (вводится одновременным нажатием Контрл Шифт Ентер)
Код
=ПСТР(B3;СУММ(ЕСЛИОШИБКА(ПОИСК((СТРОКА(A$1:A$10)-1)&{"х";"~*"};B3);))+2;99)

Для столбца С обычная формула
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(B3;" ";ПОВТОР(" ";99));99);98-ДЛСТР(D3)))


А если для С без участия результата в D, то можно, например, так:
Код
=МАКС(ЕСЛИ(ЕЧИСЛО(ПОИСК(СТРОКА(A$1:A$99999)&{"х";"~*"};B3));СТРОКА(A$1:A$99999)))

Формула массива. Оооочень задумчивая.

Добавлено
Подумал тут, а для столбца D все проще:
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B3;"*";"х");"х";ПОВТОР(" ";99));99))


Файлик перевложил
К сообщению приложен файл: 9572258_3.xlsx (9.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеРебята-девчата (в смысле - Михаил и Марина), а вы про звездень не забыли?
"х" или "*"

Кстати, параметры (если это последнее слово), можно вытащить и так, например:
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(B3;" ";ПОВТОР(" ";99));99))

Но это не интересно. Интереснее сразу повытаскивать
Для D формула массива (вводится одновременным нажатием Контрл Шифт Ентер)
Код
=ПСТР(B3;СУММ(ЕСЛИОШИБКА(ПОИСК((СТРОКА(A$1:A$10)-1)&{"х";"~*"};B3);))+2;99)

Для столбца С обычная формула
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПРАВБ(ПОДСТАВИТЬ(B3;" ";ПОВТОР(" ";99));99);98-ДЛСТР(D3)))


А если для С без участия результата в D, то можно, например, так:
Код
=МАКС(ЕСЛИ(ЕЧИСЛО(ПОИСК(СТРОКА(A$1:A$99999)&{"х";"~*"};B3));СТРОКА(A$1:A$99999)))

Формула массива. Оооочень задумчивая.

Добавлено
Подумал тут, а для столбца D все проще:
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B3;"*";"х");"х";ПОВТОР(" ";99));99))


Файлик перевложил

Автор - _Boroda_
Дата добавления - 12.03.2015 в 00:17
AlexM Дата: Четверг, 12.03.2015, 10:48 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Вариант с функцией пользователя[vba]
Код
Function iNumber(iStr As String, n As Long) As Long
     Dim Arr
     Arr = Split(Replace(Replace(iStr, "*", " "), "х", " "), " ")
     iNumber = Arr(UBound(Arr) - 2 + n)
End Function
[/vba]
К сообщению приложен файл: 9572258_4.xls (32.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВариант с функцией пользователя[vba]
Код
Function iNumber(iStr As String, n As Long) As Long
     Dim Arr
     Arr = Split(Replace(Replace(iStr, "*", " "), "х", " "), " ")
     iNumber = Arr(UBound(Arr) - 2 + n)
End Function
[/vba]

Автор - AlexM
Дата добавления - 12.03.2015 в 10:48
Linur Дата: Четверг, 12.03.2015, 11:52 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Спасибо Всем за варианты!

AlexM,
А подскажите, пожалуйста как добавить функцию пользователя к новому листу, и еще вопрос при вставке тектса (методом обычного копи/паста из другой таблицы ) происходит ошибка в формуле?
 
Ответить
СообщениеСпасибо Всем за варианты!

AlexM,
А подскажите, пожалуйста как добавить функцию пользователя к новому листу, и еще вопрос при вставке тектса (методом обычного копи/паста из другой таблицы ) происходит ошибка в формуле?

Автор - Linur
Дата добавления - 12.03.2015 в 11:52
AlexM Дата: Четверг, 12.03.2015, 12:12 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Скорее всего пробел в конце строки мешает
Строку Arr=....Замените на[vba]
Код
Arr = Split(Trim(Replace(Replace(iStr, "*", " "), "х", " ")), " ")
[/vba]
нажимаете fx, в мастере функций выбираете категорию "Определенные пользователем" и выбираете функцию.
Как поправить код. Alt+F11 в модуле1 редактируете код функции.



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


Сообщение отредактировал AlexM - Четверг, 12.03.2015, 17:22
 
Ответить
СообщениеСкорее всего пробел в конце строки мешает
Строку Arr=....Замените на[vba]
Код
Arr = Split(Trim(Replace(Replace(iStr, "*", " "), "х", " ")), " ")
[/vba]
нажимаете fx, в мастере функций выбираете категорию "Определенные пользователем" и выбираете функцию.
Как поправить код. Alt+F11 в модуле1 редактируете код функции.

Автор - AlexM
Дата добавления - 12.03.2015 в 12:12
Linur Дата: Четверг, 12.03.2015, 12:26 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
AlexM, :( Не помогло
Если я вручную вписываю в ячейку, то все работает, если копирую с другой книги то пишет "ошибка в формуле"
 
Ответить
СообщениеAlexM, :( Не помогло
Если я вручную вписываю в ячейку, то все работает, если копирую с другой книги то пишет "ошибка в формуле"

Автор - Linur
Дата добавления - 12.03.2015 в 12:26
AlexM Дата: Четверг, 12.03.2015, 12:30 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Приложите файл с ошибкой



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПриложите файл с ошибкой

Автор - AlexM
Дата добавления - 12.03.2015 в 12:30
Linur Дата: Четверг, 12.03.2015, 12:45 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
AlexM,
Вот
К сообщению приложен файл: 9572258_4-1-_.xls (34.5 Kb)
 
Ответить
СообщениеAlexM,
Вот

Автор - Linur
Дата добавления - 12.03.2015 в 12:45
Pelena Дата: Четверг, 12.03.2015, 12:49 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 19195
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Буквы х из разных алфавитов)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеБуквы х из разных алфавитов)

Автор - Pelena
Дата добавления - 12.03.2015 в 12:49
Kuzmich Дата: Четверг, 12.03.2015, 12:53 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 712
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Если в строке не будет х или *, то будет ошибка
 
Ответить
СообщениеЕсли в строке не будет х или *, то будет ошибка

Автор - Kuzmich
Дата добавления - 12.03.2015 в 12:53
AlexM Дата: Четверг, 12.03.2015, 13:14 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
тогда строка должна быть[vba]
Код
Arr = Split(Trim(Replace(Replace(Replace(iStr, "*", " "), "x", " "), "х", " ")), " ")
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщениетогда строка должна быть[vba]
Код
Arr = Split(Trim(Replace(Replace(Replace(iStr, "*", " "), "x", " "), "х", " ")), " ")
[/vba]

Автор - AlexM
Дата добавления - 12.03.2015 в 13:14
Linur Дата: Четверг, 12.03.2015, 13:37 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
AlexM,

Спасибо ОГРОМНОЕ!

Пытаюсь разобраться с диаметром...
строки типа " δ=0,6 мм Ø400" или "Воздуховод круглый из оцинкованной стали ф160"
[moder]1. Внимательно прочитайте Правила форума.
2. Диаметров в Вашем примере нет.
3. Какое отношение диаметры имеют к теме"Получить числовые значения из ячейки разделенные "х"?


Сообщение отредактировал _Boroda_ - Четверг, 12.03.2015, 13:42
 
Ответить
СообщениеAlexM,

Спасибо ОГРОМНОЕ!

Пытаюсь разобраться с диаметром...
строки типа " δ=0,6 мм Ø400" или "Воздуховод круглый из оцинкованной стали ф160"
[moder]1. Внимательно прочитайте Правила форума.
2. Диаметров в Вашем примере нет.
3. Какое отношение диаметры имеют к теме"Получить числовые значения из ячейки разделенные "х"?

Автор - Linur
Дата добавления - 12.03.2015 в 13:37
AlexM Дата: Четверг, 12.03.2015, 16:09 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Еще вариант функции. Вроде все учитывает[vba]
Код
Function iNumber(iStr As String, n As Long) As Variant
     Dim Arr
     Set objRegExp = CreateObject("VBScript.RegExp")
     objRegExp.Pattern = "[^,0-9\s]+"
     While objRegExp.Test(iStr)
         iStr = objRegExp.Replace(iStr, " ")
     Wend
     Arr = Split(WorksheetFunction.Trim("- - " & iStr), " ")
     iNumber = Arr(UBound(Arr) - 2 + n)
End Function
[/vba]
К сообщению приложен файл: 9572258_4-2.xls (35.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЕще вариант функции. Вроде все учитывает[vba]
Код
Function iNumber(iStr As String, n As Long) As Variant
     Dim Arr
     Set objRegExp = CreateObject("VBScript.RegExp")
     objRegExp.Pattern = "[^,0-9\s]+"
     While objRegExp.Test(iStr)
         iStr = objRegExp.Replace(iStr, " ")
     Wend
     Arr = Split(WorksheetFunction.Trim("- - " & iStr), " ")
     iNumber = Arr(UBound(Arr) - 2 + n)
End Function
[/vba]

Автор - AlexM
Дата добавления - 12.03.2015 в 16:09
Linur Дата: Четверг, 12.03.2015, 17:19 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Модераторам.

Прошу прощения, не учел.
 
Ответить
СообщениеМодераторам.

Прошу прощения, не учел.

Автор - Linur
Дата добавления - 12.03.2015 в 17:19
Linur Дата: Четверг, 12.03.2015, 17:20 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
AlexM,
Спасибо огромное!

Пробовал всякие варианты-все пропускает:)
 
Ответить
СообщениеAlexM,
Спасибо огромное!

Пробовал всякие варианты-все пропускает:)

Автор - Linur
Дата добавления - 12.03.2015 в 17:20
Linur Дата: Четверг, 12.03.2015, 17:25 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
AlexM,
Можно с Вами пообщаться на форуме "Фриланс" ?
 
Ответить
СообщениеAlexM,
Можно с Вами пообщаться на форуме "Фриланс" ?

Автор - Linur
Дата добавления - 12.03.2015 в 17:25
AlexM Дата: Четверг, 12.03.2015, 17:28 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4511
Репутация: 1128 ±
Замечаний: 0% ±

Excel 2003
Общайтесь тут, в альтруистких разделах форума. Во "Фриланс" не захожу.
Не забывайте о правилах. Новый вопрос, новая тема.



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


Сообщение отредактировал AlexM - Четверг, 12.03.2015, 17:31
 
Ответить
СообщениеОбщайтесь тут, в альтруистких разделах форума. Во "Фриланс" не захожу.
Не забывайте о правилах. Новый вопрос, новая тема.

Автор - AlexM
Дата добавления - 12.03.2015 в 17:28
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Получить числовые значения из ячейки разделенные "х" (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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