2016-10-25 2 views
0

Во второй половине дня ребят,Используя формулу массива в COUNTIFS диапазон

Я пытаюсь оценить формулу COUNTIFS, используя массив в диапазоне критериев.

Мой стол называется tblSkillsMatrix и настроен со следующими заголовками; Роль Персонал Умение 1 Умение 2 Умение 3 Умение 4 Умение 5 Умение 6 Умение 7 Умение 8 Умение 9 Умение 10 и т. Д.

Существует соответствующая таблица, называемая tblRoles. Заголовки являются названиями ролей, и строки содержат требуемый навык, например. Skill 1, Skill3, Skill 5, Skill 8 и т. Д.

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

=COUNTIFS(tblSkillsMatrix[[#All],[Role]],'Skills Summary'!C16,tblSkillsMatrix[[#All],[Skill 1]],"Trained",tblSkillsMatrix[[#All],[Skill 3]],"Trained",tblSkillsMatrix[[#All],[Skill 5]],"Trained",tblSkillsMatrix[[#All],[Skill 8]],"Trained") 

Можно ли использовать формулу массива для определения тех столбцов, которые я должен использовать? Таким образом, формула будет выглядеть так;

=COUNTIFS(tblSkillsMatrix[[#All],[Role]],'Skills Summary'!C16,Array{columns to evaluate},"Trained") 

Большое спасибо

+0

Из чего должна состоять часть {столбцы для оценки} части массива {столбцы для оценки}? Полные ссылки столбцов таблицы (tblSkillsMatrix [[# All], [Skill 1] и т. Д.)? Если это так, это не сделает формулу более кратким. Возможно, вы хотите ссылаться на нужные столбцы через их относительное положение в таблице (например, {1,4,6})? –

+0

Привет, спасибо за помощь. В tblSkillsMatrix заголовки столбцов - это Skill 1, Skill 2 и т. Д. В tblRoles заголовки столбцов являются именами типов заданий, а строки показывают, какие навыки они должны иметь, например. Skill 1, Skill 5 и т. Д. Используя формулу массива {= INDIRECT ("tblRoles [JobType]")} возвращает все навыки, перечисленные под заголовком столбца «JobType». Таким образом, это может быть умение 3, умение 8 и т. Д. Мне нужно уметь использовать формулу countifs для использования этих столбцов в tblSkillsMatrix. Надеюсь, это имеет смысл? – PeteBradshaw

ответ

1

массив формула **:

=SUM(IF(tblSkillsMatrix[Role]='Skills Summary'!C16,IF(MMULT(0+(T(OFFSET(INDIRECT("tblSkillsMatrix["&TRANSPOSE(tblRoles[JobType])&"]"),ROW(tblSkillsMatrix[Role])-MIN(ROW(tblSkillsMatrix[Role])),))="Trained"),ROW(tblRoles[JobType])^0)=COUNTA(tblRoles[JobType]),1)))

Обратите внимание, что я изменил свои ссылки на таблицы, чтобы исключить заголовки, так как я предполагаю, что вы на самом деле не нужно включить их в счет?

С уважением

** Формула массива не вводится таким же образом, как «стандартные» формулы. Вместо нажатия только ENTER, сначала удерживайте CTRL и SHIFT, а затем нажмите ENTER. Если вы сделали это правильно, вы заметите, что Excel помещает фигурные скобки {} вокруг формулы (хотя не пытайтесь вручную вставить их самостоятельно).

+0

Это замечательно, спасибо, но я не думаю, что задал правильный вопрос! Мой плохой ... Мне нужно, чтобы подсчитывать строки, где JobType & ALL Skills в этой строке для члена команды показаны как обученные. Извините, это был очень долгий день! – PeteBradshaw

+0

ok - У меня это работает до сих пор {= SUM ((tblSkillsMatrix [Role] = "Civil") * (tblSkillsMatrix [Skill 3] = "Trained") * (tblSkillsMatrix [Skill 1] = "Trained") * (tblSkillsMatrix [Skill 5] = "Trained") * (tblSkillsMatrix [Skill 8] = "Trained"))} Но как я могу изменить его на что-то вроде этого {= SUM ((tblSkillsMatrix [Role] = "Civil") * ДВССЫЛ ("tblSkillsMatrix [" & tblRoles [гражданской] & "]" = "Обученные"))}? – PeteBradshaw

+0

А, ок. Я боюсь, что это делает требуемое решение довольно сложным. Изменили эту должность. –

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