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

Вход

Регистрация

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

 

= Мир MS Excel/Динамически измененить формулу. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Динамически измененить формулу.
Дмитрий1962 Дата: Вторник, 05.05.2015, 09:32 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Уважаемые Мастера EXCEL Здравствуйте!
Тема вопроса больше звучит - "Голь на выдумки хитра", или что то в этом роде.
Понимаю, позвоночником чувствую, что решение наверняка просто смешное. Но самостоятельно его не нахожу.
Суть вопроса. Имеется огромная куча файлов в сетевых папках. Все файлы родные братья, созданы по одному шаблону, одинаковы между собой по назначению, структуре, форматам и т.д. Имена файлов известны заранее, еще до их возникновения. Данные из файлов необходимо собрать формулами в одну таблицу, обязательно формулами, так как в файлах возможны изменения. Вот и возникла необходимость выдумывать разные способы, каким образом все это исполнить малой кровью. Решение есть (хотя наверное больше предложение, слегка корявое, требует доработки), но вполне имеет право на жизнь и прекрасно справляется с поставленной задачей.
В примере (Заказ 748. Свод) все упростил для облегчения файлов. ВПР-ом снимаю данные из одного файла для одной Марки П4-3 (строка 10). (В примере описываю ячейки C10;С14 (выделены желтым цветом).
Появляется формула, например такая
Код
=ВПР(C$8;'E:\748\[П4-3.xlsx]Лист1'!$A$5:$C$18;3;0)
Режу ее на части, см. ячейки C3, G3. Функцией "СЦЕПИТЬ" собираю текстовую строку (будущую формулу) =/1 обрезок формулы/имя файла/2 обрезок формулы, получилось
Код
=СЦЕПИТЬ("=";$C$3;$B11;$G$3)
Копирую, вставляю скопированное в эту же ячейку "как текст, т.е. значения". Получается текстовая строка –
Код
=ВПР(C$8;'E:\748\[П4-4.xlsx]Лист1'!$A$5:$C$18;3;0)
Что и требовалось. Соответственно перед копированием растягиваю формулу по столбцу. Получилось что то похожее на способ динамически изменять формулу.
Вот тут и есть мой вопрос. Для того, чтоб текстовая строка стала формулой, необходимо войти в содержащую ее ячейку для редактирования, т.е. клацнуть мышкой и тут же надавить на ENTER. Формула готова. Сразу просится на запись макро рекордер, кажется дел-то. Пробежаться по столбцу. Клацнуть мышкой, надавить на ENTER в десятке ячеек. Не тут то было. Клик мышкой в паре с ENTER-ом затирают все что есть в ячейке, и заново прописывают. Макро рекордер записывает тот текст, который в ячейках был и при следующем запуске прописывает одни и те же формулы.
Почему? Как с этим бороться? Или как это использовать? Кто с такой проблемой сталкивался?
Необходимо снять данные для невероятного количества строк.
К сообщению приложен файл: _748-.zip (48.9 Kb)


Сообщение отредактировал Serge_007 - Вторник, 05.05.2015, 09:38
 
Ответить
СообщениеУважаемые Мастера EXCEL Здравствуйте!
Тема вопроса больше звучит - "Голь на выдумки хитра", или что то в этом роде.
Понимаю, позвоночником чувствую, что решение наверняка просто смешное. Но самостоятельно его не нахожу.
Суть вопроса. Имеется огромная куча файлов в сетевых папках. Все файлы родные братья, созданы по одному шаблону, одинаковы между собой по назначению, структуре, форматам и т.д. Имена файлов известны заранее, еще до их возникновения. Данные из файлов необходимо собрать формулами в одну таблицу, обязательно формулами, так как в файлах возможны изменения. Вот и возникла необходимость выдумывать разные способы, каким образом все это исполнить малой кровью. Решение есть (хотя наверное больше предложение, слегка корявое, требует доработки), но вполне имеет право на жизнь и прекрасно справляется с поставленной задачей.
В примере (Заказ 748. Свод) все упростил для облегчения файлов. ВПР-ом снимаю данные из одного файла для одной Марки П4-3 (строка 10). (В примере описываю ячейки C10;С14 (выделены желтым цветом).
Появляется формула, например такая
Код
=ВПР(C$8;'E:\748\[П4-3.xlsx]Лист1'!$A$5:$C$18;3;0)
Режу ее на части, см. ячейки C3, G3. Функцией "СЦЕПИТЬ" собираю текстовую строку (будущую формулу) =/1 обрезок формулы/имя файла/2 обрезок формулы, получилось
Код
=СЦЕПИТЬ("=";$C$3;$B11;$G$3)
Копирую, вставляю скопированное в эту же ячейку "как текст, т.е. значения". Получается текстовая строка –
Код
=ВПР(C$8;'E:\748\[П4-4.xlsx]Лист1'!$A$5:$C$18;3;0)
Что и требовалось. Соответственно перед копированием растягиваю формулу по столбцу. Получилось что то похожее на способ динамически изменять формулу.
Вот тут и есть мой вопрос. Для того, чтоб текстовая строка стала формулой, необходимо войти в содержащую ее ячейку для редактирования, т.е. клацнуть мышкой и тут же надавить на ENTER. Формула готова. Сразу просится на запись макро рекордер, кажется дел-то. Пробежаться по столбцу. Клацнуть мышкой, надавить на ENTER в десятке ячеек. Не тут то было. Клик мышкой в паре с ENTER-ом затирают все что есть в ячейке, и заново прописывают. Макро рекордер записывает тот текст, который в ячейках был и при следующем запуске прописывает одни и те же формулы.
Почему? Как с этим бороться? Или как это использовать? Кто с такой проблемой сталкивался?
Необходимо снять данные для невероятного количества строк.

Автор - Дмитрий1962
Дата добавления - 05.05.2015 в 09:32
Nic70y Дата: Вторник, 05.05.2015, 09:41 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9133
Репутация: 2416 ±
Замечаний: 0% ±

Excel 2010
Цитата Дмитрий1962, 05.05.2015 в 09:32, в сообщении № 1
необходимо войти в содержащую ее ячейку для редактирования, т.е. клацнуть
вместо этого
Ctrl + h
найти = (равно)
заменить на =
[p.s.]формулы и файл не смотрел[/p.s.]


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Вторник, 05.05.2015, 09:42
 
Ответить
Сообщение
Цитата Дмитрий1962, 05.05.2015 в 09:32, в сообщении № 1
необходимо войти в содержащую ее ячейку для редактирования, т.е. клацнуть
вместо этого
Ctrl + h
найти = (равно)
заменить на =
[p.s.]формулы и файл не смотрел[/p.s.]

Автор - Nic70y
Дата добавления - 05.05.2015 в 09:41
Дмитрий1962 Дата: Вторник, 05.05.2015, 10:01 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Nic70y, Спасибо, действительно сработало!
Тем не менее вопрос углубляется. Чем (=) отличается от (=)? Не понимаю разницы.
Все равно еще раз Спасибо. В любом случае, это не тыкать мышкой бесконечно. Действительно, век живи, век учись.
 
Ответить
СообщениеNic70y, Спасибо, действительно сработало!
Тем не менее вопрос углубляется. Чем (=) отличается от (=)? Не понимаю разницы.
Все равно еще раз Спасибо. В любом случае, это не тыкать мышкой бесконечно. Действительно, век живи, век учись.

Автор - Дмитрий1962
Дата добавления - 05.05.2015 в 10:01
Дмитрий1962 Дата: Вторник, 05.05.2015, 10:51 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Nic70y. Спасибо еще раз!!!
Проверил на практике.
Из 214 файлов, в общей сложности из 2996-и ячеек снял данные за четыре с небольшим минуты. С учетом времени на манипуляции с формулой.
Вопрос закрыт!
 
Ответить
СообщениеNic70y. Спасибо еще раз!!!
Проверил на практике.
Из 214 файлов, в общей сложности из 2996-и ячеек снял данные за четыре с небольшим минуты. С учетом времени на манипуляции с формулой.
Вопрос закрыт!

Автор - Дмитрий1962
Дата добавления - 05.05.2015 в 10:51
ivanovigor Дата: Вторник, 05.05.2015, 19:01 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Тоже была проблема, помогло! Спасибо!
 
Ответить
СообщениеТоже была проблема, помогло! Спасибо!

Автор - ivanovigor
Дата добавления - 05.05.2015 в 19:01
  • Страница 1 из 1
  • 1
Поиск:

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