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

Вход

Регистрация

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

 

= Мир MS Excel/Если ячейка содержит слова из массива то вывести их - Мир MS Excel

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_, DrMini  
Если ячейка содержит слова из массива то вывести их
vladimir-shagaliev Дата: Пятница, 04.07.2014, 18:40 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Приветствую!

Задача следующая
Есть два столбца в первом фразы состоящие из нескольких слов, во втором в одной ячейке одно слово.
Нужно в третьем столбце вывести какие именно слова содержит первый столбец из второго. Ячейка первого массива может содержать несколько значений из второго массива и их нужно сцепить и вывести в третьем в той же строчке. В чем суть - нужно видеть какие уже слова содержаться во втором массиве, он будет находиться на другом листе и пополняться.
В файле пример что должно получиться.
К сообщению приложен файл: 2018248.xlsx (9.3 Kb)


Сообщение отредактировал vladimir-shagaliev - Пятница, 04.07.2014, 18:41
 
Ответить
СообщениеПриветствую!

Задача следующая
Есть два столбца в первом фразы состоящие из нескольких слов, во втором в одной ячейке одно слово.
Нужно в третьем столбце вывести какие именно слова содержит первый столбец из второго. Ячейка первого массива может содержать несколько значений из второго массива и их нужно сцепить и вывести в третьем в той же строчке. В чем суть - нужно видеть какие уже слова содержаться во втором массиве, он будет находиться на другом листе и пополняться.
В файле пример что должно получиться.

Автор - vladimir-shagaliev
Дата добавления - 04.07.2014 в 18:40
vladimir-shagaliev Дата: Пятница, 04.07.2014, 18:50 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
максимальное количество слов в ячейке 7 и соответственно максимально возможное количество совпадений которые нужно вывести тоже 7
 
Ответить
Сообщениемаксимальное количество слов в ячейке 7 и соответственно максимально возможное количество совпадений которые нужно вывести тоже 7

Автор - vladimir-shagaliev
Дата добавления - 04.07.2014 в 18:50
_Boroda_ Дата: Пятница, 04.07.2014, 19:39 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16901
Репутация: 6613 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[p.s.]Хорошо еще, что только 7 слов.
К сообщению приложен файл: 2018248_1.xlsx (10.7 Kb)


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

Автор - _Boroda_
Дата добавления - 04.07.2014 в 19:39
Hugo Дата: Пятница, 04.07.2014, 21:50 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Да хоть сколько слов... Правда если привлечь VBA, но в виде функции.
К сообщению приложен файл: 2018248_2.xls (44.0 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеДа хоть сколько слов... Правда если привлечь VBA, но в виде функции.

Автор - Hugo
Дата добавления - 04.07.2014 в 21:50
vladimir-shagaliev Дата: Суббота, 05.07.2014, 11:36 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Hugo, Спасибо БОЛЬШОЕ!!!
Все четко работает. Но мой комп умирает. Список проверяемых состоит из 300 значений. Если делаю расчет формулы даже в 100 ячейках, то комп умирает со 100% загрузкой ЦП минут на 30. Комп слабенький, в связи с этим вопрос, если взять более мощный комп то какой брать чтобы все считалось и пересчитывалось на лету, и возможно ли это вообще?
К сообщению приложен файл: 8432613.png (8.1 Kb)
 
Ответить
Сообщение_Boroda_, Hugo, Спасибо БОЛЬШОЕ!!!
Все четко работает. Но мой комп умирает. Список проверяемых состоит из 300 значений. Если делаю расчет формулы даже в 100 ячейках, то комп умирает со 100% загрузкой ЦП минут на 30. Комп слабенький, в связи с этим вопрос, если взять более мощный комп то какой брать чтобы все считалось и пересчитывалось на лету, и возможно ли это вообще?

Автор - vladimir-shagaliev
Дата добавления - 05.07.2014 в 11:36
Hugo Дата: Суббота, 05.07.2014, 12:31 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
С UDF ничего умирать не должно. Удалите в примере формулы _Boroda_, оставьте только мои.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеС UDF ничего умирать не должно. Удалите в примере формулы _Boroda_, оставьте только мои.

Автор - Hugo
Дата добавления - 05.07.2014 в 12:31
vladimir-shagaliev Дата: Суббота, 05.07.2014, 15:23 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Hugo, я чуть не заплакал когда заработало. Но есть один любопытный момент. Если внести в список значений новый элемент (список значений пополняется) то формула не пересчитывается. Нужно закрыть-открыть файл, и сделать ввод формулы (сделать активной ячейку и нажать Enter) потом уже она видит что появился новый элемент и соответственно выводит его где нужно. Столбец значений я определяю широко т е вот =doska(B820;minus!$B$3:$B$1000) заполнены значения столбца B не полностью, т е 300 значений заполнены а остальные пустые ячейки. И вот когда я добавляю скажем 301 элемент, несмотря на то что в формуле он учтен, пересчет не происходит и нужно открыть закрыть файл и нажать на ячейке enter и тогда формула пересчитывается
 
Ответить
СообщениеHugo, я чуть не заплакал когда заработало. Но есть один любопытный момент. Если внести в список значений новый элемент (список значений пополняется) то формула не пересчитывается. Нужно закрыть-открыть файл, и сделать ввод формулы (сделать активной ячейку и нажать Enter) потом уже она видит что появился новый элемент и соответственно выводит его где нужно. Столбец значений я определяю широко т е вот =doska(B820;minus!$B$3:$B$1000) заполнены значения столбца B не полностью, т е 300 значений заполнены а остальные пустые ячейки. И вот когда я добавляю скажем 301 элемент, несмотря на то что в формуле он учтен, пересчет не происходит и нужно открыть закрыть файл и нажать на ячейке enter и тогда формула пересчитывается

Автор - vladimir-shagaliev
Дата добавления - 05.07.2014 в 15:23
Hugo Дата: Суббота, 05.07.2014, 15:51 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Ну это можно макросом подправить - сделать маленький макрос с одной строкой set dic=nothing и вызывать его когда нужно дать обновлённый список.
Вообще это потому, что я старался сделать код быстрым, поэтому словарь заполняется только один раз при срабатывании первой функции, остальные используют уже собранное.
Поэтому изменение списка не учитывается, когда словарь уже готов.
Можно код переписать - но будет работать медленнее, даже вероятно заметно медленнее.

Вот добавил кнопку - когда добавите значение, то жмёте кнопку, затем заново протягиваете формулы (сами они не пересчитываются, нужно заставлять).
К сообщению приложен файл: 2018248_3.xls (40.0 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНу это можно макросом подправить - сделать маленький макрос с одной строкой set dic=nothing и вызывать его когда нужно дать обновлённый список.
Вообще это потому, что я старался сделать код быстрым, поэтому словарь заполняется только один раз при срабатывании первой функции, остальные используют уже собранное.
Поэтому изменение списка не учитывается, когда словарь уже готов.
Можно код переписать - но будет работать медленнее, даже вероятно заметно медленнее.

Вот добавил кнопку - когда добавите значение, то жмёте кнопку, затем заново протягиваете формулы (сами они не пересчитываются, нужно заставлять).

Автор - Hugo
Дата добавления - 05.07.2014 в 15:51
vladimir-shagaliev Дата: Суббота, 05.07.2014, 16:00 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Hugo, не переписывать не надо, работает очень быстро и это огромный плюс и самое главное. А отдельная кнопочка "Обновить список" будет в самый раз и для логики процесса тоже и это быстрее чем открывать-закрывать-пересчитывать. Готов финансово отблагодарить
 
Ответить
СообщениеHugo, не переписывать не надо, работает очень быстро и это огромный плюс и самое главное. А отдельная кнопочка "Обновить список" будет в самый раз и для логики процесса тоже и это быстрее чем открывать-закрывать-пересчитывать. Готов финансово отблагодарить

Автор - vladimir-shagaliev
Дата добавления - 05.07.2014 в 16:00
Hugo Дата: Суббота, 05.07.2014, 16:10 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Кнопочку добавил - но пересчитывать функции придётся... Хотя это не долго - можно на одну строку выше диапазона вбить лишнюю функцию, и пересчитывать всё даблкликом по уголку. Она не пересчитается, а все ниже пересчитаются.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеКнопочку добавил - но пересчитывать функции придётся... Хотя это не долго - можно на одну строку выше диапазона вбить лишнюю функцию, и пересчитывать всё даблкликом по уголку. Она не пересчитается, а все ниже пересчитаются.

Автор - Hugo
Дата добавления - 05.07.2014 в 16:10
Hugo Дата: Суббота, 05.07.2014, 16:14 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Вот как нужно делать - сперва кликнуть кнопку, затем править список - тогда всё автоматом пересчитывается!


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеВот как нужно делать - сперва кликнуть кнопку, затем править список - тогда всё автоматом пересчитывается!

Автор - Hugo
Дата добавления - 05.07.2014 в 16:14
vladimir-shagaliev Дата: Суббота, 05.07.2014, 16:29 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Hugo, Большое спасибо за решение! Жить стало веселей
 
Ответить
СообщениеHugo, Большое спасибо за решение! Жить стало веселей

Автор - vladimir-shagaliev
Дата добавления - 05.07.2014 в 16:29
Hugo Дата: Суббота, 05.07.2014, 16:31 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Берите на "вооружение" UDF - и жить станет намного проще.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеБерите на "вооружение" UDF - и жить станет намного проще.

Автор - Hugo
Дата добавления - 05.07.2014 в 16:31
ikki Дата: Суббота, 05.07.2014, 16:31 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
это ж надо помнить... про кнопочку...
поиздевался над файлом Hugo
сорри :)
К сообщению приложен файл: vladimir-shagal.xls (40.5 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеэто ж надо помнить... про кнопочку...
поиздевался над файлом Hugo
сорри :)

Автор - ikki
Дата добавления - 05.07.2014 в 16:31
Hugo Дата: Суббота, 05.07.2014, 16:35 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Александр, вот что-то у меня не срабатывает это ActiveSheet.Calculate... Т.е. не работают твои издевательства... :(
Я уже тоже пробовал это на кнопку повесить сразу после сброса словаря - не фурычит, хотя должно бы...
Так что у меня надёжнее так - сперва нажали кнопку, затем правим список.
Как вариант - обнулять словарь при выделении ячейки в D :) сейчас попробую...

Файл ниже по теме.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеАлександр, вот что-то у меня не срабатывает это ActiveSheet.Calculate... Т.е. не работают твои издевательства... :(
Я уже тоже пробовал это на кнопку повесить сразу после сброса словаря - не фурычит, хотя должно бы...
Так что у меня надёжнее так - сперва нажали кнопку, затем правим список.
Как вариант - обнулять словарь при выделении ячейки в D :) сейчас попробую...

Файл ниже по теме.

Автор - Hugo
Дата добавления - 05.07.2014 в 16:35
ikki Дата: Суббота, 05.07.2014, 16:37 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
не срабатывает это ActiveSheet.Calculate...
гм... странно...
пока даже не могу предположить - по какой причине...


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
не срабатывает это ActiveSheet.Calculate...
гм... странно...
пока даже не могу предположить - по какой причине...

Автор - ikki
Дата добавления - 05.07.2014 в 16:37
ikki Дата: Суббота, 05.07.2014, 16:41 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
кстати - заглянул в код функции.
думаю, имеет смысл поменять местами пару строчек
[vba]
Код
    a = znacenija.Value
     If dic Is Nothing Then
[/vba] будет ещё быстрее


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениекстати - заглянул в код функции.
думаю, имеет смысл поменять местами пару строчек
[vba]
Код
    a = znacenija.Value
     If dic Is Nothing Then
[/vba] будет ещё быстрее

Автор - ikki
Дата добавления - 05.07.2014 в 16:41
Hugo Дата: Суббота, 05.07.2014, 16:46 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Да, точно. Что-то тупанул...
Вот совместный вариант без кнопки.
К сообщению приложен файл: 0674832.xls (40.0 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеДа, точно. Что-то тупанул...
Вот совместный вариант без кнопки.

Автор - Hugo
Дата добавления - 05.07.2014 в 16:46
ikki Дата: Суббота, 05.07.2014, 16:53 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
нет.
буду "противоречить" сам себе :)
всё-таки лучше делать с кнопкой.
ибо даже после поверхностного тестирования обнаружился неприятный нюанс:

если что-л. удалить в зелёном диапазоне - всё, конечно, пересчитывается и обновляется.
а вот если отменить это удаление (нажав "отмена") - то нифига.

с отменой редактирования - пересчитывает и после отмены.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 05.07.2014, 16:54
 
Ответить
Сообщениенет.
буду "противоречить" сам себе :)
всё-таки лучше делать с кнопкой.
ибо даже после поверхностного тестирования обнаружился неприятный нюанс:

если что-л. удалить в зелёном диапазоне - всё, конечно, пересчитывается и обновляется.
а вот если отменить это удаление (нажав "отмена") - то нифига.

с отменой редактирования - пересчитывает и после отмены.

Автор - ikki
Дата добавления - 05.07.2014 в 16:53
vladimir-shagaliev Дата: Суббота, 05.07.2014, 17:05 | Сообщение № 20
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вариант с кнопочкой работает быстрее чем с пересчетом формул. Пересчитываемых значений 14 000
 
Ответить
СообщениеВариант с кнопочкой работает быстрее чем с пересчетом формул. Пересчитываемых значений 14 000

Автор - vladimir-shagaliev
Дата добавления - 05.07.2014 в 17:05
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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