2014-01-22 2 views
3

Я застрял в проблеме Excel и надеюсь, что кто-то может помочь. Я прочитал 10-15 тем, которые похожи, но я не смог заставить работать. Вот где я нахожусь ...Excel индекс соответствует нескольким результатам ряда

У меня есть большой набор данных, содержащий столбцы для Year, Name, Total 1, Total 2 (и 20+ других столбцов). Те же имена отображаются в нескольких строках на основе годовых итогов. На отдельном листе у меня есть другой набор данных, содержащий имя и хотел бы вытащить данные из листа один в столбцы, как показано ниже.

enter image description here

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

=INDEX(DATARANGE,MATCH([@Name],DATARANGE[Name],0),MATCH("Total 1",DATARANGE[#Headers],0)) 

Проблема, которую я имею, является результатом добавления нескольких лет данные к моему 1-му набору данных. Есть ли способ сопоставить строку на основе name и year, а затем вернуть результаты соответствующего столбца?

ответ

1

Изменение первой функции MATCH на что-то вроде этого:

=MATCH(1,INDEX(([@Name]=DATARANGE[Name])*([@Year]=DATARANGE[Year]),0),0)

так как часть всей вашей формулы, которая бы это

=INDEX(DATARANGE,MATCH(1,INDEX(([@Name]=DATARANGE[Name])*([@Year]=DATARANGE[Year]),0),0) ,MATCH("Total 1",DATARANGE[#Headers],0))

Другим способом вы можете использовать для возвращения только числа (как здесь): (с привязкой ячейки для простоты).

=SUMPRODUCT((A2:A9=2013)*(B2:B9="name x")*(C1:D1="Total 1"),C2:D9)

+0

Спасибо за быстрый ответ Барри. Кажется, что проблема с этой формулой. особенно с [@Year] после *. Excel не примет формулу. – user3224346

+0

ОК, я подражал вашей формуле, но здесь это не так - замените [@Year] и [@Name] в моем предложении с помощью ссылок на ячейки, содержащих год и имя в сводной таблице –

+0

Все еще возникают проблемы с этим. Сделав изменения отмеченными, я больше не получаю ошибку, но получаю # n/a результаты. – user3224346

2
=SUM(($A$2:$A$9=B$16)*($B$2:$B$9=$A17)*($C$2:$C$9)) 

Введите выше в ячейке B14 как формула массива или ниже в качестве стандартного

=SUMPRODUCT(($A$2:$A$9=B$16)*($B$2:$B$9=$A17)*($C$2:$C$9)) 

Вы можете сделать то же самое для всего 2 просто заменить Cs с Ds

И затем перетащите вправо и вниз.

0

Если представленные данные для индексирования представляет собой таблицу, то

Это

=MATCH(1,INDEX(([@Name]=DATARANGE[Name])*([@Year]=DATARANGE[Year]),0),0) 

должны быть исправлены до надлежащего структурированного ведения

@[Name] 

Кроме того, так как это формула массива он может вообще не работать со структурированными ссылками. Вам лучше будет обслуживать регулярные ссылки на ячейки. Также, если это не таблица, будут работать только ссылки на ячейки.

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