Сбой функции OFFSET/INDIRECT

62
8

У меня есть два листа в книге, первый из которых содержит несколько тысяч строк расходов, разделенных отдельными лицами, а второй - сводку итогов и т.д.

На втором листе я создал ссылку на первую, чтобы вставить каждое индивидуальное имя (т.е. B4: = "Карточные транзакции"! D89). Я испытываю трудности с синтаксисом для возврата общей суммы каждой отдельной суммы, которая находится в предсказуемой ячейке на первом листе относительно имени (вниз 1, справа 7).

Я пробовал следующее: = смещение (косвенное (B4), 1,7) с возвратой исходной ошибки. Кажется, это должно быть относительно просто, но мне не повезло. , , какие-либо предложения?

спросил(а) 2021-01-19T15:02:48+03:00 2 месяца, 3 недели назад
1
Решение
76

использовать этот:

=OFFSET(INDIRECT(MID(FORMULATEXT(B4),2,300)),1,7)

нота:

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

ответил(а) 2021-01-19T15:02:48+03:00 2 месяца, 3 недели назад
44

Следующее должно работать для вас, пока ваши данные следуют этим правилам:

    У ваших столбцов есть заголовки Имена находятся в одном столбце И вы можете установить диапазон с номерами строк, а не только с полными столбцами

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

Screenshot 1

И вы хотите, чтобы ваш второй лист выглядел следующим образом:

Screenshot 2

И ваши листы называются:

    Лист1 Sheet2

Это формула в B2 листа Sheet2: =INDEX(Sheet1!$A$1:$H$9,MATCH(A1,Sheet1!$A$1:$A$9,0)+1,MATCH("Column 8",Sheet1!$A$1:$H$1,0))

И вот что он делает:

Screenshot 3

    Ваш индексный массив представляет собой всю синюю область, это может быть весь лист, но не может быть полной ссылкой на столбец, номер строки должен быть указан. В этом примере массив индексов равен $A$1:$H$9 а знаки $ означают, что диапазон не будет перемещаться при перетаскивании формулы, поэтому они важны! В первом совпадении найден номер строки, в качестве значения поиска используется имя (в данном случае "bart"), а фиолетовая область - как массив. В этом примере массив строк равен $A$1:$A$9 а номера строк должны соответствовать номерам строк в массиве индексов. В конце матча "+1", так что он найдет подходящую строку, а затем добавит одну строку вниз, чтобы получить смещение. Ваше второе совпадение находит номер столбца, ему нужно будет использовать имя вашего столбца. В этом примере массив столбцов равен $A$1:$H$1 а буквы столбцов должны совпадать с буквами столбца в массиве индексов.

Дайте мне знать, если это не соответствует вашей проблеме, я уверен, что мы сможем понять это.

Благодарю.

ответил(а) 2021-01-19T15:02:48+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема