Как рассчитать формулу условной ячейки, в которой формула соседней ячейки зависит от вычисленной 1-й ячейки, а не от напечатанного значения? - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь определить формулу Excel, а Google не помогает. У меня почти есть то, что я пытаюсь сделать, но мне нужен «фиктивный» столбец, где я делаю математику в ячейках столбца.

Что это значит:

1) Что у меня работает:

Ячейка A1, с математической формулой (я хочу удалить эту пустую ячейку и включить ее в формулу в ячейке B1, см. Дальнейшее объяснение ниже)

=SUM((6.75*1)+(5.73*2)+3)

Ячейка B1, со значением из Ячейки A1, но с целым числом, меньшим или равным 80

=IF(SUM(A1)>80, 80, SUM(A1))

Ячейка C1 со значением, смотрящим на Ячейку B1 и вводящим в эту ячейку либо 0, либо любое целое число, большее 80

=IF(SUM(A1)>80,SUM(A1)-80,"0")

Примечание: это работает отлично, я изменяю любые значения в формуле ячейки А1, и это правильно отражается в ячейках В1 и С1.

2) Недостающий кусок:

Я хотел бы объединить две вышеупомянутые формулы в ячейках A1 и B1 в одну ячейку, и при этом иметь те же результаты, что описаны выше для каждой из ячеек.

Чтобы сформулировать это по-другому:

  • есть ячейка с математической формулой,
  • вычислите результаты этой формулы, а затем
  • введите обратно в ту же ячейку, в которой сформулированы результаты,
  • с условием «меньше или равно 80»
  • , а формула в соседней ячейке зависит от вычисленного, но не распечатанного значения первой ячейки.

Как пример:

Используя только ячейки A1 и B1 в электронной таблице и комбинируя вышеуказанные рабочие формулы (которые не работают для меня в Excel), это выглядело бы так:

Ячейка A1:

=IF(SUM((6.75*10)+(5.73*7)+8.5)>80, 80, SUM(B21))

Примечание: формула ячейки A1 сверху, = SUM ((6,75 * 1) + (5,73 * 2) +3) в сочетании с формулой ячейки B1 сверху, = IF (SUM (A1)> 80, 80, SUM (A1)) (формула Cell A1 заменяет оба значения «A1» в формуле Cell B1).

Ячейка B1:

=IF(SUM(A1)>80,SUM(A1)-80,"0")

Примечание: идентично приведенной выше формуле ячейки C1.

Можно ли это сделать, вычислить результаты формулы ячейки, в то время как формула в соседней ячейке зависит от вычисленного, но не распечатанного значения этой первой ячейки?

Я понимаю, что писать это гораздо сложнее, чем я ожидал, и это объясняет, почему Google никуда меня не привел. Спасибо за любые подсказки. Фил

1 Ответ

1 голос
/ 31 марта 2019

Строго говоря, это невозможно. Ячейка имеет только 1 значение, и это результат всех вычислений. Оператор IF не скрывает значение ячейки. меняет значение.

Формула для другой ячейки может использовать только окончательное значение ячейки. Он не может извлечь часть формулы из другой ячейки. В Excel нет возможности узнать, какую часть извлечь, даже если в операторе IF есть только один расчет.

Тем не менее, в вашем случае возможен другой обходной путь ... и это заключается в изменении способа отображения вашего значения с помощью пользовательского форматирования. Формулы изменяют значение ячеек, а форматирование изменяет способ отображения этих значений.

  1. Поместите формулу в ячейку A1: =6.75*10+5.73*7+3
  2. Щелкните правой кнопкой мыши ячейку A1 и выберите Формат ячеек ...
  3. Убедитесь, что вы находитесь на вкладке номера
  4. В столбце «Категория» выберите «Пользовательский»
  5. Введите эту формулу в поле Тип: [>80]"80";[<=80]General
  6. Введите эту формулу в B1: =IF(A1>80,A1-80,0)
  7. Убедитесь, что числовой формат B1 по-прежнему «Общий» или «Числовой»

enter image description here

В результате A1 вычислило и сохранило фактическое значение, но отображает текстовую строку «80», если его значение превышает 80. Затем можно использовать фактическое значение из A1 в других формулах.

ПРИМЕЧАНИЕ: Этот тип пользовательского форматирования является крайне плохой практикой, поскольку он может стать очень запутанным и очень подверженным ошибкам. Значение ячейки отличается от того, что она показывает, и если другие пользователи не знают об этом, создание новых формул, относящихся к затронутой ячейке, может непреднамеренно привести к неправильным и / или неожиданным результатам.

В частности, Excel пытается быть полезным и может автоматически копировать форматирование из одной ячейки в другую, если оно находится рядом с исходной ячейкой или если оно ссылается только на исходную ячейку в базовой формуле. Копирование и вставка также копирует форматирование по умолчанию. Непреднамеренное копирование форматирования в другие ячейки также изменит их внешний вид.

Также обратите внимание, что вам не нужно помещать SUM () вокруг формулы, в которую уже включены операторы сложения; а в Excel используется порядок операций, поэтому перед сложением вам не нужны скобки для умножения.

Наконец, вы также можете просто использовать =MAX(A1-80,0) в B1.

...