Как получить ячейку формулы из листа и изменить переменную этой формулы всего за один раз? - PullRequest
0 голосов
/ 04 декабря 2011

У меня есть лист, который выполняет тяжелые вычисления с суммами, фактами и пользовательскими функциями, в результате чего получается одна ячейка. Представьте себе простую серию сумм:

  | A   |
---------
1 | 39  | → This is my variable, everything else is fixed
2 | 800 | 
3 | 200 | 
4 | =Sum(A1:A3) |

На другом листе я хотел бы получить значение результата формулы в ячейке Sheet1 A3, однако я хотел бы поменять изменения для одной переменной этого листа, Sheet1 A1 для этой цели

  |              A               |    B    |
--------------------------------------------
1 | =X(Sheet1.A4, B1, Sheet1.A1) |  40     |
2 | =X(Sheet1.A4, B1, Sheet1.A1) |  50     |
3 | =X(Sheet1.A4, B1, Sheet1.A1) |  100    |
4 | =X(Sheet1.A4, B1, Sheet1.A1) |  200    |
5 | =X(Sheet1.A4, B1, Sheet1.A1) |  1000   |

Это приведет к:

  |   A  |  B    |
------------------
1 | 1041 |  40   |
2 | 1051 |  50   |
3 | 1100 |  100  |
4 | 1200 |  200  |
5 | 2000 |  1000 |

Так что мой вопрос, функция X существует? как я могу заставить это работать таким образом? Я хочу получить результат формулы в ячейке Sheet1.A3, однако я также хочу в этом случае изменить значение ячейки A1, чтобы получить другой результат.

Буду признателен за любую подсказку.

1 Ответ

0 голосов
/ 04 декабря 2011

Я бы сделал это, имея другой лист (или другой диапазон данных на том же листе), содержащий возможные значения для A1, который вы хотите проверить, а затем написал бы небольшой макрос VB, который будет:

  1. Заменить Sheet1: A1 на каждое из этих значений по очереди
  2. Пересчитать лист1
  3. Скопируйте нужные значения (A1 и A3) в соответствующие ячейки на листе 2.
...