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

Вход

Регистрация

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

 

= Мир MS Excel/Повторяющиеся значения - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Повторяющиеся значения
Мур Дата: Четверг, 10.03.2011, 22:13 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Доброго времени суток!
Как уведомить пользователя при вводе повторного значения.
Пример прикладываю.
Условное форматирование не подходит, слишком много несмежных диапазонов, да и ячеек много.
А может просто я им пользоваться толком не умею....
К сообщению приложен файл: Signal.xls (21.5 Kb)
 
Ответить
СообщениеДоброго времени суток!
Как уведомить пользователя при вводе повторного значения.
Пример прикладываю.
Условное форматирование не подходит, слишком много несмежных диапазонов, да и ячеек много.
А может просто я им пользоваться толком не умею....

Автор - Мур
Дата добавления - 10.03.2011 в 22:13
Hugo Дата: Четверг, 10.03.2011, 22:29 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Можно макросом - по изменению значения в этой области проверять все значения словарём.
Макрос годится?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеМожно макросом - по изменению значения в этой области проверять все значения словарём.
Макрос годится?

Автор - Hugo
Дата добавления - 10.03.2011 в 22:29
Michael_S Дата: Четверг, 10.03.2011, 22:33 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Можно и без макроса
К сообщению приложен файл: Signal_.xls (28.0 Kb)
 
Ответить
СообщениеМожно и без макроса

Автор - Michael_S
Дата добавления - 10.03.2011 в 22:33
Мур Дата: Четверг, 10.03.2011, 22:33 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Годится практически любое решение.
Только я не до конца понимаю, что значит словарем?
 
Ответить
СообщениеГодится практически любое решение.
Только я не до конца понимаю, что значит словарем?

Автор - Мур
Дата добавления - 10.03.2011 в 22:33
Мур Дата: Четверг, 10.03.2011, 22:37 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

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

Автор - Мур
Дата добавления - 10.03.2011 в 22:37
Hugo Дата: Четверг, 10.03.2011, 22:43 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Словарём - это значит используя Object("Scripting.Dictionary").
При каждом изменении помещаем все значения (кроме неучитываемых) в словарь. Если ошибка - значит такое значение уже есть.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеСловарём - это значит используя Object("Scripting.Dictionary").
При каждом изменении помещаем все значения (кроме неучитываемых) в словарь. Если ошибка - значит такое значение уже есть.

Автор - Hugo
Дата добавления - 10.03.2011 в 22:43
Мур Дата: Четверг, 10.03.2011, 22:56 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

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

Автор - Мур
Дата добавления - 10.03.2011 в 22:56
Мур Дата: Четверг, 10.03.2011, 23:01 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

Michael_S! прокомментируйте пожалуста:
=МАКС(СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9))>1
 
Ответить
СообщениеMichael_S! прокомментируйте пожалуста:
=МАКС(СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9))>1

Автор - Мур
Дата добавления - 10.03.2011 в 23:01
Мур Дата: Четверг, 10.03.2011, 23:04 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 436
Репутация: 19 ±
Замечаний: 0% ±

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

Автор - Мур
Дата добавления - 10.03.2011 в 23:04
Hugo Дата: Четверг, 10.03.2011, 23:36 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
На словаре.
Если что непонятно - спрашивайте.
К сообщению приложен файл: 3735270.xls (33.0 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНа словаре.
Если что непонятно - спрашивайте.

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

2003
Игорь,
здорово получилось.
Но из личного опыта позволю дать один совет по использованию словарей:
- лучше (и понятнее, и меньше возможности ошибиться) записывать не
Code
If Len(vv.Value) > 0 Then .Add vv.Value, 0
а
Code
If Len(vv.Value) > 0 Then .Add Key:=vv.Value, Item:=0

Эта рекомендация связана с тем, что порядок перечисления аргументов метода Add у коллекции и словаря разный:
- для словаря: .Add (Key, Item)
- для коллекции: .Add (Item, [Key], [Before | After])
Поэтому, если не использовать именованные аргументы, да ещё и учитывая, что у коллекции Key - опциональный As String, а у словаря - обязательный и может быть чем угодно кроме массива, то выловить ошибку может быть очень трудно.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеИгорь,
здорово получилось.
Но из личного опыта позволю дать один совет по использованию словарей:
- лучше (и понятнее, и меньше возможности ошибиться) записывать не
Code
If Len(vv.Value) > 0 Then .Add vv.Value, 0
а
Code
If Len(vv.Value) > 0 Then .Add Key:=vv.Value, Item:=0

Эта рекомендация связана с тем, что порядок перечисления аргументов метода Add у коллекции и словаря разный:
- для словаря: .Add (Key, Item)
- для коллекции: .Add (Item, [Key], [Before | After])
Поэтому, если не использовать именованные аргументы, да ещё и учитывая, что у коллекции Key - опциональный As String, а у словаря - обязательный и может быть чем угодно кроме массива, то выловить ошибку может быть очень трудно.

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

365
Алексей, спасибо за уточнение, постараюсь запомнить (уже записал smile )


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеАлексей, спасибо за уточнение, постараюсь запомнить (уже записал smile )

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

2003
Да не за что, Игорь.
Просто я на эти "грабли" уже сам как-то наступал... biggrin



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеДа не за что, Игорь.
Просто я на эти "грабли" уже сам как-то наступал... biggrin

Автор - Alex_ST
Дата добавления - 11.03.2011 в 13:28
Michael_S Дата: Пятница, 11.03.2011, 15:14 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Quote (Мур)
Michael_S! прокомментируйте пожалуста: =МАКС(СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9))>1

А что тут комментировать то?
Code
СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9)
считает, сколько раз каждое значение из диапазона $H$1:$H$9 встречается в диапазоне $A$2:$C$4; если нет совсем - то "0", если один раз - то "1", если есть повторы - то больше одного. Остальное, думаю, понятно.
Возможно и без УФ - пример в голубой ячейке. На листе эта формула должна вводиться как формула массива.
В желтых ячейках - наглядно, что возвращает формула =СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9) (введена массивом в весь желтый диапазон)
К сообщению приложен файл: 4944170.xls (30.5 Kb)
 
Ответить
Сообщение
Quote (Мур)
Michael_S! прокомментируйте пожалуста: =МАКС(СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9))>1

А что тут комментировать то?
Code
СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9)
считает, сколько раз каждое значение из диапазона $H$1:$H$9 встречается в диапазоне $A$2:$C$4; если нет совсем - то "0", если один раз - то "1", если есть повторы - то больше одного. Остальное, думаю, понятно.
Возможно и без УФ - пример в голубой ячейке. На листе эта формула должна вводиться как формула массива.
В желтых ячейках - наглядно, что возвращает формула =СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9) (введена массивом в весь желтый диапазон)

Автор - Michael_S
Дата добавления - 11.03.2011 в 15:14
0mega Дата: Пятница, 11.03.2011, 15:19 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

здравствуйте
а чем вас не устраивают свои штатные Excel-евские средства ?
P.S.
Файл Michael_S, у меня не открылся ...
Возможно этот пост - повторение той же информации

P.P.S.
со второй попытки я тоже смог ознакомится с файлом Michael_S
К сообщению приложен файл: Repeat.xls (33.5 Kb)


Сообщение отредактировал 0mega - Пятница, 11.03.2011, 15:27
 
Ответить
Сообщениездравствуйте
а чем вас не устраивают свои штатные Excel-евские средства ?
P.S.
Файл Michael_S, у меня не открылся ...
Возможно этот пост - повторение той же информации

P.P.S.
со второй попытки я тоже смог ознакомится с файлом Michael_S

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

365
0mega, так там ведь проверка ввода уже задействована, но иначе. Вот если бы можно было две проверки на одну ячейку навесить...


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

Автор - Hugo
Дата добавления - 11.03.2011 в 16:15
0mega Дата: Пятница, 11.03.2011, 16:41 | Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Hugo, здравствуте
Quote (Hugo)
Вот если бы можно было две проверки на одну ячейку навесить...

я что-то вообще уже в туман ушел ...
Теперь я уже ничего не понимаю ...
что надо автору и какие проверкинадо вешать на 1 ячейку ?
 
Ответить
СообщениеHugo, здравствуте
Quote (Hugo)
Вот если бы можно было две проверки на одну ячейку навесить...

я что-то вообще уже в туман ушел ...
Теперь я уже ничего не понимаю ...
что надо автору и какие проверкинадо вешать на 1 ячейку ?

Автор - 0mega
Дата добавления - 11.03.2011 в 16:41
Hugo Дата: Пятница, 11.03.2011, 16:45 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Автору нужно запретить (известить о) ввести уже введённые в диапазон данные, но проверка ввода уже используется для ввода этих данных. Так понятно? smile


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеАвтору нужно запретить (известить о) ввести уже введённые в диапазон данные, но проверка ввода уже используется для ввода этих данных. Так понятно? smile

Автор - Hugo
Дата добавления - 11.03.2011 в 16:45
0mega Дата: Пятница, 11.03.2011, 17:56 | Сообщение № 19
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 34 ±
Замечаний: 0% ±

Quote (Hugo)
...нужно запретить (известить о) ввести уже введённые в диапазон данные

именно это и выполнят машина ?!

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

где и как ?
К сообщению приложен файл: 1053145.png (42.6 Kb)


Сообщение отредактировал 0mega - Пятница, 11.03.2011, 17:57
 
Ответить
Сообщение
Quote (Hugo)
...нужно запретить (известить о) ввести уже введённые в диапазон данные

именно это и выполнят машина ?!

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

где и как ?

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

365
0mega, у Вас файл http://www.excelworld.ru/_fr/3/Signal.xls нормально открылся? Там есть выбор фамилий в выпадающем списке в сером поле?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение0mega, у Вас файл http://www.excelworld.ru/_fr/3/Signal.xls нормально открылся? Там есть выбор фамилий в выпадающем списке в сером поле?

Автор - Hugo
Дата добавления - 11.03.2011 в 18:08
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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