请求编写Google Sheet函数:匹配日期、设施及计划/实际维度抓取数据
Google Sheets 跨表多维度匹配数据方案
要实现从「Facility Schedule」工作表抓取数据到「Working Indika」的D7:AH14区域,同时匹配设施、日期、计划/实际标识三个维度,可以用XLOOKUP结合数组公式完成,具体方案如下:
单单元格公式(可拖动填充)
在D7单元格输入以下公式,然后横向、纵向拖动填充至AH14区域:
=IFERROR(XLOOKUP(1, ('Facility Schedule'!$B:$B=$C7) * ('Facility Schedule'!$C:$C=INDEX($F$3:$J$3, 1, INT((COLUMN(D:D)-4)/2)+1)) * ('Facility Schedule'!$2:$2=D$6), 'Facility Schedule'!$D:$Z), "")
数组公式(一次性填充整个区域)
如果不想手动拖动,直接在D7单元格输入数组公式,自动覆盖D7:AH14:
=ARRAYFORMULA(IFERROR(XLOOKUP(1, ('Facility Schedule'!$B:$B=$C7:$C14) * ('Facility Schedule'!$C:$C=INDEX($F$3:$J$3, 1, INT((COLUMN(D7:AH14)-4)/2)+1)) * ('Facility Schedule'!$2:$2=D$6:AH$6), 'Facility Schedule'!$D:$Z), ""))
公式逻辑说明
('Facility Schedule'!$B:$B=$C7):匹配「Facility Schedule」B列的设施与当前行C列的设施一致('Facility Schedule'!$C:$C=INDEX($F$3:$J$3, 1, INT((COLUMN(D:D)-4)/2)+1)):根据当前列的位置,从F3:J3中提取对应的「计划/实际」标识,匹配「Facility Schedule」C列的标识(若列分组规则不同,调整INT((COLUMN(D:D)-4)/2)+1的计算逻辑即可)('Facility Schedule'!$2:$2=D$6):匹配「Facility Schedule」第2行的日期与当前列第6行的日期一致XLOOKUP(1, ..., 'Facility Schedule'!$D:$Z):找到三个条件同时满足的行,返回对应日期列的数据IFERROR(..., ""):处理无匹配结果的情况,返回空值而非错误提示
注意事项
- 确保两个工作表中的日期格式完全一致,否则会出现匹配失败
- 若「Facility Schedule」的数据列范围不是D:Z,可将公式中的
$D:$Z替换为实际的数据列范围(比如$D:$AA),提升计算效率 - 检查F3:J3的标识文本与「Facility Schedule」C列的文本完全匹配(包括大小写、空格)
内容的提问来源于stack exchange,提问作者indika prasanna
相关产品推荐
相关产品推荐

