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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск записей отвечающих заданным условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск записей отвечающих заданным условиям (Макросы/Sub)
Поиск записей отвечающих заданным условиям
expsa Дата: Четверг, 16.11.2017, 14:30 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Много тут решений поиска дублей, но моего решения нет.
Требуется найти дублирующие записи, числовые значения которых имеют +/- отклонение от 1% до 20%.
В файле значения для поиска и условие поиска.
Заранее спасибо.
К сообщению приложен файл: 5741483.xlsx (50.8 Kb)
 
Ответить
СообщениеДобрый день.
Много тут решений поиска дублей, но моего решения нет.
Требуется найти дублирующие записи, числовые значения которых имеют +/- отклонение от 1% до 20%.
В файле значения для поиска и условие поиска.
Заранее спасибо.

Автор - expsa
Дата добавления - 16.11.2017 в 14:30
_Boroda_ Дата: Четверг, 16.11.2017, 14:49 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Код
=СЧЁТЕСЛИМН(A:A;A4;B:B;">="&B4*(1-B$1);B:B;"<="&B4*(1+B$1);C:C;">="&C4*(1-C$1);C:C;"<="&C4*(1+C$1))

Но только здесь есть засада - представим, что в двух строках значения в столбцах А и В равны. А в столбце С в первой строке значение 1000, а во второй значение 800.
Считаем для первой строки - 1000-1000*20%=800. Отлично, подходит
А теперь для второй строки - 800+800*20%=960. Не подходит
Следовательно, для значения 1000 значение 800 является повтором, а вот для значения 800 значение 1000 - не является.

Поэтому формулу предлагаю такую
Код
=СЧЁТЕСЛИМН(A:A;A4;B:B;">="&B4*(1-B$1);B:B;"<="&B4/(1-B$1);C:C;">="&C4*(1-C$1);C:C;"<="&C4/(1-C$1))
К сообщению приложен файл: 5741483_1.xlsx (54.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Код
=СЧЁТЕСЛИМН(A:A;A4;B:B;">="&B4*(1-B$1);B:B;"<="&B4*(1+B$1);C:C;">="&C4*(1-C$1);C:C;"<="&C4*(1+C$1))

Но только здесь есть засада - представим, что в двух строках значения в столбцах А и В равны. А в столбце С в первой строке значение 1000, а во второй значение 800.
Считаем для первой строки - 1000-1000*20%=800. Отлично, подходит
А теперь для второй строки - 800+800*20%=960. Не подходит
Следовательно, для значения 1000 значение 800 является повтором, а вот для значения 800 значение 1000 - не является.

Поэтому формулу предлагаю такую
Код
=СЧЁТЕСЛИМН(A:A;A4;B:B;">="&B4*(1-B$1);B:B;"<="&B4/(1-B$1);C:C;">="&C4*(1-C$1);C:C;"<="&C4/(1-C$1))

Автор - _Boroda_
Дата добавления - 16.11.2017 в 14:49
expsa Дата: Пятница, 17.11.2017, 08:36 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Спасибо.
Идея хорошая. Вот только почему то не работает. хм.
Да и расчет выполняется долго. Для более 3000 записей 5-10 мин расчета....


Сообщение отредактировал expsa - Пятница, 17.11.2017, 09:06
 
Ответить
Сообщение_Boroda_, Спасибо.
Идея хорошая. Вот только почему то не работает. хм.
Да и расчет выполняется долго. Для более 3000 записей 5-10 мин расчета....

Автор - expsa
Дата добавления - 17.11.2017 в 08:36
_Boroda_ Дата: Пятница, 17.11.2017, 09:03 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Поясните, Вам нужно, чтобы в двух строках ОДНОВРЕМЕННО выполнялись 3 условия - совпадение в столбце А, дельта 1% в столбце В и дельта 20% в столбце С? Если да, то моя формула должна это отловить.
Попробуйте вручную найти хотя бы один такой случай. Если не найдете, то попробуйте смоделировать, забив значения вручную


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПоясните, Вам нужно, чтобы в двух строках ОДНОВРЕМЕННО выполнялись 3 условия - совпадение в столбце А, дельта 1% в столбце В и дельта 20% в столбце С? Если да, то моя формула должна это отловить.
Попробуйте вручную найти хотя бы один такой случай. Если не найдете, то попробуйте смоделировать, забив значения вручную

Автор - _Boroda_
Дата добавления - 17.11.2017 в 09:03
expsa Дата: Пятница, 17.11.2017, 09:07 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_,
Прошу прощения, формула работает.
Вот только записей много и работает долго.
Для примера полученного результата и пояснения что требуется прикладываю файл.
Реализовал так: =ЕСЛИ(СЧЁТЕСЛИМН($B$2:B2;B2;$U$2:U2;">="&U2*0.99;$U$2:U2;"<="&U2/0.99;$Z$2:Z2;">="&Z2*0.8;$Z$2:Z2;"<="&Z2/0.8)>1;"Дубль";"")
Формула ищет только до текущей записи оставляя одну запись из совпавших.
Макрос бы...
Спасибо за помощь.
К сообщению приложен файл: _2.xlsx (18.6 Kb)


Сообщение отредактировал expsa - Пятница, 17.11.2017, 10:44
 
Ответить
Сообщение_Boroda_,
Прошу прощения, формула работает.
Вот только записей много и работает долго.
Для примера полученного результата и пояснения что требуется прикладываю файл.
Реализовал так: =ЕСЛИ(СЧЁТЕСЛИМН($B$2:B2;B2;$U$2:U2;">="&U2*0.99;$U$2:U2;"<="&U2/0.99;$Z$2:Z2;">="&Z2*0.8;$Z$2:Z2;"<="&Z2/0.8)>1;"Дубль";"")
Формула ищет только до текущей записи оставляя одну запись из совпавших.
Макрос бы...
Спасибо за помощь.

Автор - expsa
Дата добавления - 17.11.2017 в 09:07
InExSu Дата: Пятница, 17.11.2017, 22:57 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Удалено администрацией. Предыдущий пост ТС с нарушением Правил форума
InExSu, уж пора бы выучить Правила форума


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac

Сообщение отредактировал _Boroda_ - Пятница, 17.11.2017, 23:16
 
Ответить
СообщениеУдалено администрацией. Предыдущий пост ТС с нарушением Правил форума
InExSu, уж пора бы выучить Правила форума

Автор - InExSu
Дата добавления - 17.11.2017 в 22:57
_Boroda_ Дата: Пятница, 17.11.2017, 23:13 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
expsa, - Оформите формулу тегами (в режиме правки поста выделите формулу и нажмите кнопку fx, пояснялка здесь)


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

Автор - _Boroda_
Дата добавления - 17.11.2017 в 23:13
expsa Дата: Понедельник, 20.11.2017, 08:38 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Нужен макрос реализующий формулу:
Код
=ЕСЛИ(СЧЁТЕСЛИМН($B$2:B2;B2;$U$2:U2;">="&U2*0.99;$U$2:U2;"<="&U2/0.99;$Z$2:Z2;">="&Z2*0.8;$Z$2:Z2;"<="&Z2/0.8)>1;"Дубль";"")
 
Ответить
СообщениеНужен макрос реализующий формулу:
Код
=ЕСЛИ(СЧЁТЕСЛИМН($B$2:B2;B2;$U$2:U2;">="&U2*0.99;$U$2:U2;"<="&U2/0.99;$Z$2:Z2;">="&Z2*0.8;$Z$2:Z2;"<="&Z2/0.8)>1;"Дубль";"")

Автор - expsa
Дата добавления - 20.11.2017 в 08:38
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск записей отвечающих заданным условиям (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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