У меня есть электронная таблица Excel, которая имеет сложные вычисления, которые нетрудно превратить в макрос или формулу из одной ячейки. Электронная таблица имеет около 10 различных входных данных (значения, которые вводит человек в разные ячейки электронной таблицы), а затем выводит 5 независимых вычислений (в 5 различных ячейках) на основе этого входного сигнала. Для их расчета используются некоторые предварительно введенные данные в электронной таблице (около 100 различных констант) и выполняется их поиск.
Я хотел бы использовать всю эту электронную таблицу в качестве формулы для другой электронной таблицы, чтобы вычислить набор входных значений и создать соответствующий набор выходных значений. Представьте себе, что вы создаете другую таблицу с 10 столбцами для входных переменных и 5 столбцами для выходных данных, затем копируете каждый входной файл в другую электронную таблицу и копируете выходные данные в таблицу результатов.
Например:
- A1, A2, A3, ... A10 - это ячейки, в которые кто-то вводит значения
- через ряд расчетов B1, B2, B3, B4 и B5 обновляются с некоторыми формулами
Могу ли я использовать всю серию вычислений от A1 ... A10 до B1 ... B5 без создания одной огромной формулы или макроса VBA?
Я хочу иметь набор входных значений в 100 строк от A100, B100, C100, ... J100 и далее, затем сделаю магию Excel, которая будет:
- Скопируйте значения из A100 ... J100 в A1 в A10
- Подождите, пока результат появится в B1 до B5
- Скопируйте значения из B1 в B5 в K100 до O100
- Повторите шаги с 1 по 3 для всех рядов от 100 до 150
источник
Ответы:
Вы можете сделать это с помощью анализа «что, если» в Excel. Я не достаточно знаком с этим, чтобы сказать. Вы можете сделать это с помощью относительно простого макроса.
В основе макрос будет работать так:
Существует два способа перенести данные в строках в вашей книге результатов в книгу формул в столбцах. Одним из способов является копирование и вставка с использованием Transpose для преобразования строки в столбец, а другой - использование смещений, когда для одного диапазона вы смещаете столбец, а для другого диапазона вы смещаете строку.
Пример последнего заключается в следующем.
Если вам нужна конкретная помощь по написанию макроса VBA, сообщите нам.
источник
Я все еще думаю, что ваш вопрос слишком расплывчатый. Трудно ответить без четкого примера. На вашем месте я бы попытался найти эксперта, который сделает всю работу за вас. Кто-то с большим опытом может превратить все это в макрос.
Я попытаюсь дать ответ, основываясь на том, что, как мне кажется, я понял.
В общих чертах, я думаю, вам просто нужно, чтобы формулы в рабочей книге 2 имели доступ к значениям в рабочей книге 1 и наоборот. Связывание рабочих книг представляется наиболее очевидным решением. На веб-сайте Microsoft есть несколько уроков, которые показывают вам, как это сделать ( http://office.microsoft.com/en-us/excel-help/create-and-manage-links-to-other-workbooks-HA001054812.aspx , http://office.microsoft.com/en-us/excel-help/create-a-link-to-another-cell-workbook-or-program-HP005199514.aspx ).
Если вы считаете, что мой ответ слишком неправильный, опубликуйте пример, снимок экрана или видео, которые показывают, чего вы пытаетесь достичь.
источник
Я согласен, вопрос немного расплывчат и имеет 4 шага в процессе. Какой шаг самый трудный? Можете ли вы сделать пример меньше и сосредоточиться только на той части, которой вы не можете управлять?
1. Скопируйте значения от A100 ... J100 в A1 до A10
Диапазоны не одного размера, что вы подразумеваете под копией? Если вам нужно определенное значение в A1, тогда вы просто положите = A100 в ячейку A1. Вам не нужно «копировать» на самом деле, просто «ссылаться».
2. Подождите, пока результат появится в B1 до B5
Вы не должны действительно ждать этого, но хорошо, я думаю, что это делает некоторые сложные фоновые вещи. Я думаю, у вас есть эта часть выяснили.
3. Скопируйте значения от B1 до B5 в K100 до O100. Опять же, если вам нужно значение в K100, тогда вы помещаете = B1 в ячейку K100, и она будет «копировать» его (см. Его)
4. Повторите шаги с 1 по 3 для всех строк от 100 до 150. Когда вы настроите строку 100, у вас будет форумла в каждой ячейке. Теперь, когда вы выберете ячейку, в правом нижнем углу появится маленькая черная «ручка». Нажмите и перетащите его вниз. Формулы изменятся автоматически для ссылки на ячейки либо абсолютным, либо относительным образом. Например, если у вас есть какие-то данные в ячейке A1, и вы хотите, чтобы все ячейки от A100 до A150 «увидели» их, вы можете поместить в ячейку A100: = $ A $ 1, тогда ячейка A101 также будет смотреть на A1 и так далее. Таким образом, знак $ делает его абсолютной ссылкой.
источник
Я знаю, что уже поздно, и я надеюсь, что вы преуспели в своих усилиях.
Я создал несколько таких таблиц. Некоторые включали до 14 справочных таблиц и несколько десятков промежуточных вычислений и интерполяций; все, чтобы произвести единую таблицу чисел. Это было основано на нескольких пользовательских вводах, начиная от действительных чисел и заканчивая выпадающими списками с большим количеством проверок данных. Я использовал различные поиски, запросы index () / match (). И я не использовал никаких языков сценариев, так как мне не особенно нужны постоянные предупреждения, связанные с электронными таблицами с поддержкой макросов. Я создал несколько листов для промежуточных расчетов и поисков, все они были защищены паролями, и большинство из них были скрыты. Был лист ввода данных с незащищенными ячейками и лист результатов.
Первоначально я надеялся передать это кому-то, и он проведет пользователя через необходимые шаги. Оказывается, это было слишком сложно и требовало определенных знаний по определенным темам.
В конце концов, я считаю, что инвестировал более 120 часов и использовал это как инструмент только для себя. Чтобы сделать это, я добавил еще один лист с пустым «шаблоном», отформатированным для копирования и вставки в документ MS Word. Это работает хорошо в течение ряда лет. Когда некоторые данные в таблицах поиска нуждались в пересмотре, я просто вносил эти изменения, и цифры сразу же отражали эти изменения.
Бест, Даг
источник