Создать макрос для подсчета из листа и заполнить счет в таблице

Исходная информация

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

введите здесь описание изображения

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

введите здесь описание изображения

Я уже пробовал

  1. Countif -> дал # ЗНАЧЕНИЕ! ошибка
  2. Countifs -> дали # ЗНАЧЕНИЕ! ошибка
  3. sumif -> дал # ЗНАЧЕНИЕ! ошибка
  4. sum (if (component = "Abc", 1,0)) -> Работает, но поскольку это формула массива, мне нужно нажать CTRL + SHIFT + ENTER

Проблема с последней формулой заключается в том, что каждый раз, когда данные меняются на листе 1, мне приходится переходить на лист 2 и нажимать клавиши CTRL + SHIFT + ВВОД в каждой ячейке. Мне нужна помощь с макросом, который может сделать эту работу.


person Ananya Pandey    schedule 22.08.2016    source источник
comment
В качестве более простой альтернативы вы можете использовать сводную таблицу   -  person Slai    schedule 22.08.2016
comment
спасибо за ответ, но так как я должен заполнить это в виде таблицы панели инструментов, иногда мне нужно использовать AND / OR для условий, поэтому сводная таблица не так уж хороша, вариант, если ничего не работает, я использую только это.   -  person Ananya Pandey    schedule 22.08.2016
comment
Для Excel 2010 и более поздних версий PowerPivot имеет более продвинутую фильтрацию, включая И / ИЛИ.   -  person Slai    schedule 23.08.2016
comment
Что мне следует искать в Интернете, чтобы получить эти расширенные функции?   -  person Ananya Pandey    schedule 23.08.2016
comment
Он доступен как бесплатная надстройка от Microsoft в Excel 2010 и 2013 и изначально включен в Excel 2016. Операторы и / или && и ||   -  person Slai    schedule 23.08.2016


Ответы (3)


Если Sno находится в A1 и Count в G4, то в H6 скопировано в I8:

=COUNTIFS($B:$B,$G6,$C:$C,H$5) 

или с добавлением соответствующих ссылок на листы, например:

=COUNTIFS(sheet1!$B:$B,$G6,sheet1!$C:$C,H$5)  

это можно было бы поместить на лист, отличный от данных, и обе формулы должны работать.

Если нет, то, возможно, у вас есть версия Excel, в которой нет СЧЁТЕСЛИМН, или разделитель вашего списка не ,, или что-то еще не так, что не является ни функцией, ни формулой.

person pnuts    schedule 23.08.2016
comment
Ваш метод работает, но теперь возникла новая проблема. Теперь мне нужно проверить два значения вместо одного. Так что мне нужно сделать - person Ananya Pandey; 23.08.2016
comment
Ваш метод работает, но теперь возникла новая проблема. Теперь мне нужно проверить два значения вместо одного. Поэтому мне нужно сделать = COUNTIFS ($ B: $ B, WIP, $ C: $ C, OR ($ C $ 3, $ C $ 6)) - person Ananya Pandey; 23.08.2016

Используйте COUNTIFS (RANGE OF Статус в записи, текущая ячейка с Статусом, RANGE OF COMPONENT в записи, Текущая ячейка с Компонентом), например:

COUNTIFS(B22:B28,A33,C22:C28,B32)


Sno Status  Component   

1   WIP Abc 
2   WIP Abc 
3   WIP Mnp 
4   WC  Mnp 
5   WC  Mnp 
6   RU  Abc 
7   RU  Mnp 

Count       Abc                                 Mnp 
WIP     =COUNTIFS(B22:B28,A33,C22:C28,B32)    =COUNTIFS(B22:B28,A33,C22:C28,C32)    
WC      =COUNTIFS(B22:B28,A34,C22:C28,B32)    =COUNTIFS(B22:B28,A34,C22:C28,C32)    
RU      =COUNTIFS(B22:B28,A35,C22:C28,B32)    =COUNTIFS(B22:B28,A35,C22:C28,C32)    

Попробуйте этот метод. СЧЁТЕСЛИМН будет работать.

person Sabey    schedule 22.08.2016
comment
Спасибо за ответ, но я попробовал этот метод, и он дал мне # значение! ошибка. - person Ananya Pandey; 22.08.2016
comment
добавили еще один ответ, который относится к другому листу. - person Sabey; 24.08.2016

Sno Статус Компонент 1 WIP Abc 2 WIP Abc 3 WIP Mnp 4 WC Mnp 5 WC Mnp 6 RU Abc 7 RU Mnp

на одном листе, начиная с ячейки А1

в следующем листе из ячейки А1

Count Abc Mnp WIP = COUNTIFS (Sheet2! B2: B8, Sheet3! A2, Sheet2! C2: C8, Sheet3! B1) = COUNTIFS (Sheet2! B2: B8, Sheet3! A2, Sheet2! C2: C8, Sheet3! C1)

WC = COUNTIFS (Sheet2! B2: B8, Sheet3! A3, Sheet2! C2: C8, Sheet3! B1) = COUNTIFS (Sheet2! B2: B8, Sheet3! A3, Sheet2! C2: C8, Sheet3! C1)

RU = COUNTIFS (Sheet2! B2: B8, Sheet3! A4, Sheet2! C2: C8, Sheet3! B1) = COUNTIFS (Sheet2! B2: B8, Sheet3! A4, Sheet2! C2: C8, Sheet3! C1)

person Sabey    schedule 24.08.2016