2

Обратите внимание: я знаю, что функция, которую я использую, вызовет циклическую ссылку. Я пытаюсь найти решение этой проблемы.

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

Столбец B заполнен мной, столбец C ("Всего до даты") рассчитывается автоматически каждую неделю. Таким образом, для строки № 11 время до даты для QA (Cell# C11) is C4+B11 .

Проблема в том, что я хочу представить данные в одной таблице, например так:

Идея здесь в том, что каждую неделю я просто обновляю ячейку "Усилие на этой неделе", и ячейка "Общая дата до" для каждой (Dev или QA или PM) обновляется. Формула будет что-то вроде:

C24 = C24+B24

Конечно это вызовет круговую ссылку. Как я могу обновить данную ячейку, добавив значение ячейки к другому значению? Я пытаюсь избежать использования VBA и событий смены ячейки. Можно ли это сделать, используя только сам Excel?

1 ответ1

1

Как упоминалось в моем предыдущем комментарии, я думаю, что ваша оригинальная идея невозможна в базовом Excel, но вот один из способов ее реализовать - с простой функциональностью Excel (2 функции Excel: VLOOKUP и SUM).

Первое изображение, как будет выглядеть ваш первый лист:

Обзорный лист

А ниже приведен внешний вид 2-го листа данных, в который вы вводите некоторые данные, когда и если они у вас есть. Так что этот лист обычно не показывает:

Лист ввода данных

Будет ли это работать для вас? Вот некоторые объяснения того, что происходит:

  1. Когда вам нужно ввести данные за неделю XX, вы переходите на лист "Данные" и вводите значения в соответствующий столбец соответствующей строки.
  2. Отображается автоматически в листе "Обзор"

Как работает лист "Обзор":

  • число "31", показанное в C1, является номером недели - автоматически вычисляется как =WEEKNUM(NOW()) в столбце C1
  • значения в B3 рассчитываются с помощью VLOOKUP($C$1;Data!$A$2:$D$53;2;FALSE) внутри него. Что это делает:
    • принимает значение от С1 (будучи 31),
    • ищет его внутри первого (индексного) столбца диапазона в Таблице данных (в частности, диапазон: Data!$A$2:$D$53)
    • когда он находит запись со значением 31, он выбирает значение из 2-го столбца в этом диапазоне (столбец для "Dev")
  • та же логика применяется к другим полям (B4 и B5)
  • Значения в столбцах C являются простыми =SUM(Data!$B$2:$B$53)

Кстати, все эти знаки $, которые вы видите, просто присутствуют, так что диапазоны ячеек - указанные в формуле одной ячейки - не меняются автоматически, когда вы копируете их в другое место. Не стесняйтесь игнорировать их за этот ответ.

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