2015-11-17 4 views
1

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

Таблица 1:

Image

(C37: E41) имеет столбец C с именами отделов, Колонка D с часами затраченных и колонке E с долларами израсходованы.

Таблица 2:

Image

(H57: H62) имеет 5 наибольшие расходы из таблицы 1, перечисленных в порядке, используя функцию =LARGE(E:E, [1-5]) в столбце H. Я хотел клетку слева от нисходящего Колонка H (колонка G) в таблице 2, чтобы отобразить название отдела из колонки C.

Я попытался =VLOOKUP, но, насколько я понимаю, данные должны быть непосредственно покинул клетки, что в настоящее время используется как значение поиска. Другие сообщения с несколько похожими запросами предложили = INDEX, = INDIRECT и/или = MATCH, но мне не удавалось создать рабочую функцию.

Единственный способ, которым мне удалось получить эту работу (вроде), было использовать = IF (H58 = E41, C41) и т. Д., Но я не мог заставить его ссылаться на всю таблицу.

+0

Вы пробовали (в G57 и скопировали) '= INDEX (C: C, MATCH (H57, E: E, 0))'. – pnuts

+0

Есть ли какие-либо цифры между последней ** Стоимость ** в столбце E и нижней части листа? – Jeeped

ответ

0

Более сложный ваш рабочий лист становится с дополнительными изолированными областями, содержащими несвязанные данные (числовые или иные), тем сложнее формулы превращаются в изоляцию диапазонов ячеек для получения истинных результатов.

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

Чтобы еще больше осложнить ситуацию, вы основываете свои поисковые запросы на результатах от LARGE function. В случае дублированных сумм вам понадобится второй, третий соответствующий отдел, а не просто повторение первого матча. AGGREGATE¹ function делает хорошую работу по получению этих результатов с циклической калибровкой без использования полноценной формулы массива.


Standard worksheet references (xlA1)

Top 5 with worksheet references

Поскольку маловероятно, что нет ничего выше строки 40, все расчеты для первых 5 наибольших значений в столбце E и последующих возвратов подстановки из столбцов C и D начнется в строке 41 (строка 40 является строкой заголовка таблицы dept/hours/cost).

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

E41:INDEX(E:E, MATCH(1e99, E:E)) 

Если есть один номер, который не принадлежит к затратам долговых в колонке Е ниже допустимых расходов долговых в колонке E, тогда ваши результаты будут искажены, и любое правильное возвращение будет совпадающим, а не истинным. Если это так, то формула (ы) должна будет иметь дополнительные вычисления.

Формулы в H58: J58 являются

=LARGE(E$41:INDEX(E:E, MATCH(1E+99,E:E)), ROW(1:1)) 
=INDEX(C$41:INDEX(C:C, MATCH(1E+99,$E:$E)), AGGREGATE(15, 6, (ROW(C$41:INDEX(C:C, MATCH(1E+99,$E:$E)))-ROW(C$40))/($E$41:INDEX($E:$E, MATCH(1E+99,$E:$E))=$H58), COUNTIF($H$58:$H58, $H58))) 
=INDEX(D$41:INDEX(D:D, MATCH(1E+99,$E:$E)), AGGREGATE(15, 6, (ROW(D$41:INDEX(D:D, MATCH(1E+99,$E:$E)))-ROW(D$40))/($E$41:INDEX($E:$E, MATCH(1E+99,$E:$E))=$H58), COUNTIF($H$58:$H58, $H58))) 

Заполните вниз по мере необходимости.


Structured table references (xlA1)

Top 5 with table references

В приведенном выше примере изображения, таблица была создана (Вставка ► Таблицы ► таблицы) и имени (контекстное меню Table Tools ► Дизайн ► Свойства ► Таблица Имя) ТаблицаDHC. A Был добавлен всего ряд, чтобы доказать, что он не мешает результатам.

Формулы в H58: J58 теперь,

=LARGE(TableDHC[Cost], ROW(1:1)) 
=INDEX(TableDHC[Dept], AGGREGATE(15, 6, (ROW(TableDHC[Dept])-ROW(TableDHC[#Headers]))/(TableDHC[Cost]=$H58), COUNTIF($H$58:$H58, $H58))) 
=INDEX(TableDHC[Hours], AGGREGATE(15, 6, (ROW(TableDHC[Hours])-ROW(TableDHC[#Headers]))/(TableDHC[Cost]=$H58), COUNTIF($H$58:$H58, $H58))) 

Заполните вниз по мере необходимости.


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


¹ AGGREGATE function была введена с Excel 2010. Он не доступен в более ранних версиях.

+0

Благодарим вас за подробный ответ @Jeeped. В последней строке в E (разные объекты) имеется довольно немного информации, но я, безусловно, могу работать с тем, что вы предоставили. – Saywarder

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