COUNTIFS 不可预测 returns 零
COUNTIFS unpredictably returns Zero
我想按国家组来抢一天的广告费
记录的日期和国家/地区分别在 I、J 和 G 列中。
我正在做一个引用 sheet 广告的 VLOOKUP,
搜索键是日期和月份,并根据国家/地区选择值列。
然后为了求平均,我将此查找除以一组国家/地区的广告支出除以该日期、月份和国家/地区的记录数。
=(IF(OR(G4="Spain",G4="Portugal"),VLOOKUP(I4&J4,Advertising!$A:$AK,32,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Spain","Portugal"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Spain","Portugal"}),0),
IF(G4="France",VLOOKUP(I4&J4,Advertising!$A:$AK,33,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"France"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"France"}),0),
IF(G4="Italy",VLOOKUP(I4&J4,Advertising!$A:$AK,34,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Italy"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Italy"}),0),
IF(OR(G4="Belgium",G4="Netherlands"),VLOOKUP(I4&J4,Advertising!$A:$AK,35,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Belgium","Netherlands"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Belgium","Netherlands"}),0),
IF(G4="Sweden",VLOOKUP(I4&J4,Advertising!$A:$AK,36,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Sweden"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Sweden"}),0),
IF(G4="United Kingdom",VLOOKUP(I4&J4,Advertising!$A:$AK,37,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"United Kingdom"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"United Kingdom"}),0),
VLOOKUP(I4&J4,Advertising!$A:$AK,31,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Germany","Austria","Bulgaria","Croatia","Cyprus","Australia","Denmark","Estonia","Finland","Greece","Hungary","Ireland","Latvia","Lithuania","Luxembourg","Malta","Norway","Romania","Russia","Slovakia","Slovenia","Switzerland","UAE"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Germany","Austria","Bulgaria","Croatia","Cyprus","Australia","Denmark","Estonia","Finland","Greece","Hungary","Ireland","Latvia","Lithuania","Luxembourg","Malta","Norway","Romania","Russia","Slovakia","Slovenia","Switzerland","UAE"}),0)
)))))))
不幸的是,这为我返回了一个错误。
如您所见,我有一个 IF 子句来避免被零除。
但是,我以某种方式说服自己错误是在求平均值(即用 COUNTIFS 除法)过程中返回的,而不是在 VLOOKUP 中。我确实相信我的 COUNTIFS 非法且无法解释地返回零。
例如对于我在上面发布的主要 sheet 中的第 4 行,
=COUNTIFS(I:I,I4,J:J,J4,G:G,{"Germany","Austria","Bulgaria","Croatia","Cyprus","Australia","Denmark","Estonia","Finland","Greece","Hungary","Ireland","Latvia","Lithuania","Luxembourg","Malta","Norway","Romania","Russia","Slovakia","Slovenia","Switzerland","UAE"})
returns一个零。当我在较少的国家(总是包括奥地利)进行测试时,有时 returns 为零,有时为 1。
样本 sheet 在 https://docs.google.com/spreadsheets/d/1YgK_D7FaTWtKcSts2uDiG7jlTRx2_IGrJ41wZr2qyak/edit?usp=sharing
P.S。我没有足够的声誉,但我会要求一位前辈添加“countifs”标签。
使用match()
,像这样:
=arrayformula(
iferror(
vlookup(
I4:I & J4:J,
{ Advertising!B3:B & Advertising!C3:C, Advertising!B3:AK },
match(G4:G, Advertising!A1:AK1, 0),
false
)
)
)
在样本分布sheet 中查看新的 Solution sheet。公式在单元格 P4
.
中
请注意,并非您搜索关键字中的所有国家/地区名称都出现在数据中。
尝试第 4 行:
=INDEX(IFNA(VLOOKUP(I4:I&"×"&J4:J,
{Advertising!B3:B&"×"&Advertising!C3:C, Advertising!B3:AK},
MATCH(G4:G, Advertising!A1:1, ), )))
更新:
=INDEX(IFERROR(1/(1/(IFNA(VLOOKUP(I4:I&"×"&J4:J,
{Advertising!B3:B&"×"&Advertising!C3:C, Advertising!AE3:AK}, MATCH(IFNA(VLOOKUP(G4:G,
{{"France";"Germany";"Austria";"Bulgaria";"Croatia";"Cyprus";"Australia";"Denmark";"Estonia";"Finland";"Greece";"Hungary";"Ireland";"Latvia";"Lithuania";"Luxembourg";"Malta";"Norway";"Romania";"Russia";"Slovakia";"Slovenia";"Switzerland";"UAE";"Italy";"Belgium";"Netherlands";"Spain";"Portugal";"Sweden";"United Kingdom"},
{"France";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Italy";"Netherlands";"Netherlands";"Spain";"Spain";"Sweden";"United Kingdom"}},
2, )), Advertising!AD1:AK1, 0), ))/
COUNTIFS(I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G,
{{"France";"Germany";"Austria";"Bulgaria";"Croatia";"Cyprus";"Australia";"Denmark";"Estonia";"Finland";"Greece";"Hungary";"Ireland";"Latvia";"Lithuania";"Luxembourg";"Malta";"Norway";"Romania";"Russia";"Slovakia";"Slovenia";"Switzerland";"UAE";"Italy";"Belgium";"Netherlands";"Spain";"Portugal";"Sweden";"United Kingdom"},
{"France";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Italy";"Netherlands";"Netherlands";"Spain";"Spain";"Sweden";"United Kingdom"}},
2, )), I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G,
{{"France";"Germany";"Austria";"Bulgaria";"Croatia";"Cyprus";"Australia";"Denmark";"Estonia";"Finland";"Greece";"Hungary";"Ireland";"Latvia";"Lithuania";"Luxembourg";"Malta";"Norway";"Romania";"Russia";"Slovakia";"Slovenia";"Switzerland";"UAE";"Italy";"Belgium";"Netherlands";"Spain";"Portugal";"Sweden";"United Kingdom"},
{"France";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Italy";"Netherlands";"Netherlands";"Spain";"Spain";"Sweden";"United Kingdom"}},
2, )))))))
或者像这样:
=INDEX(IFERROR(1/(1/(IFNA(VLOOKUP(I4:I&"×"&J4:J,
{Advertising!B3:B&"×"&Advertising!C3:C, Advertising!AE3:AK},
MATCH(IFNA(VLOOKUP(G4:G, Sheet3!A:B, 2, )), Advertising!AD1:AK1, 0), ))/
COUNTIFS(I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G, Sheet3!A:B, 2, )),
I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G, Sheet3!A:B, 2, )))))))
我想按国家组来抢一天的广告费
记录的日期和国家/地区分别在 I、J 和 G 列中。
我正在做一个引用 sheet 广告的 VLOOKUP,
搜索键是日期和月份,并根据国家/地区选择值列。
然后为了求平均,我将此查找除以一组国家/地区的广告支出除以该日期、月份和国家/地区的记录数。
=(IF(OR(G4="Spain",G4="Portugal"),VLOOKUP(I4&J4,Advertising!$A:$AK,32,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Spain","Portugal"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Spain","Portugal"}),0),
IF(G4="France",VLOOKUP(I4&J4,Advertising!$A:$AK,33,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"France"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"France"}),0),
IF(G4="Italy",VLOOKUP(I4&J4,Advertising!$A:$AK,34,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Italy"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Italy"}),0),
IF(OR(G4="Belgium",G4="Netherlands"),VLOOKUP(I4&J4,Advertising!$A:$AK,35,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Belgium","Netherlands"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Belgium","Netherlands"}),0),
IF(G4="Sweden",VLOOKUP(I4&J4,Advertising!$A:$AK,36,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Sweden"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Sweden"}),0),
IF(G4="United Kingdom",VLOOKUP(I4&J4,Advertising!$A:$AK,37,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"United Kingdom"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"United Kingdom"}),0),
VLOOKUP(I4&J4,Advertising!$A:$AK,31,0)*IF(COUNTIFS(I:I,I4,J:J,J4,G:G,{"Germany","Austria","Bulgaria","Croatia","Cyprus","Australia","Denmark","Estonia","Finland","Greece","Hungary","Ireland","Latvia","Lithuania","Luxembourg","Malta","Norway","Romania","Russia","Slovakia","Slovenia","Switzerland","UAE"})>0,1/COUNTIFS(I:I,I4,J:J,J4,G:G,{"Germany","Austria","Bulgaria","Croatia","Cyprus","Australia","Denmark","Estonia","Finland","Greece","Hungary","Ireland","Latvia","Lithuania","Luxembourg","Malta","Norway","Romania","Russia","Slovakia","Slovenia","Switzerland","UAE"}),0)
)))))))
不幸的是,这为我返回了一个错误。
如您所见,我有一个 IF 子句来避免被零除。
但是,我以某种方式说服自己错误是在求平均值(即用 COUNTIFS 除法)过程中返回的,而不是在 VLOOKUP 中。我确实相信我的 COUNTIFS 非法且无法解释地返回零。
例如对于我在上面发布的主要 sheet 中的第 4 行,
=COUNTIFS(I:I,I4,J:J,J4,G:G,{"Germany","Austria","Bulgaria","Croatia","Cyprus","Australia","Denmark","Estonia","Finland","Greece","Hungary","Ireland","Latvia","Lithuania","Luxembourg","Malta","Norway","Romania","Russia","Slovakia","Slovenia","Switzerland","UAE"})
returns一个零。当我在较少的国家(总是包括奥地利)进行测试时,有时 returns 为零,有时为 1。
样本 sheet 在 https://docs.google.com/spreadsheets/d/1YgK_D7FaTWtKcSts2uDiG7jlTRx2_IGrJ41wZr2qyak/edit?usp=sharing
P.S。我没有足够的声誉,但我会要求一位前辈添加“countifs”标签。
使用match()
,像这样:
=arrayformula(
iferror(
vlookup(
I4:I & J4:J,
{ Advertising!B3:B & Advertising!C3:C, Advertising!B3:AK },
match(G4:G, Advertising!A1:AK1, 0),
false
)
)
)
在样本分布sheet 中查看新的 Solution sheet。公式在单元格 P4
.
请注意,并非您搜索关键字中的所有国家/地区名称都出现在数据中。
尝试第 4 行:
=INDEX(IFNA(VLOOKUP(I4:I&"×"&J4:J,
{Advertising!B3:B&"×"&Advertising!C3:C, Advertising!B3:AK},
MATCH(G4:G, Advertising!A1:1, ), )))
更新:
=INDEX(IFERROR(1/(1/(IFNA(VLOOKUP(I4:I&"×"&J4:J,
{Advertising!B3:B&"×"&Advertising!C3:C, Advertising!AE3:AK}, MATCH(IFNA(VLOOKUP(G4:G,
{{"France";"Germany";"Austria";"Bulgaria";"Croatia";"Cyprus";"Australia";"Denmark";"Estonia";"Finland";"Greece";"Hungary";"Ireland";"Latvia";"Lithuania";"Luxembourg";"Malta";"Norway";"Romania";"Russia";"Slovakia";"Slovenia";"Switzerland";"UAE";"Italy";"Belgium";"Netherlands";"Spain";"Portugal";"Sweden";"United Kingdom"},
{"France";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Italy";"Netherlands";"Netherlands";"Spain";"Spain";"Sweden";"United Kingdom"}},
2, )), Advertising!AD1:AK1, 0), ))/
COUNTIFS(I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G,
{{"France";"Germany";"Austria";"Bulgaria";"Croatia";"Cyprus";"Australia";"Denmark";"Estonia";"Finland";"Greece";"Hungary";"Ireland";"Latvia";"Lithuania";"Luxembourg";"Malta";"Norway";"Romania";"Russia";"Slovakia";"Slovenia";"Switzerland";"UAE";"Italy";"Belgium";"Netherlands";"Spain";"Portugal";"Sweden";"United Kingdom"},
{"France";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Italy";"Netherlands";"Netherlands";"Spain";"Spain";"Sweden";"United Kingdom"}},
2, )), I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G,
{{"France";"Germany";"Austria";"Bulgaria";"Croatia";"Cyprus";"Australia";"Denmark";"Estonia";"Finland";"Greece";"Hungary";"Ireland";"Latvia";"Lithuania";"Luxembourg";"Malta";"Norway";"Romania";"Russia";"Slovakia";"Slovenia";"Switzerland";"UAE";"Italy";"Belgium";"Netherlands";"Spain";"Portugal";"Sweden";"United Kingdom"},
{"France";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Germany";"Italy";"Netherlands";"Netherlands";"Spain";"Spain";"Sweden";"United Kingdom"}},
2, )))))))
或者像这样:
=INDEX(IFERROR(1/(1/(IFNA(VLOOKUP(I4:I&"×"&J4:J,
{Advertising!B3:B&"×"&Advertising!C3:C, Advertising!AE3:AK},
MATCH(IFNA(VLOOKUP(G4:G, Sheet3!A:B, 2, )), Advertising!AD1:AK1, 0), ))/
COUNTIFS(I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G, Sheet3!A:B, 2, )),
I4:I&"×"&J4:J&IFNA(VLOOKUP(G4:G, Sheet3!A:B, 2, )))))))