2015-12-22 5 views
0

У меня есть формула, которая находит 10 самых высоких значений с использованием функции LARGE с заданным диапазоном ячеек. SALESNew составляет 52 недель фигур и к-я по величине значения в ПРОДАЖАХ Суммы $ C ...Использование MATCH для построения диапазона ячеек #VALUE

=LARGE('2015SALESNew'!$D$250:$BC$250,'SALES Summ'!$C6) 

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

Примеры ниже:

=LARGE(("'2015SALESNew'!$D$"&G43&":$BC$"&G43),'SALES Summ'!$C43) 

$G43 contains =MATCH($A38,'2015SALESNew'!A:A,0) 

В 3 метода я пытался ниже возвращают правильный диапазон

('2015SALESNew'!$D$255:$BC$255) but the formula result is always #VALUE. 

="'2015SALESNew'!$D$"&G43&":$BC$"&G43 
="'2015SALESNew'!$D$"&MATCH($A38,'2015SALESNew'!A:A,0)&":$BC$"&MATCH($A38,'2015SALESNew'!A:A,0) 
=CONCATENATE("'2015SALESNew'!$D$",MATCH($A38,'2015SALESNew'!A:A,0),":$BC$",MATCH($A38,'2015SALESNew'!A:A,0)) 

Что я упускаю с ячейкой не диапазон читается правильно?

+0

Прежде всего, не могли бы вы форматировать свои формулы в качестве кода, что упрощает их чтение. Просто поставьте 4 пространства перед ними. – Luuklag

+0

Во-вторых, почему в вашей формуле (") есть двойные кавычки?Я думаю, вы должны удалить их, так как теперь вы указываете, что некоторые ссылки являются текстом, а не ссылкой. – Luuklag

+0

@Luuklag - Мне нужно использовать двойные кавычки для построения диапазона ячеек. Я также ответил на свой вопрос, посмотрев на другие формулы, которые я использовал в прошлом, - обертывание формулы с помощью INDIRECT решает проблему. – AlanB

ответ

0

Я нахожу лучший способ построения динамического диапазона с помощью функции INDEX. Как говорится в файле справки - Index (reference form) Возвращает ссылку ячейки на пересечении определенной строки и столбца.

Так, например, =INDEX($J:$J,5) вернет ссылку на пересечении строки 5 в диапазоне $ J: $ J - i.e. $ J $ 5.
Добавьте еще один УКАЗАТЕЛЬ к этой формуле, скажем, пересечение строки 10 в диапазоне $ N: $ N, и у вас есть диапазон ячеек, на которые имеются ссылки: =INDEX($J:$J,5):INDEX($N:$N,10).
Запустите это через Evaluate Formula, и он покажет вам диапазон $ J $ 5: $ N $ 10 - оберните его в функцию SUM, и он будет содержать все значения в этом диапазоне.

Теперь, чтобы сделать его динамическим - формула COUNTA($N:$N) будет считать все ячейки в столбце N, которые не являются пустыми. Если у вас нет пробелов в столбце N, это даст вам последнюю строку, содержащую данные в столбце N.
Итак, теперь мы можем переписать формулу для чтения =$J$5:INDEX($N:$N,COUNTA($N:$N)). Я изменил J5 на константу - возможно, если он не изменится - и вторая ссылка на последнюю ячейку, содержащую данные в столбце N (при условии, что в столбце N нет пробелов). Это теперь ссылается на J5: N10 в моем примере.
Оберните это БОЛЬШОЙ функцией =LARGE($J$5:INDEX($N:$N,COUNTA($N:$N)),3) и отобразите 3-е по величине число в моем диапазоне.

Редактировать: В качестве дополнительного бонуса функция INDEX является энергонезависимой, в то время как аналогичная функция OFFSET и функция INDIRECT нестабильны, что приводит к накладным расходам при каждом вычислении. http://www.decisionmodels.com/calcsecretsi.htm

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

Смежные вопросы