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

Вход

Регистрация

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

 

= Мир MS Excel/Копировать в колонку В слово из колонки А - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Копировать в колонку В слово из колонки А
himmik Дата: Суббота, 26.03.2011, 22:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

В таблице в колонке 1(A) есть Наименование товара "Мяч Champion кожаный для футбола" .Как сделать так,что бы в колонку 2(B) попадало название производителя ,в данном случае это слово Champion(Правда бывает что название производителя может быть в разных местах по разному(где на втором,где на третьем, а где и на других местах.Но думаю это уже нюансы и придётся эту формулу править в нужных местах)
К сообщению приложен файл: 8710139.xls (18.0 Kb)
 
Ответить
СообщениеВ таблице в колонке 1(A) есть Наименование товара "Мяч Champion кожаный для футбола" .Как сделать так,что бы в колонку 2(B) попадало название производителя ,в данном случае это слово Champion(Правда бывает что название производителя может быть в разных местах по разному(где на втором,где на третьем, а где и на других местах.Но думаю это уже нюансы и придётся эту формулу править в нужных местах)

Автор - himmik
Дата добавления - 26.03.2011 в 22:58
Serge_007 Дата: Суббота, 26.03.2011, 23:07 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Производитель всегда написан по-английски, а остальной текст по-русски?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПроизводитель всегда написан по-английски, а остальной текст по-русски?

Автор - Serge_007
Дата добавления - 26.03.2011 в 23:07
Hugo Дата: Суббота, 26.03.2011, 23:08 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Формулисты напишут формулу, где нужное слово будет выделяться по пробелам, а я могу UDF предложить (здесь на форуме похоже что ещё не было):
Code
Function Substring(Текст As String, Символ_разделитель As String, _
     Начальный_Номер_фрагмента As Long, Конечный_Номер_фрагмента As Long) As String
'---------------------------------------------------------------------------------------
' URL : http://www.planetaexcel.ru/tip.php?aid=54
' Purpose : Выделяет из текста субстринг/и, ориентируясь по символам-разделителям
' Notes : Substring(текст; символ_разделитель; Начальный_Номер_фрагмента, Конечный_Номер_фрагмента), где
' текст - текст, который делим
' символ_разделитель - символ, который надо считать разделителем фрагментов
' Начальный_Номер_фрагмента - порядковый номер фрагмента, с которого нужна выборка
' Конечный_Номер_фрагмента - порядковый номер фрагмента, по который нужна выборка
'---------------------------------------------------------------------------------------
     On Error Resume Next
     Dim sArr() As String, li As Long
     sArr = Split(Application.Trim(Текст), Символ_разделитель)
     If Конечный_Номер_фрагмента > 0 Then
         Начальный_Номер_фрагмента = Начальный_Номер_фрагмента - 1
         Конечный_Номер_фрагмента = Конечный_Номер_фрагмента - 1
         For li = Начальный_Номер_фрагмента To Конечный_Номер_фрагмента
             Substring = IIf(li = Начальный_Номер_фрагмента, sArr(li), Substring & _
                 Символ_разделитель & sArr(li))
         Next li
     Else
         Substring = Split(Application.Trim(Текст), _
             Символ_разделитель)(Начальный_Номер_фрагмента - 1)
     End If
End Function


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеФормулисты напишут формулу, где нужное слово будет выделяться по пробелам, а я могу UDF предложить (здесь на форуме похоже что ещё не было):
Code
Function Substring(Текст As String, Символ_разделитель As String, _
     Начальный_Номер_фрагмента As Long, Конечный_Номер_фрагмента As Long) As String
'---------------------------------------------------------------------------------------
' URL : http://www.planetaexcel.ru/tip.php?aid=54
' Purpose : Выделяет из текста субстринг/и, ориентируясь по символам-разделителям
' Notes : Substring(текст; символ_разделитель; Начальный_Номер_фрагмента, Конечный_Номер_фрагмента), где
' текст - текст, который делим
' символ_разделитель - символ, который надо считать разделителем фрагментов
' Начальный_Номер_фрагмента - порядковый номер фрагмента, с которого нужна выборка
' Конечный_Номер_фрагмента - порядковый номер фрагмента, по который нужна выборка
'---------------------------------------------------------------------------------------
     On Error Resume Next
     Dim sArr() As String, li As Long
     sArr = Split(Application.Trim(Текст), Символ_разделитель)
     If Конечный_Номер_фрагмента > 0 Then
         Начальный_Номер_фрагмента = Начальный_Номер_фрагмента - 1
         Конечный_Номер_фрагмента = Конечный_Номер_фрагмента - 1
         For li = Начальный_Номер_фрагмента To Конечный_Номер_фрагмента
             Substring = IIf(li = Начальный_Номер_фрагмента, sArr(li), Substring & _
                 Символ_разделитель & sArr(li))
         Next li
     Else
         Substring = Split(Application.Trim(Текст), _
             Символ_разделитель)(Начальный_Номер_фрагмента - 1)
     End If
End Function

Автор - Hugo
Дата добавления - 26.03.2011 в 23:08
himmik Дата: Суббота, 26.03.2011, 23:13 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Quote (Serge_007)
Производитель всегда написан по-английски, а остальной текст по-русски?

Да ,именно так.И так всегда
 
Ответить
Сообщение
Quote (Serge_007)
Производитель всегда написан по-английски, а остальной текст по-русски?

Да ,именно так.И так всегда

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

Excel 2016
Quote (himmik)
Да ,именно так.И так всегда

Формула массива:
Code
=ПСТР(A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)));МАКС(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)))+1-МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))

ЗЫ himmik, а Вы в своих темах (здесь и здесь) почему не отписываетесь?

К сообщению приложен файл: himmik_text.xls (25.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (himmik)
Да ,именно так.И так всегда

Формула массива:
Code
=ПСТР(A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)));МАКС(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)))+1-МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))

ЗЫ himmik, а Вы в своих темах (здесь и здесь) почему не отписываетесь?


Автор - Serge_007
Дата добавления - 26.03.2011 в 23:16
Hugo Дата: Суббота, 26.03.2011, 23:44 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Если по-английски - есть такая UDF:
Code
Public Function ExtractString(S As String)
Dim i As Integer, str As String
For i = 1 To Len(S)
If InStr(1, "QWERTYUIOPASDFGHJKLZXCVBNM,.-<>=*/ ", UCase(Mid(S, i, 1))) <> 0 Then str = str & Mid(S, i, 1)
Next
ExtractString = Application.Trim(str)
End Function

В приложении обе UDF.
К сообщению приложен файл: 2603334.xls (37.0 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЕсли по-английски - есть такая UDF:
Code
Public Function ExtractString(S As String)
Dim i As Integer, str As String
For i = 1 To Len(S)
If InStr(1, "QWERTYUIOPASDFGHJKLZXCVBNM,.-<>=*/ ", UCase(Mid(S, i, 1))) <> 0 Then str = str & Mid(S, i, 1)
Next
ExtractString = Application.Trim(str)
End Function

В приложении обе UDF.

Автор - Hugo
Дата добавления - 26.03.2011 в 23:44
Alex_ST Дата: Суббота, 26.03.2011, 23:56 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Игорь, а может упростить UDF Substring до безобразия:
Code
Function Substring(Текст, Номер_фрагмента, Optional Символ_разделитель = " ") As String   ' Выделяет из текста n-ный субстринг, ориентируясь по символам-разделителям
     On Error Resume Next
     Substring = Split(Application.Trim(Текст), Символ_разделитель)(Номер_фрагмента - 1)
End Function



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеИгорь, а может упростить UDF Substring до безобразия:
Code
Function Substring(Текст, Номер_фрагмента, Optional Символ_разделитель = " ") As String   ' Выделяет из текста n-ный субстринг, ориентируясь по символам-разделителям
     On Error Resume Next
     Substring = Split(Application.Trim(Текст), Символ_разделитель)(Номер_фрагмента - 1)
End Function

Автор - Alex_ST
Дата добавления - 26.03.2011 в 23:56
Serge_007 Дата: Суббота, 26.03.2011, 23:58 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Alex, я конечно в макросах не Шопенгауэр ни разу, но интересно: а как эта ЮДФ извлекает только английские буквы?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеAlex, я конечно в макросах не Шопенгауэр ни разу, но интересно: а как эта ЮДФ извлекает только английские буквы?

Автор - Serge_007
Дата добавления - 26.03.2011 в 23:58
Alex_ST Дата: Воскресенье, 27.03.2011, 00:03 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3213
Репутация: 609 ±
Замечаний: 0% ±

2003
Да я просто проглядел, что нужно выделять именно английские субстринги.
Увидал, что Игорь в 23:08 предложил более длинный вариант той же UDF, которой я давно пользуюсь, ну и постанул...
А уже потом увидал, что дискуссия ушла в другую сторону.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеДа я просто проглядел, что нужно выделять именно английские субстринги.
Увидал, что Игорь в 23:08 предложил более длинный вариант той же UDF, которой я давно пользуюсь, ну и постанул...
А уже потом увидал, что дискуссия ушла в другую сторону.

Автор - Alex_ST
Дата добавления - 27.03.2011 в 00:03
_Boroda_ Дата: Воскресенье, 27.03.2011, 00:31 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Чуть покороче, но тоже монстр получился

Code
=ПСТР(A2;ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1);ПОИСКПОЗ(123;КОДСИМВ(ПСТР(ПОДСТАВИТЬ(A2;" ";"я")&"я";СТРОКА($1:$999);1)))-ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1)+1)
К сообщению приложен файл: _Lat_simv_.xls (24.5 Kb)


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

Code
=ПСТР(A2;ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1);ПОИСКПОЗ(123;КОДСИМВ(ПСТР(ПОДСТАВИТЬ(A2;" ";"я")&"я";СТРОКА($1:$999);1)))-ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1)+1)

Автор - _Boroda_
Дата добавления - 27.03.2011 в 00:31
nilem Дата: Воскресенье, 27.03.2011, 00:51 | Сообщение № 11
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Еще вариант (пробный)
Code
Function ball(s As String) As String
With CreateObject("vbscript.regexp")
     .IgnoreCase = True
     .Pattern = "\b[a-z-]*"
     ball = .Execute(s)(0)
End With
End Function


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеЕще вариант (пробный)
Code
Function ball(s As String) As String
With CreateObject("vbscript.regexp")
     .IgnoreCase = True
     .Pattern = "\b[a-z-]*"
     ball = .Execute(s)(0)
End With
End Function

Автор - nilem
Дата добавления - 27.03.2011 в 00:51
Hugo Дата: Воскресенье, 27.03.2011, 01:02 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Alex_ST, а тот Substring() когда-то таким коротким и был, но со временем вырос smile Я правда не помню, кто его нарастил (не я), но так лучше - одну лишнюю цифру в парамерах поставить несложно, но зато в некоторых случаях не приходится городить пулемётную очередь из функций и пробелов smile

Сергей - про английские - берёт по одному символу и смотрит: есть ли этот символ в строке "QWERTYUIOPASDFGHJKLZXCVBNM,.-<>=*/ ". Если есть - собирает в выходную строку.
На RegExp вероятно можно покороче, но ещё более непонятно написать smile
P.S. Пока писал - вот и RegExp выше smile



webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеAlex_ST, а тот Substring() когда-то таким коротким и был, но со временем вырос smile Я правда не помню, кто его нарастил (не я), но так лучше - одну лишнюю цифру в парамерах поставить несложно, но зато в некоторых случаях не приходится городить пулемётную очередь из функций и пробелов smile

Сергей - про английские - берёт по одному символу и смотрит: есть ли этот символ в строке "QWERTYUIOPASDFGHJKLZXCVBNM,.-<>=*/ ". Если есть - собирает в выходную строку.
На RegExp вероятно можно покороче, но ещё более непонятно написать smile
P.S. Пока писал - вот и RegExp выше smile


Автор - Hugo
Дата добавления - 27.03.2011 в 01:02
Serge_007 Дата: Воскресенье, 27.03.2011, 01:10 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Hugo)
Сергей - про английские - берёт по одному символу и смотрит: есть ли этот символ в строке

Игорь, я про вот это:
Code
Function Substring(Текст, Номер_фрагмента, Optional Символ_разделитель = " ") As String   ' Выделяет из текста n-ный субстринг, ориентируясь по символам-разделителям
      On Error Resume Next
      Substring = Split(Application.Trim(Текст), Символ_разделитель)(Номер_фрагмента - 1)
End Function

спрашивал...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Hugo)
Сергей - про английские - берёт по одному символу и смотрит: есть ли этот символ в строке

Игорь, я про вот это:
Code
Function Substring(Текст, Номер_фрагмента, Optional Символ_разделитель = " ") As String   ' Выделяет из текста n-ный субстринг, ориентируясь по символам-разделителям
      On Error Resume Next
      Substring = Split(Application.Trim(Текст), Символ_разделитель)(Номер_фрагмента - 1)
End Function

спрашивал...

Автор - Serge_007
Дата добавления - 27.03.2011 в 01:10
Hugo Дата: Воскресенье, 27.03.2011, 01:12 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Я когда это отвечал (т.е. когда набирал ответ) про именно английский слова не слышал smile - поэтому привязался к позиции.
Не стирать ведь теперь уже кучу связанных постов...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЯ когда это отвечал (т.е. когда набирал ответ) про именно английский слова не слышал smile - поэтому привязался к позиции.
Не стирать ведь теперь уже кучу связанных постов...

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

Excel 2016
Quote (Hugo)
Не стирать ведь теперь уже кучу связанных постов...

Не надо.
Главное - разобрались smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Hugo)
Не стирать ведь теперь уже кучу связанных постов...

Не надо.
Главное - разобрались smile

Автор - Serge_007
Дата добавления - 27.03.2011 в 01:15
himmik Дата: Воскресенье, 27.03.2011, 01:58 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Quote (Serge_007)
ЗЫ himmik, а Вы в своих темах почему не отписываетесь?

Завтра обязательно отпишусь smile
 
Ответить
Сообщение
Quote (Serge_007)
ЗЫ himmik, а Вы в своих темах почему не отписываетесь?

Завтра обязательно отпишусь smile

Автор - himmik
Дата добавления - 27.03.2011 в 01:58
himmik Дата: Воскресенье, 27.03.2011, 03:49 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Quote (Serge_007)
Формула массива: =ПСТР(A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)));МАКС(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)))+1-МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))

Quote (_Boroda_)
Чуть покороче, но тоже монстр получился =ПСТР(A2;ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1);ПОИСКПОЗ(123;КОДСИМВ(ПСТР(ПОДСТАВИТЬ(A2;" ";"я")&"я";СТРОКА($1:$999);1)))-ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1)+1)

В Ваших примерах все работает,но когда я копирую себе в колонку одну из этих формул - пишет #ЗНАЧ! или #Н/Д

 
Ответить
Сообщение
Quote (Serge_007)
Формула массива: =ПСТР(A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)));МАКС(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)))+1-МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))

Quote (_Boroda_)
Чуть покороче, но тоже монстр получился =ПСТР(A2;ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1);ПОИСКПОЗ(123;КОДСИМВ(ПСТР(ПОДСТАВИТЬ(A2;" ";"я")&"я";СТРОКА($1:$999);1)))-ПОИСКПОЗ(123;КОДСИМВ(ПСТР("я"&ПОДСТАВИТЬ(A2;" ";"я");СТРОКА($1:$999);1));-1)+1)

В Ваших примерах все работает,но когда я копирую себе в колонку одну из этих формул - пишет #ЗНАЧ! или #Н/Д


Автор - himmik
Дата добавления - 27.03.2011 в 03:49
Serge_007 Дата: Воскресенье, 27.03.2011, 03:51 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Формулы массива вводятся нажатием Ctrl+Shift+Enter, а не Enter, как обычные формулы.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеФормулы массива вводятся нажатием Ctrl+Shift+Enter, а не Enter, как обычные формулы.

Автор - Serge_007
Дата добавления - 27.03.2011 в 03:51
himmik Дата: Воскресенье, 27.03.2011, 04:36 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Поясняю,в примерах с массивами - все работает оба варианта,которые были здесь предложены.Большое спасибо

В примерах с макросами буду уже завтра экспериментировать.

Немного усложню задачу,так как при более детальном изучении прайса столкнулся вот с чем,в некоторых позициях указаны не по одному слову по-английски а два и более ,например "Мяч Adidas кожаный для футбола Black White" или "Футболка детская Puma WT-102 Green" . Но мне все одно необходимо самое главное вытянуть отсюда только Название производителя, но оно в предложении может быть как и писал ранее,может быть и на 1 и на 2 и на ...месте. Наверное лучше написать формулу по умолчанию для второго места а если будет название на другом уже вручную подправлю.(Хотя при ооооочень большом прайсе на это уйдет куча времени) Надеюсь понятно пояснил

 
Ответить
СообщениеПоясняю,в примерах с массивами - все работает оба варианта,которые были здесь предложены.Большое спасибо

В примерах с макросами буду уже завтра экспериментировать.

Немного усложню задачу,так как при более детальном изучении прайса столкнулся вот с чем,в некоторых позициях указаны не по одному слову по-английски а два и более ,например "Мяч Adidas кожаный для футбола Black White" или "Футболка детская Puma WT-102 Green" . Но мне все одно необходимо самое главное вытянуть отсюда только Название производителя, но оно в предложении может быть как и писал ранее,может быть и на 1 и на 2 и на ...месте. Наверное лучше написать формулу по умолчанию для второго места а если будет название на другом уже вручную подправлю.(Хотя при ооооочень большом прайсе на это уйдет куча времени) Надеюсь понятно пояснил


Автор - himmik
Дата добавления - 27.03.2011 в 04:36
Serge_007 Дата: Воскресенье, 27.03.2011, 11:04 | Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Если название производителя ВСЕГДА идёт раньше других английских слов в текстовой строке, то подойдёт такая формула массива:
Code
=ПСТР(A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)));НАЙТИ(" ";A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))-МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))

Если название производителя может находиться как раньше, так и позже других английских слов в текстовой строке, то необходимо составлять справочник названий производителей и искать совпадения в тексте по нему.

Если необходимо извлекать второе слово текста, то подойдёт такая формула:

Code
=ПСТР(A2;НАЙТИ(" ";A2);НАЙТИ(" ";A2;НАЙТИ(" ";A2)+1)-НАЙТИ(" ";A2))
К сообщению приложен файл: himmik_text_2.xls (25.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЕсли название производителя ВСЕГДА идёт раньше других английских слов в текстовой строке, то подойдёт такая формула массива:
Code
=ПСТР(A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999)));НАЙТИ(" ";A2;МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))-МИН(ЕСЛИ((ПСТР(A2;СТРОКА($1:$999);1)<="z")*(ПСТР(A2;СТРОКА($1:$999);1)>="A");СТРОКА($1:$999))))

Если название производителя может находиться как раньше, так и позже других английских слов в текстовой строке, то необходимо составлять справочник названий производителей и искать совпадения в тексте по нему.

Если необходимо извлекать второе слово текста, то подойдёт такая формула:

Code
=ПСТР(A2;НАЙТИ(" ";A2);НАЙТИ(" ";A2;НАЙТИ(" ";A2)+1)-НАЙТИ(" ";A2))

Автор - Serge_007
Дата добавления - 27.03.2011 в 11:04
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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