寻求Excel函数方案:将同ISIN下FA_ABC的CUSTOM CODE替换为LV_XYZ对应值
表格处理问题的解决方案
1. XLOOKUP函数法(Excel 365/2021及以上版本)
假设数据列对应:A=ptf,B=ISIN,C=CUSTOM CODE。在空白列(比如D2)输入公式:
=IF(A2="FA_ABC", XLOOKUP(B2, FILTER(B:B,A:A="LV_XYZ"), FILTER(C:C,A:A="LV_XYZ"), ""), C2)
直接下拉填充即可。公式会先判断当前行是否为FA_ABC,若是则筛选出所有ptf为LV_XYZ的行,匹配相同ISIN对应的CUSTOM CODE,否则保留原数值。
2. INDEX+MATCH组合法(兼容旧版Excel)
如果你的Excel版本不支持XLOOKUP,用这个数组公式:
=IF(A2="FA_ABC", INDEX(C:C, MATCH(1, (B:B=B2)*(A:A="LV_XYZ"), 0)), C2)
注意:旧版Excel需要按Ctrl+Shift+Enter完成输入,新版直接回车即可。公式里的(B:B=B2)*(A:A="LV_XYZ")用于同时匹配ISIN和ptf=LV_XYZ的条件,MATCH找到对应行号后,INDEX提取C列的值。
3. Power Query批量处理(大数据量首选)
如果数据量较大,函数下拉效率低,试试Power Query:
- 选中数据区域,点击「数据」→「从表格/区域」,导入Power Query编辑器
- 点击「添加列」→「自定义列」,输入自定义公式:
if [ptf] = "FA_ABC" then Table.SelectRows(Source, each [ISIN] = [ISIN] and [ptf] = "LV_XYZ"){0}[CUSTOM CODE] else [CUSTOM CODE]
- 点击「关闭并上载」,处理后的数据会导出到新工作表
内容的提问来源于stack exchange,提问作者Francesco Imperato
相关产品推荐
相关产品推荐

