Доброе время суток форумчане и гости форума! Приходит по электронной почте файл с данными (приложил часть файла) на нескольких листах. На листе Данные находятся данные для поиска на других листах через ВПР. Мне нужно все цифры на листе Данные, в диапазоне G2:BY1000 разделить на 4,1 с округлением до целых чисел. Для этого приходится копировать на дополнительно созданный лист всё из диапазона G2:BY1000 и через формат ячейки округлять до целого числа, а затем переносить значение ячейки на лист Данные с заменой в исходных ячейках. Присылаемый файл всегда содержит лист Данные с одинаковым диапазоном. Название файла в зависимости от квартала меняется. Подскажите пожалуйста, как можно упростить этот процесс. Например файлом с макросом находящийся в одном каталоге. Как это сделать формулами я ума не приложу.
Доброе время суток форумчане и гости форума! Приходит по электронной почте файл с данными (приложил часть файла) на нескольких листах. На листе Данные находятся данные для поиска на других листах через ВПР. Мне нужно все цифры на листе Данные, в диапазоне G2:BY1000 разделить на 4,1 с округлением до целых чисел. Для этого приходится копировать на дополнительно созданный лист всё из диапазона G2:BY1000 и через формат ячейки округлять до целого числа, а затем переносить значение ячейки на лист Данные с заменой в исходных ячейках. Присылаемый файл всегда содержит лист Данные с одинаковым диапазоном. Название файла в зависимости от квартала меняется. Подскажите пожалуйста, как можно упростить этот процесс. Например файлом с макросом находящийся в одном каталоге. Как это сделать формулами я ума не приложу.DrMini
Всё Вы правильно поняли. Но хотелось бы изменить данные в этих же ячейках без дополнительных манипуляций с копированием. ПРОШУ ПРОЩЕНИЯ. ОТОСЛАЛ ФАЙЛ С УЖЕ ВТОРЫМ ЛИСТОМ. Лист Данные приходит вот в таком виде. И надо в этих же ячейках поменять данные. Правильный файл прилагаю. [p.s.]Прошу прощения за невнимательность.
Всё Вы правильно поняли. Но хотелось бы изменить данные в этих же ячейках без дополнительных манипуляций с копированием. ПРОШУ ПРОЩЕНИЯ. ОТОСЛАЛ ФАЙЛ С УЖЕ ВТОРЫМ ЛИСТОМ. Лист Данные приходит вот в таком виде. И надо в этих же ячейках поменять данные. Правильный файл прилагаю. [p.s.]Прошу прощения за невнимательность.DrMini
RAN, К сожалению этот вариант не подходит. К листу Данные имеются ещё 4-ре листа с таблицами в которых протянуть формулу не получится. Подсчитываются промежуточные итоги. Самое простое это менять данные только на листе Данные и в эти же ячейки. Так, как в книге создаётся Именной диапазон с листа Данные диапазона G2:BY1000 в «Диспетчере имён». Да и геморройно всё это менять в таблицах.
RAN, К сожалению этот вариант не подходит. К листу Данные имеются ещё 4-ре листа с таблицами в которых протянуть формулу не получится. Подсчитываются промежуточные итоги. Самое простое это менять данные только на листе Данные и в эти же ячейки. Так, как в книге создаётся Именной диапазон с листа Данные диапазона G2:BY1000 в «Диспетчере имён». Да и геморройно всё это менять в таблицах.DrMini
Пишем в любую пустую ячейку 4,1 -- Копировать (Ctrl+C) -- выделяем диапазон с числами -- Специальная вставка -- Разделить -- ОК Дальше можно выставить формат без десятичных знаков и при необходимости в параметрах установить Точность как на экране
Потом число 4,1 можно удалить
Пишем в любую пустую ячейку 4,1 -- Копировать (Ctrl+C) -- выделяем диапазон с числами -- Специальная вставка -- Разделить -- ОК Дальше можно выставить формат без десятичных знаков и при необходимости в параметрах установить Точность как на экране
Прошу прощения за долгое молчание. Уважаемые Андрей и Елена. Спасибо за это решение. Но для меня макрос это, как обезьяне граната. Подскажите, что с ним делать. Моих познаний хватило вставить его в Лист, Книгу, Модуль. результат нулевой. В идеале нужен файл с макросом содержащий кнопку. При нажатии кнопку выбираем нужный файл в котором на листе Данные нужно произвести деление всех ячеек на 4,1 находящихся в диапазоне G2:BY1000
Прошу прощения за долгое молчание. Уважаемые Андрей и Елена. Спасибо за это решение. Но для меня макрос это, как обезьяне граната. Подскажите, что с ним делать. Моих познаний хватило вставить его в Лист, Книгу, Модуль. результат нулевой. В идеале нужен файл с макросом содержащий кнопку. При нажатии кнопку выбираем нужный файл в котором на листе Данные нужно произвести деление всех ячеек на 4,1 находящихся в диапазоне G2:BY1000DrMini
Сообщение отредактировал DrMini - Суббота, 14.03.2020, 07:16
DrMini, почитайте про личную книгу макросов. На мой взгляд, Вам это лучше подойдет, чем "файл с кнопкой". Перенесете нужный макрос в Личную книгу макросов и сможете его использовать в любом файле Excel на Вашем компьютере. А кнопку для этого макроса можно вынести на Панель быстрого доступа
DrMini, почитайте про личную книгу макросов. На мой взгляд, Вам это лучше подойдет, чем "файл с кнопкой". Перенесете нужный макрос в Личную книгу макросов и сможете его использовать в любом файле Excel на Вашем компьютере. А кнопку для этого макроса можно вынести на Панель быстрого доступаPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Сделал через личную книгу макросов. Работает. Но такие вычислительные ресурсы на работе будут недоступны. На моём CPU Intel Core i5 с ОЗУ 16Gb и SSD SAMSUNG 970 EVO Plus MZ-V7S250BW 250Гб, M.2 2280, PCI-E x4, NVMe обрабатывается лист около 15 минут. На работе на это уйдёт весь рабочий день. Использую вариант из Сообщения №6
Сделал через личную книгу макросов. Работает. Но такие вычислительные ресурсы на работе будут недоступны. На моём CPU Intel Core i5 с ОЗУ 16Gb и SSD SAMSUNG 970 EVO Plus MZ-V7S250BW 250Гб, M.2 2280, PCI-E x4, NVMe обрабатывается лист около 15 минут. На работе на это уйдёт весь рабочий день. Использую вариант из Сообщения №6DrMini
Сообщение отредактировал DrMini - Суббота, 14.03.2020, 09:06
Sub hhh() Dim arr, i&, j& arr = Range("G2:BY1000").Value For i = 1 To UBound(arr) For j = 1 To UBound(arr, 2) arr(i, j) = Application.Round(arr(i, j) / 4.1, 0) Next j Next i Range("G2").Resize(UBound(arr), UBound(arr, 2)) = arr End Sub
[/vba]
Можно попробовать ускорить [vba]
Код
Sub hhh() Dim arr, i&, j& arr = Range("G2:BY1000").Value For i = 1 To UBound(arr) For j = 1 To UBound(arr, 2) arr(i, j) = Application.Round(arr(i, j) / 4.1, 0) Next j Next i Range("G2").Resize(UBound(arr), UBound(arr, 2)) = arr End Sub
Афигеть. СПАСИБО БОЛЬШОЕ! Просто пулемёт. Только намного быстрее. RAN, а может сделаете файлик, как я просил в Сообщении №11 ?
Цитата
В идеале нужен файл с макросом содержащий кнопку. При нажатии на кнопку выбираем нужный файл в котором на листе Данные нужно произвести деление всех ячеек на 4,1 находящихся в диапазоне G2:BY1000
Афигеть. СПАСИБО БОЛЬШОЕ! Просто пулемёт. Только намного быстрее. RAN, а может сделаете файлик, как я просил в Сообщении №11 ?
Цитата
В идеале нужен файл с макросом содержащий кнопку. При нажатии на кнопку выбираем нужный файл в котором на листе Данные нужно произвести деление всех ячеек на 4,1 находящихся в диапазоне G2:BY1000
А смысл? Кидаете любой из макросов в Personal, открываете нужный файл, нужный лист, выполняете. Оба макроса работают с активным листом. Или вы думаете, что через диалог Excel файл открыть проще, чем через проводник?
А смысл? Кидаете любой из макросов в Personal, открываете нужный файл, нужный лист, выполняете. Оба макроса работают с активным листом. Или вы думаете, что через диалог Excel файл открыть проще, чем через проводник?RAN
Сам я всё это делаю без проблем. Открываю файл. Нажимаю Alt+F8, выбираю макрос и вуаля. Час назад пытался всё это объяснить нашей работнице... После 20 минутных объяснений, как добавить макрос в личную книгу макросов сошлись на том, что она будет высылать мне этот файл по почте и я, как и прежде буду ей его править. Вот и весь смысл. А с вариантом выбора файла через кнопку у неё всё получается. Что-то подобное они делают.
Сам я всё это делаю без проблем. Открываю файл. Нажимаю Alt+F8, выбираю макрос и вуаля. Час назад пытался всё это объяснить нашей работнице... После 20 минутных объяснений, как добавить макрос в личную книгу макросов сошлись на том, что она будет высылать мне этот файл по почте и я, как и прежде буду ей его править. Вот и весь смысл. А с вариантом выбора файла через кнопку у неё всё получается. Что-то подобное они делают.DrMini