Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Выбор наиболее точного совпадения при поиске из нескольких
 
На малых объемах прекрасно работает решение. Спасибо за варианты, МатросНаЗебре.
НО, при использовании варианта 3 на списке из 900 строк и 813 ключей затраченное время составило 27 минут, что, конечно, совсем уже много.( обновление экрана было выключено)

Заменил внутренний цикл поиска по списку, операцией .FIND, время прогона того же объема уменьшилось до 9.5 минут, но хотелось бы еще быстрее.

Может подскажет кто варианты?
Код
With activeworkbook.activesheet.ListObjects("Таблица24").ListColumns(2).DataBodyRange
          Set c = .Find(vKey, LookIn:=xlValues)
          If Not c Is Nothing Then
            firstResult = c.Address
            Do
                If vKey <> "" Then
                    If Left(c, Len(vKey)) = vKey Then
                        curLen = Len(c) - Len(vKey)
                        arr(y, 2) = curLen
                        arr(y, 1) = c
                        y = y + 1
                    End If
                End If
                Set c = .Find(vKey, After:=c, LookIn:=xlValues)
                If c Is Nothing Then Exit Do
                Loop While c.Address <> firstResult
          End If
        End With
Выбор наиболее точного совпадения при поиске из нескольких
 
На малых объемах прекрасно работает решение. Спасибо за варианты, МатросНаЗебре.
НО, при использовании варианта 3 на списке из 900 строк и 813 ключей затраченное время составило 27 минут, что, конечно, совсем уже много.( обновление экрана было выключено)
Хотелось бы как то ускорить процесс.
Может имеет смысл заменить внутренний цикл функцией FIND, или же она не быстрее перебора массива?
Выбор наиболее точного совпадения при поиске из нескольких
 
Добрый день.
Для поиска совпадений из списка использую функцию ПРОСМОТР, однако столкнулся с рядом ее минусов ( основной в том, что берет первое значение с конца списка)
Сам список значений сортировать нет возможности, поэтому нужно как то заменить или модернизировать данный способ поиска.

Нужна ваша помощь в поиске решения для наиболее приемлемого поиска по ключу в списке.

Приложил файл пример, в котором показаны три варианта как хотелось бы видеть результаты поиска, а так же пример использования функции ПРОСМОТР, которая не дает верных результатов

Идеальная логика поиска для меня:

Сначала проверить полное совпадение ключа в списке,
если да, то вывести совпадение

если нет, то проверить находится ли ключ в начале текста для поиска,
если да, то выводить наиболее близкое значение(меньшее по остаточным символам) и (если возможно) выписывать все остальные совпадения в строку по возрастанию символов
если нет, то выводить совпадения по наименьшему числу символов до и после ключа

Ключей может быть >1000
Список может быть >10000

По этому хотелось бы использовать минимальное количество циклов или, быть может, все куда проще, просто я об этом не знаю

Решение приемлемо на вба или формулой

Заранее спасибо откликнувшимся!
Многоуровневая группировка строк с условием между найденными значениями
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
либо массива
Очень плохо понимаю массивы по этому с ними трудности

Пробовал сравнивать построчно значения с "сборка" и присваивать номер строки, но при следующем найденном значении предыдущее затирается и хотелось бы как то эти диапазоны именовать и работать дальше с ними, но опять же, не хватает познаний
Изменено: Tech-01 - 30.11.2020 15:29:32
Многоуровневая группировка строк с условием между найденными значениями
 
Здравствуйте.
Ломаю голову над проблемой, мне необходимо сделать многоуровневую автоматическую группировку между найденными значениями,  так же чтобы можно было работать с найденными диапазонами.

Пробовал через метод .find, работает, но только с одним уровнем. Если искать внутри одного уровня другие значения, то код ведет себя неадекватно и зацикливается.
Хотел через массивы, но не дошло до меня как именно сделать.
Уровней группировки может быть любое до 10.
Группировка происходит по столбцу ключ по принципу
1 уровень: от "сборка" до "сборка" или до" Конец сборка" или до "отд деталь" или до конца таблицы
2 уровень: от "подсборка" до "подсборка" или до "конец подсборка" или до "конец подсборка N уровень" или до "сборка" или до "отд деталь" или до конца выше уровня
3 уровень от "подсборка 2 уровня" до по аналогии с предыдущим

Подскажите, пожалуйста, пути решения.
Вот этим кодом смог 1 уровень сделать, дальше - глухо.

Код
Sub сделатьсборки()
    'On Error Resume Next
    Set spec = ActiveWorkbook.Sheets("Заказ").ListObjects("Спец")
    firstrowtb = spec.HeaderRowRange.Row
    lastrowtb = spec.HeaderRowRange.Row + spec.DataBodyRange.Rows.Count
    'ActiveWorkbook.Sheets("Заказ").Rows("16:" & lastrowtb).Ungroup
    With spec.DataBodyRange.Columns("G")
        Set s = .Find("Сборка", lookat:=xlWhole)
        If Not s Is Nothing Then
            firstsborka = s.Row
            Do
                sborka1 = s.Row
                Set s = .FindNext(s)
                sborka2 = s.Row
                If sborka2 = firstsborka Then sborka2 = lastrowtb + 1
                ActiveWorkbook.Sheets("Заказ").Rows(sborka1 + 1 & ":" & sborka2 - 1).Group
            Loop While s.Row <> firstsborka
        End If
    End With
End Sub


Изменено: Tech-01 - 30.11.2020 15:20:23
Power Query выделяет скрытый лист и "ломает" текущий.
 
Я тоже не могу повторить на своей машине, но на другой, где вылезает подобное, оно вылезает если создавать запросы с нуля, пробовал и с фоновым обновлением и без фонового обновления, и в ручную обновлять и по таймеру. Я думаю выход если не выводить таблицу из другого файла на лист, а просто хранить в моделе, но тогда будет проблема при открытии файла вне локальной сети.

Самое главное, я не могу понять логику происходящего и как мне избежать этого.
Изменено: Tech-01 - 15.09.2020 11:07:09
Power Query выделяет скрытый лист и "ломает" текущий.
 
Эксель 2019, на всех машинах одной версии, на моей машине все работает исправно, на других возникает вот такая проблема.
Power Query выделяет скрытый лист и "ломает" текущий.
 
Добрый день.
Постараюсь описать проблему без примера, потому что все хорошо работает на моем пк, но не работает на других.
Существует запрос который подтягивает таблицу из файла ексель, расположенном на сервере и помещает ее в текущий файл на отдельный лист, который скрыт.
Обновление этой таблицы происходит при открытии файла и получается так, что происходит выделение этого диапазона, и, поскольку лист скрыт, выделяется область поверх текущего листа, что нарушает отображение данных на текущем листе.
После завершения обновления, для того чтобы восстановить функционал книги, требуется переключиться между листами и войти внутрь любой ячейки.

Может кто то подсказать путь решения проблемы? Или, хотя бы, как правильно обозначить подобную ошибку, чтобы продолжить поиск решения.
Не сохраняет закрепление областей при закрытии файла.
 
Попробуйте сохранить книгу в другом формате
Поиск позиции из таблицы Excel в таблице Word и добавить текст к этой позиции
 
Добрый день.
Есть такая проблема: Есть исходный список деталей с определенными примечаниями . Отчет генерируется из другой программы, названия совпадают, но не совпадает сортировка,  нельзя дописать примечание автоматически. Необходимо, чтобы примечание подставлялось в ячейку с названием детали.

Списки могут отличаться , может не совпадать количество наименований, но само наименование совпадает всегда.
Как это сделать, ума не приложу.
Подскажите путь решения, спасибо.
Поиск текста одной ячейки в другом столбце исключая определенные совпадения
 
цитата - не бездумная копия [МОДЕРАТОР]

Смотрите, поясню на более конкретном примере. Имеется 2 кода изделия "42.259" и "42.259-01" это 2 разных изделия, они указаны в номенклатуре эксель, мне нужно сопоставить их с фалами чертежей "1_АДЛР.000442.259_2.dxf" и "5_АДЛР.000442.259-01 08.dxf". Таких позиций в номенклатуре может быть тысячи, а файлов может быть еще больше.
Поиск текста одной ячейки в другом столбце исключая определенные совпадения
 
Дело в том, что список - это список файлов в папке, который не упорядочен и начало названия может быть абсолютно любым, т.е. отсортировать как требуется не выйдет. В этом и проблема. Я понимаю что функция просмотр ищет снизу, и не понимаю что использовать вместо нее или как оптимизировать процесс. В моем понимании желательно сначала отобрать список похожих значений а из них уже выбрать необходимое, при этом желательно не использовать доп столбы и что то подобное.
Поиск текста одной ячейки в другом столбце исключая определенные совпадения
 
hell_la,
Верный ответ когда в 3 столбец выводится наименование с верным телом и окончанием
Пр. в первом столбце "123123", в третьем должно выводиться "1111-123123 дарага", а не "123123-01".
Поиск текста одной ячейки в другом столбце исключая определенные совпадения
 
Добрые день.
Подскажите, пожалуйста, путь решения данной проблемы.
Имеем 2 столбца:
1 столбец - часть наименования
2 столбец - полное наименование.
Сортировка в этих столбцах различается.
В 3 столбец выводим совпадения из 1 столбца во втором, для этого использую функцию просмотр.
Проблема заключается в следующем: при нахождении наименований в первом столбце с одинаковым телом (Пр. 123123) и разным окончанием ( в первом случае без него во втором "-01") получаем непредсказуемый результат в 3 столбец ( чаще всего выводится одинаковое значение "123123-01", однако иногда отрабатывает верно).
Таких значений может быть тысячи и проверять вручную подобные несовпадения очень сложно, но как решить проблему не понимаю.

Заранее спасибо.
Динамически изменяемый размер таблицы с выделением ее границ
 
turbidgirl, Спасибо, немного разобравшись удалось применить подобную таблицу к моей проблеме.
Сначала столкнулся с необходимостью, чтобы значения цены за кг в основной таблице отчета менялись в зависимости от  изменения вручную значений во вспомогательной таблице  используемого металла, PQ в данном случае показалась мне не удобной( возможно просто не разобрался). Пришлось использовать индекс+поискпоз. Однако заголовки в умной таблице имеют форматирование как текст, даже если они численные(не смог это победить), пришлось транспонировать таблицу, а это уже не очень удобно визуально. В такой связке все кое как да заработало.
Спасибо за помощь.
Динамически изменяемый размер таблицы с выделением ее границ
 
Добрый день.
Подскажите, пожалуйста, как решить данную проблему:
При заполнении списка деталей у меня должна справа от списка отображаться таблица с используемым материалом, толщинами и ценами по ним, из этой таблицы берется цена металла и рассчитывается цена детали. Эту задачу криво косо получилось сделать, однако хотелось бы чтобы она занимала всегда только используемую область и выделялась границами (сейчас таблица полностью в формулах). Так же, если это возможно, хотелось бы, чтобы цена в таблице была не в виде формулы, а в виде числа.
Если это получится сделать, то еще диапазон в функции ВПР в столбце H тоже должен соответствовать размеру таблицы.
[ Закрыто] VBA ошибки
 
Добрый день.
есть у меня файл-пример, который раскрывает некий функционал программы, однако не могу его испытать, сыпет ошибки на каждую кнопку.
В VBA не силен, помогите заставить работать.
Ошибки:
При нажатии "Load ORD in AUTONEST" ошибка 449 Argument not optional.
При нажатии "Material List" ошибка 429 ActiveX component can't create object.

Заранее спасибо.
Группировка с заданным форматированием
 
Добрый день.
Не нашел подобной темы.
Одна из задач состоит в том, чтобы реализовать удобное отображение спецификации с дальнейшей работой с ней.
Заказчики присылают всегда разную информацию, сборки не всегда присутствуют в спецификации.
Хотелось бы чтобы при написании в столбце B слово "сборка" строка выделялась желтым цветом, затем задаваемое количество строк группировалась в эту "сборку", эти строки должны иметь отдельную нумерацию, к ячейкам в столбце F должна применяться формула G"номер строки"*$F$"номер строки сборки", и далее должна продолжаться общая нумерация.
Проблема еще в том, что на других листах идут ссылки на позиции в спецификации и они не должны ломаться.
Так же нужно чтобы группировка, выделение, нумерация дублировались на других листах не ломая формулы в этих строках.
На листе 2 происходит подсчет общий суммы изделий, и хотелось бы, чтобы общая сумма считалась по сборкам, а сумма входящих в сборку деталей считалась в строке со сборкой.
Как это реализовать и возможно ли это ума не приложу. Жду советов по исполнению.
Спасибо.
Страницы: 1
Наверх