2015-12-21 3 views
0

Итак, вот сделка. У меня есть база данных со списком регионов. Один ряд = 1. Первая часть легко, мне нужно подсчитать количество областей, которые удовлетворяют заданным критериям:Формулы: количество отдельных стран с критерием соответствия не менее 1 региона

{=SUMPRODUCT(--(IFERROR((tdata[Col1]/tdata[Col2]<(100-Var1)/100),TRUE)))} 

Где (TDATA [Стлб1]/TDATA [Стлб2] < (100-Var1)/100) является критерием Мне нужно встретиться. У меня есть IFERROR, потому что знаменатель может быть 0 раз (потому что пользователи).

Это возвращает, скажем 27 регионов из 50, отвечающих критериям. Потрясающие.

Теперь дело в том, что эти регионы находятся в меньшем числе стран. У меня может быть 0, 1 или много регионов в пределах конкретной страны, отвечающей критериям. Теперь мне нужно найти формулу, в которой будет указано, сколько стран имеет один регион, отвечающий критериям (нам все равно, больше или сколько). Скажем, у меня есть 10 стран из 20, в которых затронуты как минимум 1 регион. (Для каждого региона его страна указана в [стране] в базе данных).

У меня есть общее число стран

{=SUMPRODUCT((tdata[COUNTRY]<>"")/COUNTIF(tdata[COUNTRY],tdata[COUNTRY] & ""))} 

Однако это не представляется возможным включить мой предыдущий расчет там, потому что COUNTIF не хочет, чтобы делать расчеты, а также я могу» t получить проверку ошибок там.

Любая идея?

У меня возникает соблазн использовать UDF для этого, так как в этой вещи уже есть VBA. Однако, имея выбор с той или стандартной функцией, я предпочел бы более позднюю версию, если бы она не была сумасшедшей.

EDIT:

Sample file

+0

Я не получаю данные, я не могу придумать значения, которые дают только одну формулу, отличную от 0, поэтому ее трудно расширить. Можете ли вы набросать несколько строк данных? –

+0

Отредактировано. Обе формулы уже в образце и работе - это первая формула массива. Во-вторых, не обязательно, но я изначально использовал SUMIF, для которого мне нужно было –

ответ

0

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

Наступает момент, когда другой стол дешевле & умнее, чем строить все в формулах.

Список страны & изменения размера таблицы должно быть сделано с помощью VBA, но если у вас есть легкодоступный уникальный список стран в таблице:

=IF(ISERROR(INDEX(tdata[reportid], 
MATCH(1,(tdata[COUNTRY]=[@countrylist])* 
(tdata[GIFD_TACTUALKCAL]/tdata[GIFD_TPLANKCAL]*100<(100-cst_BREAKTRESH)),0))),0,1) 

который даст столбец, который говорит мне, если какие-либо сайты соответствуют критериям. Затем просто используйте табличные суммы или

=sum(t_summary[COUNTRY]) 

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

  • Нет связанных вопросов^_^