Перенос последних слов в соседнюю ячейку
anabioss13
Дата: Среда, 09.12.2015, 12:44 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 133
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый день! Подскажите пожалуйста как перенести в соседнюю ячейку название производителя. В примере есть наименование и у него в конце написан производитель, как бы его отделить? В соседнюю ячейку я выборочно вставил, что должно получиться. Помогите, друзья)
Добрый день! Подскажите пожалуйста как перенести в соседнюю ячейку название производителя. В примере есть наименование и у него в конце написан производитель, как бы его отделить? В соседнюю ячейку я выборочно вставил, что должно получиться. Помогите, друзья) anabioss13
Ответить
Сообщение Добрый день! Подскажите пожалуйста как перенести в соседнюю ячейку название производителя. В примере есть наименование и у него в конце написан производитель, как бы его отделить? В соседнюю ячейку я выборочно вставил, что должно получиться. Помогите, друзья) Автор - anabioss13 Дата добавления - 09.12.2015 в 12:44
SLAVICK
Дата: Среда, 09.12.2015, 12:47 |
Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
Как программе понять что последнее слово - это производитель? Есть два варианта: 1-й отрывать последнее слово от строки и надеяться что это производитель. 2-й сделать отдельно список всех производителей, и если в строке будет встречаться производитель он будет перенесен в 2-й столбец.
Как программе понять что последнее слово - это производитель? Есть два варианта: 1-й отрывать последнее слово от строки и надеяться что это производитель. 2-й сделать отдельно список всех производителей, и если в строке будет встречаться производитель он будет перенесен в 2-й столбец. SLAVICK
Иногда все проще чем кажется с первого взгляда.
Ответить
Сообщение Как программе понять что последнее слово - это производитель? Есть два варианта: 1-й отрывать последнее слово от строки и надеяться что это производитель. 2-й сделать отдельно список всех производителей, и если в строке будет встречаться производитель он будет перенесен в 2-й столбец. Автор - SLAVICK Дата добавления - 09.12.2015 в 12:47
abtextime
Дата: Среда, 09.12.2015, 12:52 |
Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
В ваших выделениях нет системы, это может быть одно слово, может быть два, могут быть скобки. Нужен либо единый принцип выделения производителя из артикула, либо перечень производителей
В ваших выделениях нет системы, это может быть одно слово, может быть два, могут быть скобки. Нужен либо единый принцип выделения производителя из артикула, либо перечень производителей abtextime
Ответить
Сообщение В ваших выделениях нет системы, это может быть одно слово, может быть два, могут быть скобки. Нужен либо единый принцип выделения производителя из артикула, либо перечень производителей Автор - abtextime Дата добавления - 09.12.2015 в 12:52
anabioss13
Дата: Среда, 09.12.2015, 12:53 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 133
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Оторвать последнее слово в строке достаточно и все что в скобках в конце. Это и будет производитель. Подскажите на примере формулу.
Оторвать последнее слово в строке достаточно и все что в скобках в конце. Это и будет производитель. Подскажите на примере формулу. anabioss13
Ответить
Сообщение Оторвать последнее слово в строке достаточно и все что в скобках в конце. Это и будет производитель. Подскажите на примере формулу. Автор - anabioss13 Дата добавления - 09.12.2015 в 12:53
abtextime
Дата: Среда, 09.12.2015, 12:55 |
Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
SLAVICK, 1-й однозначно не проходит. Можно предложить вариант - берем одно или два последних слова (из букв), если они в верхнем регистре
SLAVICK, 1-й однозначно не проходит. Можно предложить вариант - берем одно или два последних слова (из букв), если они в верхнем регистре abtextime
Ответить
Сообщение SLAVICK, 1-й однозначно не проходит. Можно предложить вариант - берем одно или два последних слова (из букв), если они в верхнем регистре Автор - abtextime Дата добавления - 09.12.2015 в 12:55
SLAVICK
Дата: Среда, 09.12.2015, 12:56 |
Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
Пример по моему 2-му варианту:Код
=ИНДЕКС($I$1:$I$10;МАКС(НЕ(ЕОШИБКА(ПОИСК($I$2:$I$9;B4;1)))*СТРОКА($I$2:$I$9));1)
Пример по моему 2-му варианту:Код
=ИНДЕКС($I$1:$I$10;МАКС(НЕ(ЕОШИБКА(ПОИСК($I$2:$I$9;B4;1)))*СТРОКА($I$2:$I$9));1)
SLAVICK
Иногда все проще чем кажется с первого взгляда.
Сообщение отредактировал SLAVICK - Среда, 09.12.2015, 12:56
Ответить
Сообщение Пример по моему 2-му варианту:Код
=ИНДЕКС($I$1:$I$10;МАКС(НЕ(ЕОШИБКА(ПОИСК($I$2:$I$9;B4;1)))*СТРОКА($I$2:$I$9));1)
Автор - SLAVICK Дата добавления - 09.12.2015 в 12:56
anabioss13
Дата: Среда, 09.12.2015, 13:06 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 133
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Не могу сообразить, в список добавляю производителя. протягиваю формулу и там вообще ерунда получается.
Не могу сообразить, в список добавляю производителя. протягиваю формулу и там вообще ерунда получается. anabioss13
Ответить
Сообщение Не могу сообразить, в список добавляю производителя. протягиваю формулу и там вообще ерунда получается. Автор - anabioss13 Дата добавления - 09.12.2015 в 13:06
SLAVICK
Дата: Среда, 09.12.2015, 13:16 |
Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
Оторвать последнее слово в строке достаточно и все что в скобках в конце. Это и будет производитель.
Можно предложить вариант - берем одно или два последних слова (из букв), если они в верхнем регистре
Получилось вот что:Код
=ЕСЛИ(ПРАВБ(B4;1)=")"; "(" & СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;"(";ПОВТОР(" ";100));100)); ЕСЛИ(КОДСИМВ(СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100)))=КОДСИМВ(ПРОПИСН(СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100))));СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100));"") )
в список добавляю производителя. протягиваю формулу и там вообще ерунда получается.
Мы не экстрасенсы - пример в студию. Могу только предположить, что Вы ввели формулу не как формулу массива Ctrl+Shift+Enter
Оторвать последнее слово в строке достаточно и все что в скобках в конце. Это и будет производитель.
Можно предложить вариант - берем одно или два последних слова (из букв), если они в верхнем регистре
Получилось вот что:Код
=ЕСЛИ(ПРАВБ(B4;1)=")"; "(" & СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;"(";ПОВТОР(" ";100));100)); ЕСЛИ(КОДСИМВ(СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100)))=КОДСИМВ(ПРОПИСН(СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100))));СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100));"") )
в список добавляю производителя. протягиваю формулу и там вообще ерунда получается.
Мы не экстрасенсы - пример в студию. Могу только предположить, что Вы ввели формулу не как формулу массива Ctrl+Shift+EnterSLAVICK
Иногда все проще чем кажется с первого взгляда.
Сообщение отредактировал SLAVICK - Среда, 09.12.2015, 13:17
Ответить
Сообщение Оторвать последнее слово в строке достаточно и все что в скобках в конце. Это и будет производитель.
Можно предложить вариант - берем одно или два последних слова (из букв), если они в верхнем регистре
Получилось вот что:Код
=ЕСЛИ(ПРАВБ(B4;1)=")"; "(" & СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;"(";ПОВТОР(" ";100));100)); ЕСЛИ(КОДСИМВ(СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100)))=КОДСИМВ(ПРОПИСН(СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100))));СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";100));100));"") )
в список добавляю производителя. протягиваю формулу и там вообще ерунда получается.
Мы не экстрасенсы - пример в студию. Могу только предположить, что Вы ввели формулу не как формулу массива Ctrl+Shift+EnterАвтор - SLAVICK Дата добавления - 09.12.2015 в 13:16
anabioss13
Дата: Среда, 09.12.2015, 13:22 |
Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 133
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
SLAVICK , Супер.. Работает, меня это устроит вполне. А еще просьба, можно по такому же принципу удалить из наименования то что вынесли в другую ячейку?
SLAVICK , Супер.. Работает, меня это устроит вполне. А еще просьба, можно по такому же принципу удалить из наименования то что вынесли в другую ячейку?anabioss13
Ответить
Сообщение SLAVICK , Супер.. Работает, меня это устроит вполне. А еще просьба, можно по такому же принципу удалить из наименования то что вынесли в другую ячейку?Автор - anabioss13 Дата добавления - 09.12.2015 в 13:22
SLAVICK
Дата: Среда, 09.12.2015, 13:32 |
Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
Иногда все проще чем кажется с первого взгляда.
Ответить
Сообщение Автор - SLAVICK Дата добавления - 09.12.2015 в 13:32
abtextime
Дата: Среда, 09.12.2015, 13:37 |
Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
через UDF решение [vba]Код
Public Function Proizv(S As String) As String LastLetter = Len(S) FirstLetter = 1 FoundedLast = False FoundedFirst = False i = Len(S) Do While Not FoundedFirst And (i > 1) If (Mid(S, i, 1) >= "À") And (Mid(S, i, 1) <= "Я") Or (Mid(S, i, 1) >= "A") And (Mid(S, i, 1) <= "Z") Then If Not FoundedLast Then FoundedLast = True LastLetter = i End If Else If FoundedLast Then FoundedFirst = True FirstLetter = i End If End If i = i - 1 Loop Proizv = Mid(S, FirstLetter, LastLetter - FirstLetter + 1) End Function
[/vba]
через UDF решение [vba]Код
Public Function Proizv(S As String) As String LastLetter = Len(S) FirstLetter = 1 FoundedLast = False FoundedFirst = False i = Len(S) Do While Not FoundedFirst And (i > 1) If (Mid(S, i, 1) >= "À") And (Mid(S, i, 1) <= "Я") Or (Mid(S, i, 1) >= "A") And (Mid(S, i, 1) <= "Z") Then If Not FoundedLast Then FoundedLast = True LastLetter = i End If Else If FoundedLast Then FoundedFirst = True FirstLetter = i End If End If i = i - 1 Loop Proizv = Mid(S, FirstLetter, LastLetter - FirstLetter + 1) End Function
[/vba] abtextime
Сообщение отредактировал abtextime - Среда, 09.12.2015, 13:38
Ответить
Сообщение через UDF решение [vba]Код
Public Function Proizv(S As String) As String LastLetter = Len(S) FirstLetter = 1 FoundedLast = False FoundedFirst = False i = Len(S) Do While Not FoundedFirst And (i > 1) If (Mid(S, i, 1) >= "À") And (Mid(S, i, 1) <= "Я") Or (Mid(S, i, 1) >= "A") And (Mid(S, i, 1) <= "Z") Then If Not FoundedLast Then FoundedLast = True LastLetter = i End If Else If FoundedLast Then FoundedFirst = True FirstLetter = i End If End If i = i - 1 Loop Proizv = Mid(S, FirstLetter, LastLetter - FirstLetter + 1) End Function
[/vba] Автор - abtextime Дата добавления - 09.12.2015 в 13:37
abtextime
Дата: Среда, 09.12.2015, 13:43 |
Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
маленький баг исправил [vba]Код
Public Function Proizv(S As String) As String LastLetter = Len(S) FirstLetter = 1 FoundedLast = False FoundedFirst = False i = Len(S) Do While Not FoundedFirst And (i > 1) If (Mid(S, i, 1) >= "À") And (Mid(S, i, 1) <= "ß") Or (Mid(S, i, 1) >= "A") And (Mid(S, i, 1) <= "Z") Then If Not FoundedLast Then FoundedLast = True LastLetter = i End If Else If FoundedLast Then FoundedFirst = True FirstLetter = i + 1 End If End If i = i - 1 Loop Proizv = Mid(S, FirstLetter, LastLetter - FirstLetter + 1) End Function
[/vba]
маленький баг исправил [vba]Код
Public Function Proizv(S As String) As String LastLetter = Len(S) FirstLetter = 1 FoundedLast = False FoundedFirst = False i = Len(S) Do While Not FoundedFirst And (i > 1) If (Mid(S, i, 1) >= "À") And (Mid(S, i, 1) <= "ß") Or (Mid(S, i, 1) >= "A") And (Mid(S, i, 1) <= "Z") Then If Not FoundedLast Then FoundedLast = True LastLetter = i End If Else If FoundedLast Then FoundedFirst = True FirstLetter = i + 1 End If End If i = i - 1 Loop Proizv = Mid(S, FirstLetter, LastLetter - FirstLetter + 1) End Function
[/vba] abtextime
Ответить
Сообщение маленький баг исправил [vba]Код
Public Function Proizv(S As String) As String LastLetter = Len(S) FirstLetter = 1 FoundedLast = False FoundedFirst = False i = Len(S) Do While Not FoundedFirst And (i > 1) If (Mid(S, i, 1) >= "À") And (Mid(S, i, 1) <= "ß") Or (Mid(S, i, 1) >= "A") And (Mid(S, i, 1) <= "Z") Then If Not FoundedLast Then FoundedLast = True LastLetter = i End If Else If FoundedLast Then FoundedFirst = True FirstLetter = i + 1 End If End If i = i - 1 Loop Proizv = Mid(S, FirstLetter, LastLetter - FirstLetter + 1) End Function
[/vba] Автор - abtextime Дата добавления - 09.12.2015 в 13:43
anabioss13
Дата: Среда, 09.12.2015, 13:46 |
Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 133
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Всем огромное спасибо!!!!! Вы мне очень помогли! Отличный форум, обращался раз 10 и всегда оперативно получал ответ. Мир всем)
Всем огромное спасибо!!!!! Вы мне очень помогли! Отличный форум, обращался раз 10 и всегда оперативно получал ответ. Мир всем) anabioss13
Ответить
Сообщение Всем огромное спасибо!!!!! Вы мне очень помогли! Отличный форум, обращался раз 10 и всегда оперативно получал ответ. Мир всем) Автор - anabioss13 Дата добавления - 09.12.2015 в 13:46
_Boroda_
Дата: Среда, 09.12.2015, 14:16 |
Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 16912
Репутация:
6616
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Еще вариант формулыКод
=ЕСЛИ(СОВПАД(ПРАВБ(B4;2);ПРОПИСН(ПРАВБ(B4;2)));СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";999));999*(1+(ПРАВБ(B4)=")"))));"")
Еще вариант формулыКод
=ЕСЛИ(СОВПАД(ПРАВБ(B4;2);ПРОПИСН(ПРАВБ(B4;2)));СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";999));999*(1+(ПРАВБ(B4)=")"))));"")
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Еще вариант формулыКод
=ЕСЛИ(СОВПАД(ПРАВБ(B4;2);ПРОПИСН(ПРАВБ(B4;2)));СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(B4;" ";ПОВТОР(" ";999));999*(1+(ПРАВБ(B4)=")"))));"")
Автор - _Boroda_ Дата добавления - 09.12.2015 в 14:16