Формулы, сформированные с помощью конкатенации, не вычисляются / не активируются, если не введены вручную

#excel #excel-formula

#excel #excel-формула

Вопрос:

Короче говоря, у меня есть два листа, один из которых — «Необработанные данные», а другой — «Результаты». Я пытаюсь заставить таблицу результатов извлекать текст или число из каждой седьмой строки моего листа «Необработанных данных», поэтому A1 в «Результатах» будет A1 в необработанных данных, A2 в «Результатах» будет A8 в «Необработанных данных», A3 в «Результатах» будет A15в «Необработанных данных».

Я использовал функцию конкатенации на отдельном листе для разработки формул для каждой ячейки в таблице результатов, поэтому A1 в результатах ='Raw Data'!A1 , A2 в результатах ='Raw Data'!A8 и так далее. Когда я скопировал формулы и вставил их (используя значения вставки), Excel распознает их как текст, а не как формулы. В настоящее время единственное решение, которое я нашел, — это щелкнуть каждую из них и нажать Enter, активируя формулу. Но я не могу найти способ сделать это для всего листа, только для отдельных ячеек.

Что я пробовал: я попытался форматировать ячейки в General и использовать Calculate Now в параметрах вычисления. Ни то, ни другое не помогло.

Любая помощь приветствуется, это мой первый пост здесь,

Спасибо, -J.

Комментарии:

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

Ответ №1:

В частности, формула, которую вы хотите в ячейке A1 результатов:

=OFFSET('Raw Data'!A1,ROW()*7-7,0)

  • В строке 1 результатов ROW() возвращается 1, поэтому ROW()*7-7 0. 0 строк и 0 столбцов смещены от «Необработанных данных»!A1 — это «Необработанные данные»!A1.
  • В строке 2 результатов ROW() возвращается 2, так ROW()*7-7 что 7. 7 строк и 0 столбцов смещены от «Необработанных данных»!A1 — это «Необработанные данные»!A8.

Ответ №2:

Может сработать следующий обходной путь:

Выделите все ячейки, в которые вы только что вставили. Прямо сейчас все они являются строками, верно? ПрессаCtrl-H. Это должно открыть Replace диалоговое окно. Попробуйте заменить все ='Raw Data'! одной и той же строкой : ='Raw Data'! . Это заменит их все и заставит их вычислять, не отличаясь от ручного редактирования каждого из них. Смотрите Следующий снимок экрана для моей попытки:

введите описание изображения здесь

Кроме того, я могу быть немного не в себе, но я не думаю, что конкатенация — ваш лучший вариант. Я предполагаю, что правильное применение OFFSET формулы может достичь того, чего вы хотите.

Комментарии:

1. Да, действительно, при использовании СМЕЩЕНИЯ.

Ответ №3:

Вы пробовали использовать КОСВЕННЫЙ (ReferenceString)?

Это работает для меня, когда C1 имеет «Лист2», а D1 имеет «A1», он получает значение в ячейке листа 2 A1

 =INDIRECT("'"amp;C1amp;"'!"amp;D1)  
  

Комментарии:

1. Пожалуйста, оставьте это в качестве комментария. Поле ответа не должно использоваться для подтверждения или уточнения.

2. @Ken Тем не менее, как ранее заявлял Нанаши, ваш пост лучше подойдет в качестве комментария (если вы не добавите дополнительные сведения).

3. @Sam вы в замешательстве. Нанаши ссылался на исходное сообщение, которое я забыл вставить в остальную часть ответа. Это была только первая строка сообщения.