基于前两列值为Excel第三列Program赋值的技术求助
解决方案:Excel中基于项目资金来源批量填充Program列
核心逻辑
如果某个项目(Project)对应的资金来源(Funding)中存在NW,则该项目所有行的Program列填充NW;否则填充Not funded。
方法1:兼容全版本的COUNTIFS+IF公式
假设数据表头在A1:C1,数据区域为A2:B13。在C2单元格输入以下公式,下拉填充至所有行:
=IF(COUNTIFS($A$2:$A$13,A2,$B$2:$B$13,"NW")>0,"NW","Not funded")
- 原理:
COUNTIFS统计当前项目对应的行中,资金来源为NW的记录数。若结果大于0,说明该项目获得过NW资助,返回NW;否则返回Not funded。
方法2:Excel 365/2021动态数组公式(无需下拉)
针对支持动态数组的Excel版本,在C2单元格输入以下公式,会自动填充整列:
=BYROW(A2:A13,LAMBDA(x,IF(COUNTIFS(A:A,x,B:B,"NW")>0,"NW","Not funded")))
- 原理:
BYROW遍历每个项目值,LAMBDA对每个项目判断是否存在NW资金,批量生成结果。
方法3:Power Query(适合大规模数据处理)
如果数据量较大,推荐用Power Query批量处理:
- 选中数据区域,点击「数据」选项卡 → 「从表格/区域」,导入Power Query编辑器
- 添加分组统计:点击「添加列」→ 「分组依据」,分组列选
Project,新列名设为HasNW,操作选择「自定义」,输入公式:List.Contains([Funding],"NW") - 返回原表,通过
Project列合并原表与分组后的表 - 添加Program列,输入公式:
if [HasNW] then "NW" else "Not funded" - 删除辅助列
HasNW,关闭并上载数据到Excel
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

