我有一些需要比较的excel表(Excel 2003)中有近250行的数据。感谢有人可以帮助我使用vlookup /任何其他可以帮助我实现这一目标的excel例程。如何过滤掉失败的结果?来自我的Excel工作表的一些示例数据:
Condition to check:
Where $E = $Q
Check if rows ($F - $K) = rows($R to $w)
Rows ( E - K )
1000xyz400100xyzA00680xyz0 19722.83 19565.7 157.13 11 2.74 11.00
1000xyz400100xyzA00682xyz0 7210.68 4111.53 3099.15 216.95 1.21 216.94
1000xyz430200xyzA00651xyz0 146.70 0.00 0.00 0.00 0.00 0.00
Rows (Q - W )
1000xyz400100xyzA00680xyz0 19722.83 19565.70 11.00 13.74 2.74 11.00
1000xyz400100xyzA00682xyz0 7210.68 4111.53 216.94 218.15 1.21 216.94
另一个问题是,在我检查之前是否需要执行排序,或者vlookup是否能够处理未排序的数据。
答案 0 :(得分:0)
假设q1和q2都是YES,我建议你使用一些(临时)列来验证你的表。该示例显示了您通常用于此类问题的功能:
column : L
heading: "FoundInQ"
formula: =NOT(ISNA(VLOOKUP(E2;$Q:$Q;1;FALSE)))
purpose: check if key found in E2 is present anywhere in column Q
comment: if Vlookup with the FALSE option doesn'g find an exact match, it returns #NA
and we make use of that by specifically testing that using ISNA()
E2 is the only relative address, so safe to copy this down your table
column : M
heading: "WhereInQ"
formula: =MATCH(E2;$Q:$Q;0)
purpose: get number of row in Q where key is found
comment: this we don't need directly, it is to illustrate how you get an index for a
search key within a target range. Mind the parameter "0" at the end
column: N
heading: "F equal R"
formula: =F2=INDEX($R:$R;M2)
comment: M2 makes use of the MATCH function above, here split for better clarity
现在你有一些基本的技巧,找到一个键,获得一个关联的值等。你可以组合公式,如将M列中的一个插入到公式N的“M2”参数中,让整个条件有条件地显示在结果上在列L中,展开列N以获得更多相邻列,如
=AND(F2=INDEX($R:$R;M2);G2=INDEX($S:$S;M2);H2=INDEX($T:$T;M2);...)
毋庸置疑,你应该在这些(临时)列中定义一个AutoFilter来分离好坏,并且可以颠倒整个逻辑(从E到Q)。
并且不需要对两个子表进行排序。
那应该解决....
祝你好运MikeD
答案 1 :(得分:0)
首先,如果您最终使用vlookup,就像我在下面给出的示例一样,那么您不需要排序,因为Range_lookup值设置为FALSE,这迫使VLOOKUP仅搜索完全匹配,虽然如果你的初始比较行E或Q中有重复,那么你可能会遇到麻烦而没有找到匹配数据的所有实例。
下面的公式首先检查第一个条件是否匹配,然后将6个后续列中的每个列与其对应列进行比较。如果没有初始匹配,则此特定公式仅返回“未找到”,如果所有行与其对应的行匹配则返回“全部正常”,或者如果一个或多个不匹配则返回“不正常”。要获取有关哪个字段是notequal的信息,那么您需要拆分AND函数以返回列详细信息。
=IF(ISNA(VLOOKUP(E1,$Q$1:$W$2,2,FALSE)),"Not Found",IF(AND(F1=VLOOKUP(E1,$Q$1:$W$2,2,FALSE),G1=VLOOKUP(E1,$Q$1:$W$2,3,FALSE),H1=VLOOKUP(E1,$Q$1:$W$2,4,FALSE),I1=VLOOKUP(E1,$Q$1:$W$2,5,FALSE),J1=VLOOKUP(E1,$Q$1:$W$2,6,FALSE),K1=VLOOKUP(E1,$Q$1:$W$2,7,FALSE)),"All OK","Not OK"))
要使用它,只需将其放入与数据集相邻的列中即可。