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

Вход

Регистрация

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

 

= Мир MS Excel/Есть часть слова в ячейке, хочу чтобы он находил в другой яч - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: китин, _Boroda_  
Есть часть слова в ячейке, хочу чтобы он находил в другой яч
ABC Дата: Пятница, 13.04.2012, 22:35 | Сообщение № 21
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
Вам лучше доп.лист, типа базы
пример:
столбец1 | столбец2
USB | 8xUSB
USB | 4xUSB2+2xUSB3
USB | GA-H61N-USB3
USB | 8xUSB2
и так далее
HDMI | Video INTEL CPU (HDMI)
HDMI | INTEL CPU Video (D-Sub/DVI-D/HDMI/DP)
HDMI | INTEL CPU Video (HDMI)
и так далее...
и искать там же...
думаю так будет лучше, если каждый день занимаетесь с такими условиями...

или 2 вариант используя мой вариант, лучше разделитель не ",", а "какой то символ на пример #$"... подправим формулу результат должен быть
от #$ результат #$, kim-а формула тоже должен работать правильно...


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
СообщениеВам лучше доп.лист, типа базы
пример:
столбец1 | столбец2
USB | 8xUSB
USB | 4xUSB2+2xUSB3
USB | GA-H61N-USB3
USB | 8xUSB2
и так далее
HDMI | Video INTEL CPU (HDMI)
HDMI | INTEL CPU Video (D-Sub/DVI-D/HDMI/DP)
HDMI | INTEL CPU Video (HDMI)
и так далее...
и искать там же...
думаю так будет лучше, если каждый день занимаетесь с такими условиями...

или 2 вариант используя мой вариант, лучше разделитель не ",", а "какой то символ на пример #$"... подправим формулу результат должен быть
от #$ результат #$, kim-а формула тоже должен работать правильно...

Автор - ABC
Дата добавления - 13.04.2012 в 22:35
wwizard Дата: Пятница, 13.04.2012, 22:49 | Сообщение № 22
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Это будет потом, темболее я не настолько хорошо в этом плаваю, чтобы такое продумать.
Мне бы еще к той формуле придумать + ячейку с исключениями.
Например: Спустить всю таблицу еще на одну строку ниже, и сделать для этого одну ячейку для каждого столбца в 9й строке.

Например, если в столбце [D] будет производится поиск фразы "PCI" - то найти и расположить через запятую, все что он найдет с такой фразой.

Поа то что получилось в результате не многое изменено выглядит вот так:
Скачать


Сообщение отредактировал wwizard - Пятница, 13.04.2012, 23:21
 
Ответить
СообщениеЭто будет потом, темболее я не настолько хорошо в этом плаваю, чтобы такое продумать.
Мне бы еще к той формуле придумать + ячейку с исключениями.
Например: Спустить всю таблицу еще на одну строку ниже, и сделать для этого одну ячейку для каждого столбца в 9й строке.

Например, если в столбце [D] будет производится поиск фразы "PCI" - то найти и расположить через запятую, все что он найдет с такой фразой.

Поа то что получилось в результате не многое изменено выглядит вот так:
Скачать

Автор - wwizard
Дата добавления - 13.04.2012 в 22:49
wwizard Дата: Суббота, 14.04.2012, 07:00 | Сообщение № 23
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Мозг потихоньку закипает, никак не получается.
 
Ответить
СообщениеМозг потихоньку закипает, никак не получается.

Автор - wwizard
Дата добавления - 14.04.2012 в 07:00
wwizard Дата: Суббота, 14.04.2012, 14:24 | Сообщение № 24
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Я дико прошу прощения пожалуйста помогите еще чуть чуть:

Очень нужна: ячейка с исключениями.
Например: Спустить всю таблицу еще на одну строку ниже, и сделать для этого одну ячейку для каждого столбца в 9й строке.

Например, если в столбце [D] будет производится поиск фразы "PCI" - то найти и расположить через запятую, все что он найдет с такой фразой.
Пример, того что есть, полностью в рабочем варианте
 
Ответить
СообщениеЯ дико прошу прощения пожалуйста помогите еще чуть чуть:

Очень нужна: ячейка с исключениями.
Например: Спустить всю таблицу еще на одну строку ниже, и сделать для этого одну ячейку для каждого столбца в 9й строке.

Например, если в столбце [D] будет производится поиск фразы "PCI" - то найти и расположить через запятую, все что он найдет с такой фразой.
Пример, того что есть, полностью в рабочем варианте

Автор - wwizard
Дата добавления - 14.04.2012 в 14:24
wwizard Дата: Понедельник, 16.04.2012, 20:26 | Сообщение № 25
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Так, что получится мне немножко помочь?
 
Ответить
СообщениеТак, что получится мне немножко помочь?

Автор - wwizard
Дата добавления - 16.04.2012 в 20:26
Hugo Дата: Понедельник, 16.04.2012, 20:38 | Сообщение № 26
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Вы мою UDF забраковали... А с её помощью можно что угодно сделать. Особенно если руки приложить smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеВы мою UDF забраковали... А с её помощью можно что угодно сделать. Особенно если руки приложить smile

Автор - Hugo
Дата добавления - 16.04.2012 в 20:38
wwizard Дата: Понедельник, 16.04.2012, 21:54 | Сообщение № 27
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Quote (Hugo)
Вы мою UDF забраковали... А с её помощью можно что угодно сделать. Особенно если руки приложить

не забраковал, а на будущее отложил, там очень интересно все с массивами продумано.
 
Ответить
Сообщение
Quote (Hugo)
Вы мою UDF забраковали... А с её помощью можно что угодно сделать. Особенно если руки приложить

не забраковал, а на будущее отложил, там очень интересно все с массивами продумано.

Автор - wwizard
Дата добавления - 16.04.2012 в 21:54
Hugo Дата: Понедельник, 16.04.2012, 22:10 | Сообщение № 28
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Я там вроде сказал, что можно их в очередь собрать, если из цикла не выходить после первого совпадения.
Сейчас уже код не найду, не сохранил...


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

Автор - Hugo
Дата добавления - 16.04.2012 в 22:10
wwizard Дата: Понедельник, 16.04.2012, 23:37 | Сообщение № 29
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Quote (Hugo)
Сейчас уже код не найду, не сохранил...


вот он

Может что-то вроде:

[vba]
Code
Function izvlech(s$, p1$, p2$, p3$) As String
Dim a
izvlech = ""
s = Replace(s, ",", " ")
For Each a In Split(s)
If a Like "*" & p1 & "*" Then izvlech = a: Exit Function
Next
For Each a In Split(s)
If a Like "*" & p2 & "*" Then izvlech = a: Exit Function
Next
For Each a In Split(s)
If a Like "*" & p3 & "*" Then izvlech = a: Exit Function
Next
End Function
[/vba]
Можно их всех в очередь собрать, если нужно.


Сообщение отредактировал wwizard - Понедельник, 16.04.2012, 23:38
 
Ответить
Сообщение
Quote (Hugo)
Сейчас уже код не найду, не сохранил...


вот он

Может что-то вроде:

[vba]
Code
Function izvlech(s$, p1$, p2$, p3$) As String
Dim a
izvlech = ""
s = Replace(s, ",", " ")
For Each a In Split(s)
If a Like "*" & p1 & "*" Then izvlech = a: Exit Function
Next
For Each a In Split(s)
If a Like "*" & p2 & "*" Then izvlech = a: Exit Function
Next
For Each a In Split(s)
If a Like "*" & p3 & "*" Then izvlech = a: Exit Function
Next
End Function
[/vba]
Можно их всех в очередь собрать, если нужно.

Автор - wwizard
Дата добавления - 16.04.2012 в 23:37
wwizard Дата: Вторник, 17.04.2012, 12:06 | Сообщение № 30
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Очень нужна: ячейка с исключениями.
Например: Спустить всю таблицу еще на одну строку ниже, и сделать для этого одну ячейку для каждого столбца в 9й строке.

Например, если в столбце [D] будет производится поиск фразы "PCI" - то найти и расположить через запятую, все что он найдет с такой фразой.

файл : лежит выше чуток.
 
Ответить
СообщениеОчень нужна: ячейка с исключениями.
Например: Спустить всю таблицу еще на одну строку ниже, и сделать для этого одну ячейку для каждого столбца в 9й строке.

Например, если в столбце [D] будет производится поиск фразы "PCI" - то найти и расположить через запятую, все что он найдет с такой фразой.

файл : лежит выше чуток.

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

365
Upgrade:

Такой вариант - на 4 параметра с одним исключением в каждом:

[vba]
Code
Option Explicit

Function izvlech(s$, sep_$, p1$, p2$, p3$, p4$) As String
       Dim a, p
       izvlech = ""

       For Each p In Array(p1, p2, p3, p4)
           For Each a In Split(s, ",")
               If UCase(a) Like "*" & UCase(Split(p, "|")(0)) & "*" Then
                   If Not UCase(a) Like "*" & UCase(Split(p, "|")(1)) & "*" Then
                       izvlech = izvlech & sep_ & Trim(a)
                   End If
               End If
           Next
           If Len(izvlech) Then
               izvlech = Mid(izvlech, Len(sep_) + 1)
               Exit Function
           End If
       Next
End Function
[/vba]
На листе формулу пишем так (разделитель можно задать какой больше нравится):
=izvlech($D10,", ",E$1,E$2,E$3,E$4)

Параметры в E1:E4 пишем так (после разделителя исключение):

intel|video
core|---
Phenom|---
series|---

|--- - это обязательно! Ну или нужно изменять/усложнять код. Вместо "---" можно писать что-то другое отсутствующее.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеUpgrade:

Такой вариант - на 4 параметра с одним исключением в каждом:

[vba]
Code
Option Explicit

Function izvlech(s$, sep_$, p1$, p2$, p3$, p4$) As String
       Dim a, p
       izvlech = ""

       For Each p In Array(p1, p2, p3, p4)
           For Each a In Split(s, ",")
               If UCase(a) Like "*" & UCase(Split(p, "|")(0)) & "*" Then
                   If Not UCase(a) Like "*" & UCase(Split(p, "|")(1)) & "*" Then
                       izvlech = izvlech & sep_ & Trim(a)
                   End If
               End If
           Next
           If Len(izvlech) Then
               izvlech = Mid(izvlech, Len(sep_) + 1)
               Exit Function
           End If
       Next
End Function
[/vba]
На листе формулу пишем так (разделитель можно задать какой больше нравится):
=izvlech($D10,", ",E$1,E$2,E$3,E$4)

Параметры в E1:E4 пишем так (после разделителя исключение):

intel|video
core|---
Phenom|---
series|---

|--- - это обязательно! Ну или нужно изменять/усложнять код. Вместо "---" можно писать что-то другое отсутствующее.

Автор - Hugo
Дата добавления - 17.04.2012 в 13:04
wwizard Дата: Вторник, 17.04.2012, 19:38 | Сообщение № 32
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Quote (Hugo)
На листе формулу пишем так (разделитель можно задать какой больше нравится): =izvlech($D10,", ",E$1,E$2,E$3,E$4) Параметры в E1:E4 пишем так (после разделителя исключение):


прошу прощения, с макросами дел не имел. А куда это писать?
 
Ответить
Сообщение
Quote (Hugo)
На листе формулу пишем так (разделитель можно задать какой больше нравится): =izvlech($D10,", ",E$1,E$2,E$3,E$4) Параметры в E1:E4 пишем так (после разделителя исключение):


прошу прощения, с макросами дел не имел. А куда это писать?

Автор - wwizard
Дата добавления - 17.04.2012 в 19:38
Serge_007 Дата: Вторник, 17.04.2012, 19:48 | Сообщение № 33
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (wwizard)
А куда это писать?

Quote (Hugo)
На листе формулу пишем так (разделитель можно задать какой больше нравится):
=izvlech($D10,", ",E$1,E$2,E$3,E$4)

Параметры в E1:E4 пишем так (после разделителя исключение):


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (wwizard)
А куда это писать?

Quote (Hugo)
На листе формулу пишем так (разделитель можно задать какой больше нравится):
=izvlech($D10,", ",E$1,E$2,E$3,E$4)

Параметры в E1:E4 пишем так (после разделителя исключение):

Автор - Serge_007
Дата добавления - 17.04.2012 в 19:48
wwizard Дата: Вторник, 17.04.2012, 19:50 | Сообщение № 34
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

не, я про макрос, дело не в формуле.
 
Ответить
Сообщениене, я про макрос, дело не в формуле.

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

Excel 2016
Quote (wwizard)
я про макрос, дело не в формуле

А что, формула =izvlech() у Вас работает?!

Я тоже про макрос. После того как Вы поместите код Игоря в стандартный модуль необходимо будет сделать то что он написал.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (wwizard)
я про макрос, дело не в формуле

А что, формула =izvlech() у Вас работает?!

Я тоже про макрос. После того как Вы поместите код Игоря в стандартный модуль необходимо будет сделать то что он написал.

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

365
Сейчас добавлю в файл - с работы стараюсь ничего никуда не посылать... sad

Добавил.
Лишнее из файла удалил, чтоб в лимит вкладывался.
Я забыл, что в русском экселе вместо запятых нужно точку с запятой в формулах ставить:
[vba]
Code
=izvlech($D13;", ";E$1;E$2;E$3;E$4)
[/vba]
Заменил файл - ошибки не выдаёт, список параметров теперь неограничен.
К сообщению приложен файл: _2.4.xlsm (30.0 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеСейчас добавлю в файл - с работы стараюсь ничего никуда не посылать... sad

Добавил.
Лишнее из файла удалил, чтоб в лимит вкладывался.
Я забыл, что в русском экселе вместо запятых нужно точку с запятой в формулах ставить:
[vba]
Code
=izvlech($D13;", ";E$1;E$2;E$3;E$4)
[/vba]
Заменил файл - ошибки не выдаёт, список параметров теперь неограничен.

Автор - Hugo
Дата добавления - 17.04.2012 в 20:38
wwizard Дата: Среда, 18.04.2012, 13:07 | Сообщение № 37
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

Прикольно, работает.
Я так понимаю, что оно тоже от запятой, до запятой берет значение?
 
Ответить
СообщениеПрикольно, работает.
Я так понимаю, что оно тоже от запятой, до запятой берет значение?

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

365
Да.
В первой версии бил по пробелам - но в связи с новыми данными бью по запятым.
В принципе, можно и этот параметр добавить в код - тогда для разных ячеек можно ставить по разному - где отбирать слова, а где "предложения".


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеДа.
В первой версии бил по пробелам - но в связи с новыми данными бью по запятым.
В принципе, можно и этот параметр добавить в код - тогда для разных ячеек можно ставить по разному - где отбирать слова, а где "предложения".

Автор - Hugo
Дата добавления - 18.04.2012 в 13:36
wwizard Дата: Среда, 18.04.2012, 16:48 | Сообщение № 39
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 176
Репутация: 0 ±
Замечаний: 40% ±

не не надо, по запятым нормально
Еще вопрос, а если три слова, то:[ intel|video|core ] Так?
 
Ответить
Сообщениене не надо, по запятым нормально
Еще вопрос, а если три слова, то:[ intel|video|core ] Так?

Автор - wwizard
Дата добавления - 18.04.2012 в 16:48
Hugo Дата: Среда, 18.04.2012, 17:11 | Сообщение № 40
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Нет, после | идёт одно исключение.
Тогда нужно дописывать код, чтоб перебирал все исключения до конца массива.

Например:
[vba]
Code
Function izvlech(s$, sep_$, ParamArray par()) As String
     Dim a, p, i As Byte, flag As Boolean
     izvlech = ""
     For Each p In par
         If InStr(p, "|") Then
             For Each a In Split(s, ",")
                 If UCase(a) Like "*" & UCase(Split(p, "|")(0)) & "*" Then
                     flag = False
                     For i = 1 To UBound(Split(p, "|"))
                         If UCase(a) Like "*" & UCase(Split(p, "|")(i)) & "*" Then
                             flag = True
                         End If
                     Next
                     If Not flag Then izvlech = izvlech & sep_ & Trim(a)
                 End If
             Next
         End If

         If Len(izvlech) Then
             izvlech = Mid(izvlech, Len(sep_) + 1)
             Exit Function
         End If
     Next
End Function
[/vba]

Но конечно условие intel|video|core рубит почти все интеловские процессоры на корню (кроме INTEL CPU)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНет, после | идёт одно исключение.
Тогда нужно дописывать код, чтоб перебирал все исключения до конца массива.

Например:
[vba]
Code
Function izvlech(s$, sep_$, ParamArray par()) As String
     Dim a, p, i As Byte, flag As Boolean
     izvlech = ""
     For Each p In par
         If InStr(p, "|") Then
             For Each a In Split(s, ",")
                 If UCase(a) Like "*" & UCase(Split(p, "|")(0)) & "*" Then
                     flag = False
                     For i = 1 To UBound(Split(p, "|"))
                         If UCase(a) Like "*" & UCase(Split(p, "|")(i)) & "*" Then
                             flag = True
                         End If
                     Next
                     If Not flag Then izvlech = izvlech & sep_ & Trim(a)
                 End If
             Next
         End If

         If Len(izvlech) Then
             izvlech = Mid(izvlech, Len(sep_) + 1)
             Exit Function
         End If
     Next
End Function
[/vba]

Но конечно условие intel|video|core рубит почти все интеловские процессоры на корню (кроме INTEL CPU)

Автор - Hugo
Дата добавления - 18.04.2012 в 17:11
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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