3

Я пытаюсь написать формулу Excel (или формулы), чтобы подсчитать первое вхождение значения в данном году для каждого человека в моей таблице. Я искал похожие вопросы на Superuser безрезультатно. Чтобы дать вам некоторый контекст, каждый человек участвовал в одном или нескольких годах на экзамене. В течение каждого экзаменационного года им давали один или несколько баллов (значения от 1 до 9 в таблице). Например, человек А имел две оценки (5,3) в 2011 году, одну оценку (2) в 2012 году и две оценки (4,1) в 2013 году. Однако меня интересует только подсчет количества лет, в котором участвовал каждый человек, и мне все равно, сколько это было лет. Мои данные следующие:

Person  2011    2012    2013
A       5       
A       3                       
A               2
A                       4
A                       1               
B       7                       
B                       6               
C       1                       
C       9                       
C               4                   
C               2                   
D       5                       

Это результат, который я хочу:

Person  Years                       
A       3                       
B       2                       
C       2                       
D       1       

Я пробовал так много запутанных / неэффективных способов достижения этого результата, используя комбинацию SUM, COUNTIFS и VLOOKUP, но он всегда подсчитывал все значения, а не первое вхождение значения в данном году. Я просто не могу понять, как это сделать или вообще возможно ли использовать функции Excel. Я не знаю VBA, но я подозреваю, что это может потребоваться для этого. Заранее спасибо за помощь.

2 ответа2

3

Похоже, работа для сводной таблицы !

Выделите свою таблицу и перейдите к Вставка → сводная таблица и расположите ее так, как вы хотите. Я бы сделал следующее -

1

Благодаря комментарию Райстафаряна я могу дать подробный ответ на свой вопрос. Используя сводную таблицу, я выбираю весь диапазон таблиц. В диалоговом окне «Список полей сводной таблицы» я добавляю « Человек» в отчет, а затем перетаскиваю каждый год (т. Е. 2011, 2012, 2013) в поле « Значения» . Это дает мне этот первоначальный результат:

Row Labels     Count of 2011    Count of 2012   Count of 2013
A              2                1               2
B              1                                1
C              2                2   
D              1        
Grand Total    6                3               3

Это фантастика, поскольку она не только позволяет мне СЧИТЫВАТЬ число значений в ряду, показывающих, сколько лет участвовал каждый человек, но также говорит мне, сколько баллов было дано в год для каждого человека.

Итак, на своем последнем шаге я просто добавляю формулу =COUNT(B2:D2) в ячейку E2, в результате чего столбец A = метки строк, столбец B = счетчик 2011 года, столбец C = счетчик 2012 года, столбец D = счетчик 2013 года, столбец E = Years и получите этот результат:

Row Labels     Count of 2011    Count of 2012   Count of 2013     Years
A              2                1               2                 3
B              1                                1                 2
C              2                2                                 2   
D              1                                                  1  
Grand Total    6                3               3                 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .