Excel比较XML表的参数值

时间:2013-12-07 08:39:25

标签: excel excel-vba formula vba

我是Excel新手,我在Excel中有两个(Book1,Sheet1和Book2,Sheet1)XML表,如下例所示 -

Book1, Sheet1 (Column - O (value, it can be numeric/alphanumeric/alphabets) & P (parameter name), total 12000 row):

EMERALD Name                                                      
2   ForPS  
10  InitWait   
11  1stInterv   
20  Interv   
10  UL_DLcapacity   
2   ChangeOrigin   
0   LCSfunct305          
70  TraceVertAccur  

Book2, SHeet1 (Column - O & P, total 12000 row):


11  1stInterv    
26  Interv    
0   LCSfunct305   
RUBY    Name     
2   ForPS    
10  InitWait         
10  UL_DLcapacity       
2   ChangeOrigin  

Excel需要执行以下操作(我不确定宏或公式会更好) -

  • 对于O列(Book1,Sheet1)中的参数值,找到 book2,sheet1,列O和中该参数的相应值 那么如果值不同,请更改颜色(例如 - 粉红色)Book1,Sheet1 Column P。
  • 中该参数名称的单元格
  • 如果找不到book1& sheet1&列P中的任何参数名称 Book2& Sheet1&列P然后改变颜色(例如 - 红色) book1& sheet1& column P。
  • 中的corrusponding参数单元格

有人可以帮助我吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

好的,这就是你需要做的事情

  • book1 and book2中交换所讨论的列 早些时候(Value will move to column P and Parameter Name will move to Column O
  • book2 in columnQ中插入以下公式 =P1-VLOOKUP($O1,[book1.xlsx]Sheet1!O$1:P$8,2,0)这基本上是为每个book1找到Parameter Name的相应值,然后从book2中的值中减去自己。如果未找到该值,则会返回error (#N/A)
  • 现在要更改参数名称的颜色,我们需要像这样使用Conditional Formatting
  • first Item
  • 中选择column o上的book2
  • 点击Conditional Formattinghome tab menu
  • 上的Click on New rule
  • Click on Use a formula to determine which cell to format
  • Edit the Rule Description上使用此公式=ISERROR($Q1)并将字体/背景格式化为所需的颜色。这将突出显示book1
  • 中找不到的任何值
  • 再次点击Conditional Formattinghome tab menu
  • 上的Click on New rule
  • Edit the Rule Description上使用此公式=$Q1<>0 并将字体/背景格式化为所需的颜色。这将 突出显示与book1
  • 中不同的任何值
  • 最后,您需要将格式从first item复制到book2 column o中的其他项目。复制第一项并使用paste special并仅在其余项目中粘贴format(如果您愿意,则仅粘贴整个column O)。对于特殊粘贴,您还可以复制第一个项目并使用快捷键(ALT-> E-> S-> T)仅限格式

Working Solution for your reference