公式:至少有 1 个地区符合标准的不同国家/地区的数量

Formulas: Number of distinct countries with at least 1 region meeting criteria

所以这是交易。我有一个数据库,其中包含区域列表。一行 = 1 个区域。第一部分很简单,我需要计算满足给定条件的区域数量:

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

其中 (tdata[Col1]/tdata[Col2]<(100-Var1)/100) 是我需要满足的标准。我有一个 IFERROR 因为分母偶尔可能为 0(因为用户)。

这个returns,比如说50个地区中有27个符合条件。厉害了。

现在,问题是这些地区属于少数国家。在给定国家/地区内,我可能有 0 个、1 个或多个地区符合条件。现在,我需要找到一个公式来给出有多少国家至少有一个地区符合标准(我们不关心它是更多还是多少)。假设 20 个国家中有 10 个国家至少有 1 个地区受到影响。 (对于每个地区,其国家列在数据库的[国家]中)。

我有国家总数

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

然而,似乎无法将我之前的计算包含在那里,因为 COUNTIF 不希望我进行计算,而且我无法在其中进行错误检查。

有什么想法吗?

我很想为此使用 UDF,因为其中已经有一些 VBA。但是,如果可以选择那个或标准功能,我更喜欢后者,除非它太疯狂了。

编辑:

Sample file

所以我最终构建了一个单独的 table,其中有 1 个 country/row。这使我能够总结每个国家/地区的数据(这对其他指标很有用),并且大大简化了公式工作簿,因为我可以只引用这些单元格。

与在公式中构建所有内容相比,另一个 table 更便宜且更明智的选择。

table 的国家/地区列表和调整大小必须通过 VBA 完成,但假设您在 table 中有现成的唯一国家/地区列表:

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

这将提供一个列,告诉我是否有任何网站符合条件。然后只需使用 table 总和或

=sum(t_summary[COUNTRY])