Excel如何检查特定产品排除空单元格的所有行是否完全一致
解决方案
核心逻辑
实现需求不需要关注不同产品的行数差异,按统一逻辑处理即可:
- 第一步:按产品名称筛选出对应的所有行,自动过滤掉目标列的空单元格
- 第二步:取筛选结果的第一个非空值作为比对基准
- 第三步:将所有非空值和基准值做全等比对,全部匹配返回
true,存在不匹配返回false
Excel 公式实现方案
适配任意行数的动态数组公式如下(输入后直接回车即可生效,适用于Excel 2021及以上、365版本):
=LET( 产品列,A:A, 目标产品,"Nice cake", 数值列,B:B, 有效数值,FILTER(数值列,(产品列=目标产品)*(数值列<>""),"无有效数据"), AND(EXACT(有效数值,INDEX(有效数值,1))) )
说明
LET函数可提前定义公共参数,修改时只需要调整前三个变量的取值即可,不需要重复修改范围FILTER函数自动筛选目标产品的非空值,自动适配不同产品的行数,不需要手动圈定数据范围EXACT函数会批量比对所有有效数值和基准值,最后用AND合并结果,全匹配返回TRUE,否则返回FALSE
旧版无动态数组功能的Excel可使用数组公式,输入后按
Ctrl+Shift+Enter确认生效:=AND(EXACT(IF((A:A="目标产品")*(B:B<>""),B:B),INDEX(IF((A:A="目标产品")*(B:B<>""),B:B),MIN(IF((A:A="目标产品")*(B:B<>""),ROW(A:A))))))
Python 批量处理实现方案
如果是用pandas处理大批量表格数据,可直接调用以下函数:
import pandas as pd def check_product_consistency(df, target_product, value_col): # 筛选目标产品的非空值 valid_values = df[(df['产品名称'] == target_product) & (df[value_col].notna())][value_col] if len(valid_values) == 0: return "无有效数据" # 全量比对一致性 return (valid_values == valid_values.iloc[0]).all()
内容的提问来源于stack exchange,提问作者Alan Tingey
相关产品推荐
相关产品推荐

