我必须合并两个不同表(表 1 和表 2)中的行。
但是,挑战在于我更改了单独表(编辑表)中某些行的某些方式。而且,“编辑的表格”不包含相同的列。
所以我需要一个结合“表1”和“表2”的函数,但同时跳过“编辑表”中列出的行,并从“编辑表”返回这些行。此外,我需要在不同列中填写正确的值以获得正确的 ID。
真实 ID 由数字和字母组成 - 在少数情况下还包括符号。
我尝试使用以下功能,其中应该是“删除”部分,但根本不起作用。
=IF(COUNTA(DY6:DY12)<=2; VSTACK(FILTER(DK5:DK15; (DK5:DK15<>"")*(DK5:DK15<>DK5)*(ISERROR(MATCH(DK5:DK15; DY6:DY12; )))); FILTER(DK18:DK23; (DK18:DK23<>"")*(DK18:DK23<>DK18)*(ISERROR(MATCH(DK18:DK23; DY6:DY12; ))))); VSTACK(FILTER(DK5:DK15; (DK5:DK15<>"")*(DK5:DK15<>DK5)*(ISERROR(MATCH(DK5:DK15; DY6:DY12; )))); FILTER(DK18:DK23; (DK18:DK23<>"")*(DK18:DK23<>DK18)*(ISERROR(MATCH(DK18:DK23; DY6:DY12; )))); FILTER(DY6:DY12; (DY6:DY12<>"")*(DY6:DY12<>DY6)*(DY6:DY12<>DY6))))
以下应该适合您:
=LET(
original_tables; VSTACK(DK6:DW14; DK19:DW22);
ids; INDEX(original_tables; ; 1);
edited_table; HSTACK(DY7:EB11; ED7:EI11);
edited_ids; INDEX(edited_table; ; 1);
included; ISERROR(XMATCH(ids; edited_ids; 0; 1));
filtered_original_table; FILTER(original_tables; included; "");
VSTACK(filtered_original_table; edited_table)
)
VSTACK(DK6:DW14; DK19:DW22)
结合了 table1 和 table2。
ISERROR(XMATCH(ids; edited_ids; 0; 1)
检查哪些 ID 未包含在“编辑表”中。
FILTER(original_tables; included; "")
过滤掉“已编辑表”中的 ID
VSTACK(filtered_original_table; edited_table)
合并了过滤后的表1+表2 和编辑后的表。