有一个Excel在两个Sheet中含有有两年的数据,每一年的数据都是由一个key和与其对应的一些值组成,两年的key有部分是一样的,要求算出这两年的相同key所对应的值的差,开始准备写个程序计算一下,不过仔细想过之后,用Excel本身带的公式就能实现这样的功能。

有一个Excel在两个Sheet中含有有两年的数据,每一年的数据都是由一个key和与其对应的一些值组成,两年的key有部分是一样的,要求算出这两年的相同key所对应的值的差,开始准备写个程序计算一下,不过仔细想过之后,用Excel本身带的公式就能实现这样的功能。
具体方法如下:
假设有现有两个Sheet,分别是Sheet1和Sheet2,
内容如下
Sheet1


主键

金额(2006)

1

10

2

20

3

30

4

40

5

50

6

60

Sheet2


主键

金额(2007)

1

1

2

55

3

5

4

30

6

8

实现步骤
一、 遍历Sheet1中的主键,把同时出现在Sheet1和Sheet2中的主键找出来。 
         使用函数 =IF(COUNTIF(,)=1,,"")
         例 =IF(COUNTIF(Sheet2!A:A,Sheet1!A2)=1,Sheet1!A2,"")
         使用地方 Sheet3的 主键 列
  
          COUNTIF函数是查找Sheet1中的主键在Sheet2中出现的次数,
           如果次数等于1则说明这个 主键 在Sheet2中也存在,就是有相同的。
  
           用IF函数判断一下如果有相同的则把Sheet1中的这个主键取出来
           没有相同的就添个空格

二、 根据第一步取出的 主键到Sheet1中把对应的金额取出来 
            使用函数 =SUMIF(,,)
            例 =SUMIF(Sheet1!A:A,A3,Sheet1!B:B)
            使用地方 Sheet3的 金额2006 列
  
             SUMIF是有条件的加法函数,就是只有把满足条件的单元个的内容加起来

三、 用第二步相同的方法,去出Sheet2中的金额。 
              使用地方 Sheet3的 金额2007 列
  
  
四、 用第三步取出的金额 减去 第二步取出的金额,即是想要得结果 

-
              例 =C3-B3
              使用地方 Sheet3的 差额2007 - 2006 列

Sheet3(结果)


金额

金额

差额

主键

2006

2007

2007 - 2006

1

10

1

-9

2

20

55

35

3

30

5

-25

4

40

30

-10


0

0

0

6

60

8

-52


后面差额红色的使用条件格式实现的。