2015-10-09 4 views
-3

У меня есть лист excel, и мне нужно добавить оператор if в одну из моих ячеек. Назовем ячейку D13 как X и ячейку E13 как Y. В принципе, мне нужно сделать, чтобы убедиться, что если X> = 1, то Y = Y + (0,5 * X). Однако я понимаю, что я не могу просто сказать «E13 + 0.5 * D13», поскольку ячейка ссылается на себя, а E13 - значение ячейки, которую мне нужно изменить. Когда я это делаю, я получаю «круговую опорную ошибку». Есть ли способ, которым я могу использовать эту же формулу, чтобы гарантировать, что моя ячейка E13 является значением самого себя плюс D13 * 0,5? Я не хочу помещать другую ячейку и использовать эту формулу, поскольку она избыточна.Ошибка Circular Reference Excel 2013

+1

вы можете заставить excel перебираться, но вы, похоже, имеете правильную циркулярную ссылку, что deos не сходится на число! – Joop

+2

Ну, это круговая ссылка. Чего ты ожидал? Как вы можете это исправить? Вы говорите: «Покажите мне значение плюс плюс пять». Это никогда не сработает. –

+0

Совет. Прежде чем пытаться что-либо кодировать (будь то на языке программирования или в Excel), вам необходимо решить его концептуально. В этом случае это означает, что вам необходимо решить его математически. Как бы вы создали формулу примера, чтобы решить, что вы пытаетесь? –

ответ

1

Это звучит принципиально невозможно, так как Y-клетка не может ОБЕСПЕЧИТЬ номер и формулу, которая ссылается на это число. Сама идея «содержать собственную ценность плюс ...» кажется невозможной сама по себе. Я не вижу никакого способа обойти это, но добавив третью ячейку.

+0

@bumpfox Не бойтесь расширять количество ячеек, которые вы используете в Excel; Его нельзя рассматривать как любой другой язык программирования, поскольку краткость часто невозможна и на самом деле значительно увеличивает сложность. Научитесь отделять вычисления от того, что вы делаете, от отображения того, что вы делаете, и позволить вычислять то, что вы делаете, так же долго, как вам нужно. –

0

Необходимо пересмотреть свою логику обработки. С формулами вы сталкиваетесь с круговыми опорными ошибками, как показывают вышеприведенные комментарии.

Если вы хотите избежать циркулярной ссылки, вам может потребоваться включить VBA для вычисления и записи результата вычисления в ячейку. Это можно сделать с помощью события изменения рабочего листа. Он может контролировать ячейку, активировать, когда ячейка изменилась, использовать входное значение ячейки, выполнить вычисление и записать результат в ту же ячейку.

0

В этом случае я предлагаю вам использовать 3 столбца вместо двух. Во-первых, у вас есть D13 как X, а E13 - Y. Но тогда вам нужно добавить F13 как Y2.

D13 тянет откуда угодно. E13 тянет куда угодно. Формула в F13, чтобы проверить, является ли тянуть исходное значение Y, или новый, например так:

=IF(D13>=1, E13+.5*D13,D13) 

Это говорит: если X> = 1, сделать новое значение Y в F13 равно Y + .5 * X. В противном случае сделайте его равным исходному значению Y.

Затем, где бы вы ни выбрали ссылку E13 (старое значение «Y»), вместо этого ссылайтесь на F13 (что будет тянуть что угодно «Y», значение является подходящим).

Смежные вопросы