如何高效跨表格统计各品种的种植果园数量
嘿,针对你要从两个表格生成品种-种植果园数量汇总表的需求,这里有两种最高效的方案,覆盖手动工具和自动化脚本两种场景,你可以根据自己的技术栈选择:
方案1:用Excel/Google Sheets快速实现(适合非技术人员)
如果你习惯用表格工具,这个方法几步就能搞定:
- 第一步:把单品种列表(列名
Varieties)放到一个单独的工作表(比如Sheet1的A列,A1是表头,A2开始是品种名) - 第二步:在Sheet1的B2单元格输入统计公式(Excel和Google Sheets通用):
公式解释:这个公式会遍历果园表(Sheet2)的=SUMPRODUCT(--(ISNUMBER(SEARCH(A2, Sheet2!D:D))))Varieties grown列(假设是D列),检查当前品种是否出现在某个果园的品种列表中,最后统计符合条件的行数——也就是种植该品种的果园数量。 - 第三步:把B2的公式下拉到所有品种行,瞬间就能得到所有品种的统计结果。
方案2:用Python脚本批量处理(适合大数据量/自动化需求)
如果你的果园数据超过1000行,或者需要定期重复统计,用Python写个脚本会更高效,步骤如下:
- 先把两个表格导出为CSV文件(比如命名为
varieties.csv和orchards.csv) - 用pandas库处理数据,代码示例:
import pandas as pd # 读取品种列表CSV,确保表头正确 varieties_df = pd.read_csv('varieties.csv', header=0) # 读取果园CSV,注意分隔符是|,要指定列名 orchards_df = pd.read_csv( 'orchards.csv', sep='|', header=0, names=['Orchard Name', 'City Name', 'State Name', 'Varieties grown'] ) # 初始化计数字典,确保覆盖所有100+品种 count_dict = {var.strip(): 0 for var in varieties_df['Varieties']} # 遍历每个果园的品种列表,更新计数 for var_str in orchards_df['Varieties grown']: # 分割逗号分隔的品种,同时去除多余空格 current_vars = [v.strip() for v in var_str.split(',')] for var in current_vars: if var in count_dict: count_dict[var] += 1 # 转换为汇总表格并输出/保存 result_df = pd.DataFrame(count_dict.items(), columns=['Orchard', 'Count']) print(result_df) # 保存为CSV文件,方便后续使用 result_df.to_csv('variety_orchard_count.csv', index=False)
脚本优势:自动处理数据清洗(去除空格),批量遍历1000+果园,统计结果准确且速度快,还能重复运行。
注意事项
- 提前统一品种名称格式:比如检查有没有大小写差异(
Cara caravsCara Cara)、多余空格,避免统计遗漏。 - Excel公式在数据量极大时可能卡顿,这时候优先选Python脚本方案。
内容的提问来源于stack exchange,提问作者invisible_inq
相关产品推荐
相关产品推荐

