所以这是交易。我有一个数据库,有一个区域列表。一行= 1个区域。第一部分很简单,我需要计算满足给定标准的区域数量:
{=SUMPRODUCT(--(IFERROR((tdata[Col1]/tdata[Col2]<(100-Var1)/100),TRUE)))}
其中(tdata [Col1] / tdata [Col2]&lt;(100-Var1)/ 100)是我需要满足的标准。我有一个IFERROR,因为分母可能偶尔为0(因为用户)。
这回来说,满足标准的50个区域中有27个区域。真棒。
现在,问题在于这些地区的国家数量较少。我可能在满足标准的特定国家/地区内有0个,1个或多个区域。现在,我需要找到一个公式,该公式将给出有多少国家至少有一个区域符合标准(我们不关心它是更多还是多少)。假设我有20个国家中有10个国家至少有1个地区受到影响。 (对于每个地区,其国家/地区都列在数据库的[国家]中)。
我有国家总数
{=SUMPRODUCT((tdata[COUNTRY]<>"")/COUNTIF(tdata[COUNTRY],tdata[COUNTRY] & ""))}
然而,似乎不可能在那里包含我以前的计算,因为COUNTIF不希望我进行计算,而且我也无法在那里得到错误检查。
有什么想法吗?
我很想使用UDF,因为事情中已经有了一些VBA。无论选择使用那个还是标准功能,我都会更喜欢后者,除非它很难过。
编辑:
答案 0 :(得分:0)
所以我最终建立了一个单独的表,有1个国家/行。这使我能够总结每个国家的数据(这对其他指标很有用),并且大大简化了公式工作簿,因为我可以引用这些单元格。
有一个点,另一张桌子更便宜&amp;比在公式中构建一切更聪明的选择。
国家/地区列表调整表的大小必须通过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])