Страницы: 1
RSS
извлечение повторяющихся значений заданных условием и перенос в новую таблицу
 
Прошу не судить строго, но не получется найти похожий пример на форуме, хочется из списка в столбце Е найти повторяющиеся значения заданное условию и перенести в новую таблицу. Значение указано. Остальные строки функцией ВПР перенесу.
 
Так?
 
Или так :-)
 
Юрий спасибо, а обычной формулой можно? в моем случае вторая таблица будет иметь совершенно иной вид. Если нельзя, то в любом случае спасибо !!!
 
А чем Вас моя UDF не устраивает? Поставьте в 3 - ей строке в столбцы B-F вместо первого совпадения СТРОКА()-2 и протяните фрагмент B3-F3 вниз.  
Удачи!
 
попробую
 
=ВПР1(сводная!$E$13;сводная!$E$17:$E$104;1;1;1)  
что поменять?
 
{quote} наверное так: =ВПР1(сводная!$E$13;сводная!$E$17:$E$104;1;1;СТРОКА()-2){/quote}
 
=ВПР1(сводная!$E$13;сводная!$E$17:$E$104;1;1;СТРОКА()-2)  
разобрался!
 
Если искомое значение находится на др. вкладке например сталь1!E13 а не сводная!$E$13 перестает работать, как быть?
 
Скопировал на новый лист, формула ВПР1 не работает, что не учел при переносе??
 
добавил файл
 
В L3 у выделения в правом нижнем углу есть квадратик. Наводите на него курсор (при этом крестик исхудает), клацаете Левой Кнопкой Мыши и, не отпуская, тяните вниз на нужное Вам количество строк. Как количество искомых значений будет полностью выбрано, формула даст пустоту. Рядом разместил таблицу со ссылкой на другой лист. Посмотрите и действуйте по аналогии.  
Следует учесть, что это формула написана пользователем, при помощи VBA. Поэтому для работы в другом файле, её нужно будет туда перенести. Сама по себе она не заработает.  
Чтобы понять как работает формула, встаньте в ячейку В3 и вверху, где строка заполнения ячейки, нажмите нажмите f(x). Думаю, что сможете разобраться самостоятельно.  
Большую помощь в написании формулы мне оказали участники этого форума, за что всем СПАСИБО!
 
Как интегрировать надстройку???
 
Зря Вы, iba2004 используете Integer:  
 
   Dim i As Integer  
   Dim iCount As Integer  
 
Если будет анализироваться больше половины листа даже в 2003 - будет ошибка!  
Ну и я бы для совместимости не использовал кириллицу в аргументах. Не будет работать на нерусских локалях.
 
2 Hugo  
Спасибо, за помощь. Подскажите, а как лучше объявить переменные для этого случая, я в этом не силён.    
Выкладываю файл, где в аргументах функции есть описание, как на русском, так и на английском.  
2 on  
Я могу не совсем верно Вам истолковать, но моё видение такое: необходимо функцию скопировать в PersonalBook, тогда она будет работать с любым файлом, открываемым с данного компьютера. Парни, если я неправ, пжл, поправте меня.  
Спасибо!
 
iba2004 Формула не работает динамически, при изменении таблицы 1, не изменяется таблица 2
 
2 on  
В моём примере закреплён диапазон поиска в таблице $E$17:$E$104 при помощи $. Поставьте вместо 104, например, 10000 и функция будет лопатить Вам поиск по 10000-ную строку.
 
Переменные, значение которых может превысить предел Integer, не стоит объявлять Integer :)  
Объявляйте Long.  
Кроме того, по сведениям Microsoft    
http://msdn.microsoft.com/en-us/library/aa164754(office.10).aspx  
In recent versions, however, VBA converts all integer values to type Long, even if they are declared as type Integer. Therefore, there is no longer a performance advantage to using Integer variables; in fact, Long variables might be slightly faster because VBA does not have to convert them.  
 
Ну а с глюком кириллицы в UDF я столкнулся на работе. Кроме аргументов, и само имя функции должно быть латиницей :)  
 
Про personal.xls - если код там, то на листе нужно будет писать примерно так:  
=PERSONAL.XLS!Get_HTML_Format(A1)  
Если в надстройке (или в этом файле), то имя файла указывать не нужно.
 
2 Hugo  
Спасибо Вам за уделенное время и подробное объяснение. На практике не приходилось сталкиваться с подобным, но Вы меня избавили от необходимости искать ошибку, если чё случись. :о)))  
Ещё раз спасибо!!!  
 
 
2 on  
Или в $E$17:$E$104 уберите закрепление нижнего диапазоа: $E$17:E110. Тогда при добавлении в первоначальный массив строк в дипазон с 1 по 110 включительно, нижнее значение будет "сползать" автоматически на количество добавленных строк.  
 
Парни, простите, но работа. Если что, вечером забегу.  
Удачи!!!
Страницы: 1
Читают тему
Наверх