У меня есть лист, настроенный таким образом, что я могу ввести значение, выполнить некоторые математические расчеты, чтобы получить набор значений, повторить несколько раз математические операции, сложить все значения и вернуть выходное значение. Это достаточно сложно, так что было бы непрактично копировать и вставлять все ячейки каждый раз, когда я проверяю новый ввод. Было хорошо, когда мне нужно было протестировать 2 или 3 разных параметра, но теперь, когда мне нужно протестировать 50 разных входов и создать график, мне нужна помощь.

Есть ли какой-нибудь способ, которым я могу создать таблицу с 50 входными значениями, каким-то образом ввести их в рабочую таблицу и получить выходные значения, чтобы я мог построить график? Опции, использующие vb-скрипт, могут работать.

РЕДАКТИРОВАТЬ: я включил большинство расчетов, где значение в A2 является входным значением, а значение в D10 является выходным значением. Смотрите изображение ниже

2 ответа2

0

То, как я делал это в прошлом, - это использование vba для ввода всех значений в соответствующие ячейки, пусть excel выполнит вычисления и скопирует результаты, используя что-то вроде макроса ниже. Я поместил изображение тестового листа ниже. Очевидно, что ваш будет более глубоким, и вы, вероятно, разместите таблицу на другом листе, чем ваши расчеты. Формула в G5 была суммой (G2:G4). В столбце D нет формул, в которых хранятся результаты.

Sub get_data()
Dim dataA As Double, dataB As Double, dataC As Double, dataOutput As Double
Dim lastRow As Long, currentRow As Long

With ActiveSheet
    lastRow = .Range("A" & .Rows.Count).End(xlUp).Row

    For currentRow = 2 To lastRow
        'Read in data from table
        dataA = .Range("A" & currentRow).Value
        dataB = .Range("B" & currentRow).Value
        dataC = .Range("C" & currentRow).Value

        'Put data into worksheet
        .Range("G2").Value = dataA
        .Range("G3").Value = dataB
        .Range("G4").Value = dataC

        'You could also avoid the variables by putting it directly into the cell without variable
        '.Range("G2").Value = .Range("A" & currentRow).Value
        'etc

        Calculate

        'store results in variable
        dataOutput = .Range("G5").Value

        'Put results back in table
        .Range("D" & currentRow).Value = dataOutput
    Next
End With

End Sub

0

Вы можете использовать таблицы данных в Excel для этого:

  1. Вы перечисляете свои входные данные в строке или столбце (таким образом, они представляют ось таблицы).
  2. Затем перейдите к «Что-если анализ»> "Таблица данных".
  3. Мастер запросит у вас поля ввода и вывода. Затем он вставляет выходное значение для каждого входа рядом с каждым входом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .