Добрый вечер. Подскажите каким образом можно решить данную задачу - нужно вывести результат на другой лист из определенного диапазона на листе с расчетами в виде значений, т.к. на листе с расчетами куча формул(кстати которые очень сильно нагружают сам файл по скорости, может и тут кто сможет более альтернативный способ подсказать) так же если отфильтровать на листе с расчетами, то и вывод результата должен быть тоже отфильтрован Ссылку кидаю, больше 300кб файл https://disk.yandex.ru/d/g95nD4fpA8zK4A
А они вообще правильно у Вас считают? Где Вы увидели такой синтаксис для Диапазона в формуле ПОИСКПОЗ()? =ЕСЛИОШИБКА(ИНДЕКС('История остатков ВБ'!Q:Q;ПОИСКПОЗ(Расчет!F4&K1;'История остатков ВБ'!A:A&'История остатков ВБ'!H:H;0));0) И вот тут Расчет!F4&K1 ссылка на K1 наверняка должна быть абсолютной ($K$1) а не относительной На листе 'История остатков ВБ' сделайте столбец со сцепкой столбцов 'A' и 'H', например столбец 'AD' Тогда формула для столбца 'Заказы' листа 'Расчет' будет такая
и для ошибочных значений я бы использовал что нибудь отличное от 0, т.к. нулевые значения у Вас тоже могут быть Для следующих столбцов по аналогии Тормоза исчезнут. Ну и способы по ссылке выше попробуйте
Согласие есть продукт при полном непротивлении сторон
pvdmt написал: вывести результат на другой лист из определенного диапазона на листе с расчетами в виде значений
Скопируйте на лист 'Результат' шапку таблицы. В модуль листа 'Результат' добавьте такой код
Скрытый текст
Код
Private Sub Worksheet_Activate()
On Error Resume Next
Application.ScreenUpdating = False
Dim iRng As Range
Dim lRow&
With Worksheets("Расчет")
Set iRng = .Range("K3:P" & .Cells(.Rows.Count, "K").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
End With
With Me
lRow = .Cells(.Rows.Count, "A").End(xlUp).Row
lRow = IIf(lRow < 2, 2, lRow)
.Range("A2:F" & lRow).ClearContents
If Worksheets("Расчет").AutoFilter.FilterMode Then
iRng.Copy .Range("A2")
Else
iRng.Copy
.Range("A2").PasteSpecial (xlPasteValues)
End If
.Range("A1").Select
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
При активации листа 'Результат' на нем будут обновляться данные в соответствии с Расчетом. Макросы должны быть разрешены. Файл сохранить с поддержкой макрсов
Согласие есть продукт при полном непротивлении сторон
Sanja написал: Где Вы увидели такой синтаксис для Диапазона в формуле ПОИСКПОЗ()
А что с ним не так? Это допускается в формулах массива. Другой вопрос, что указание целиком столбцов в таких случаях очень нежелательно, т.к. расчет будет идти долго. А в остальном согласен - при больших объемах куда правильнее делать отдельно сцепку и искать простой формулой по одному столбцу, а не по сцепке нескольких.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...