求助:谷歌表格公式实现博客文章流量下滑监测
解决博客文章表现监测的谷歌表格公式问题
原公式的问题
你使用的FILTER返回的是数组,但AND只能处理单个布尔值,无法直接对数组进行逻辑判断;同时原公式没有体现「先出现≥100的访问量,之后出现<100」的顺序逻辑,只是简单判断数组中同时存在两类数值,不符合需求。
正确公式
在「Article Failing」列的单元格(比如H2)中输入以下公式,然后下拉填充即可:
=IF(INDEX(REDUCE({"No", "No"}, FILTER(C2:G2, COLUMN(C2:G2)<>COLUMN(E2)), LAMBDA(state, val, LET( has_hit, INDEX(state, 1), has_fallen, INDEX(state, 2), IF(has_fallen, state, IF(has_hit, IF(val<100, {"Yes", "Yes"}, {"Yes", "No"}), IF(val>=100, {"Yes", "No"}, {"No", "No"}) ) ) )), 2)="Yes", "Article Failing", "")
公式逻辑说明
- 排除E列数据:
FILTER(C2:G2, COLUMN(C2:G2)<>COLUMN(E2))会筛选出当前行中除E列(delta值)外的所有访问量数据。 - 遍历跟踪状态:
- 使用
REDUCE函数遍历筛选后的访问量数组,维护两个状态:has_hit(是否曾经达到≥100的访问量)、has_fallen(是否在达标后出现过<100的访问量)。 - 初始状态为
{"No", "No"},表示既未达标也未出现后续掉量。 - 遍历每个数值时:
- 如果已经标记过掉量(
has_fallen为"Yes"),保持状态不变。 - 如果已经达标过(
has_hit为"Yes"),当前数值<100则标记掉量,否则保持达标状态。 - 如果未达标过,当前数值≥100则标记达标,否则保持初始状态。
- 如果已经标记过掉量(
- 使用
- 输出结果:最终取状态中的
has_fallen值,若为"Yes"则输出Article Failing,否则为空。
内容的提问来源于stack exchange,提问作者Jon Wright
相关产品推荐
相关产品推荐

