Как сохранить работоспособность формул при копировании и вставке в Excel? - PullRequest
0 голосов
/ 27 июня 2019

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

=VLOOKUP($A$1, $E$1:$F$12, 2, 0) дляB2:B8

Name1      Rate
Sunday     0.1
Monday     0.1
Tuesday    0.1
Wednesday  0.1
Thursday   0.1
Friday     0.1
Saturday   0.1
Sunday     0.1

Имя1 - А1.

Этого должно быть достаточно, но на всякий случай пример по этой ссылке: https://docs.google.com/spreadsheets/d/19z-LLTj4pcvDCUaoq72qcBicHsT1Gq5Z9i8haPLRIsI/edit?usp=sharing

Ответы [ 4 ]

3 голосов
/ 27 июня 2019

Не совсем уверен, что означают ваши «формулы все еще работают», но надеюсь, что это поможет. В вашем примере вы используете абсолютную ссылку на ячейки. Вы можете заметить его по знакам «$» перед именем столбца и номером строки. Если вы удалите эти знаки - ваши ссылки станут относительными. Больше по теме можно найти ЗДЕСЬ .

UPD. Итак, вам нужно сочетание абсолютных и относительных ссылок. Вот как это можно сделать. Поместите это в ячейку B2 в виде формулы массива отдельной ячейки (Ctrl + Shift + Enter). Распространите это для первой таблицы - и вы готовы скопировать это куда угодно:

=VLOOKUP(INDIRECT(ADDRESS(MAX((B$1:B1="Rate")*ROW($A$1:A1));COLUMN()-1));$E$1:$F$12;2;0)

Работает путем поиска последней строки с заголовком «Оценить». Поэтому убедитесь, что он всегда присутствует. Если ваш заголовок может измениться - вас может заинтересовать формула, определяемая пользователем в VBA.

$A$1:A1 не важен, поскольку он нужен только для получения чисел для разных строк. $E$1:$F$12 - ваш фиксированный стол.

1 голос
/ 27 июня 2019

Я не думаю, что это именно то, что вы ищете, но собираете воедино свой словоблудие, чтобы сформировать вопрос: " Можно ли сослаться на первую ячейку таблицы? "

Да!

Вы можете использовать Индекс с 1,1 и именем таблицы. Ниже приведен пример с таблицей с именем Table1 и формулой для извлечения значения в первой строке и столбце =INDEX(Table1,1,1). Если вам нужны заголовки, вы можете изменить формулу следующим образом: =INDEX(Table1[#Headers],1,1), которая будет возвращать "MOND".

Опять же, возможно, это не то, что вы ищете, но если кто-нибудь сделает поиск, он может найти это полезным.

enter image description here

0 голосов
/ 27 июня 2019

В конце я решил использовать дополнительный столбец, но пример формулы, позволяющей скопировать таблицу в другой столбец.

{=INDIRECT(SUBSTITUTE(ADDRESS(1, COLUMN()-1, 4), "1", "")&MIN(IF(OFFSET(L:L, 0, -1)<>"", ROW(OFFSET(L:L, 0, -1)), 9999999)))}

Разбитый

  • SUBSTITUTE(ADDRESS(1, COLUMN()-1, 4) получает буквенную строку столбца столбца один слева, поэтому, если мы находимся в столбце L:L, это вернет "K".Потребуется изменить COLUMN()-1 на COLUMN()-2, COLUMN()-3 и т. Д. Для других столбцов
  • OFFSET(L:L, 0, -1) возвращает K:K.
  • MIN(IF(OFFSET(L:L, 0, -1)<>"", ROW(OFFSET(L:L, 0, -1)), 9999999))

эквивалентно

  • MIN(IF(K:K<>"", ROW(K:K), 9999999)), которое возвращает номер строки первой непустой ячейки в столбце K:K
  • Формула - формула массива

Это работает при условии, что:

  1. Таблица не разделяет столбцы с оригиналом.
  2. Ничто не находится выше рассматриваемых таблиц.
0 голосов
/ 27 июня 2019

Да, у вас есть возможность скопировать формулы вставки, но вы должны правильно заморозить свои формулы.

у вас есть Freeze полностью $ A $ 1 ячейка, и вы скопировали то же самое для всех, что совершенно неверно. Вы заморозили его как $ A1 Исправленный пример вашей формулы: = VLOOKUP ($ A1, $ E $ 1: $ F $ 12, 2, 0)

Замораживание означает создание относительной ссылки на ячейку.

Пожалуйста, обратитесь по ссылке ниже, чтобы узнать о Относительная и абсолютная ссылка на ячейку .

https://www.ablebits.com/office-addins-blog/2015/11/25/relative-absolute-reference-excel/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...