文章目录
  1. 1. 要求
  2. 2. 解决方法
  3. 3. 顺便说点Vlookup
  4. 4. PS.和这次的例子Excel文件:

要求

和行政部门坐在一起一般来说都会有许多怪怪的Excel问题问过来,今天人事的同事又来问了我一个Excel的问题:

如何让数据透视表里面显示值而不是统计数?

当时我就莫名了…问了问到底要什么,原来是同事做了张表,里面有一些信息,然后要做一张统计表把存在的填进去,不存在的就空着。


原始表的样子(大致的,当然是胡诌的数据)

要做出来的样子

数据透视表是这样的


解决方法

首先用数据透视表是肯定没戏的,这个东西本来就是用来统计的,而且直接填充值的话也有一些逻辑上的错误

所以曲线救国吧,我们只要针对这些关键字查找一下,有的话就把值填进去,没的话就空着。
先构造一下空的表单

同时在原来的表里面插个第一列,公式是:
=[@Co]&[@JF]&[@[Grade ]]&[@Position]

完了可以把这列隐藏掉,Hidden少了个d大家请无视……
然后简单填一个公式:
=IF(ISERROR(VLOOKUP(C$2&C$1&$A3&$B3,Sheet1!$A:$E,1,FALSE)),"",$B3)
往下拉一下,往右拉一下,完成。函数还是很好用的.

解释一下,为了查找匹配几个值,当然有更先进的办法,不过最简单的还是把那几个值串在一起,这样直接一个Vlookup就可以解决了,在Sheet2的查找公式里面要注意的是那几个引用,引用没问题就没问题了。

顺便说点Vlookup

Vlookup这个函数名声在外,基本每次我说要做点Excel的培训的时候,都会有人来问是不是讲Vlookup,我当时还觉得蛮奇怪的,因为Vlookup其实是个很简单的函数啊,有什么要讲的?
后来做过几次培训,知道了,其实大部分问题都出现在几个点上,这几个点很多书啊什么的都没讲清楚。
Vlookup的作用是我在A表里面有个值,我用这个值去B表里面查一下,查到的话就返回B表中定位的这个格子的那一行你指定列的数字
函数语法:

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

关键点有一下几个:

  1. Lookup_value为需要在数据表第一列中进行查找的数值。多少人一开始就栽在了这个第一列上
  2. 引用,很多人第一个格子做得很好,结果一拖,就都是Error了。以我们上面的那个例子为例,用了几种绝对引用,对于匹配查找第一列的Grade和第二列的Position,因为列数不需要变,拖动的时候只要改变行数就行了,所以用$A3和$B3,固定A和B这两个列号,这样拖动填充的时候就只会有行号的变化,同理,JF和Co因为行不变,所以只要变列号就行,引用就是用C$1和C$2这样固定在第一列和第二列,往下拖的话就是D,E,F这样下去,往右拖动整个数据不变。
  3. 区域的引用,这个也很多人犯错,一般来说,在用lookup的时候记得把区域设置成绝对引用例如这里的Sheet1!$A:$E,不管怎么拖动,保证只在从A列到E列里面进行查找。这个错误也经常发生,要注意避免
    这几点不出问题的话,一般来说lookup就没什么问题了。

PS.和这次的例子Excel文件:

PS.后来人事的同事自己想了个办法解决了这个问题,她还是构造了数据透视表,然后又建了张新的表然后用IF判断一下数据透视表里面那个格子有没有值,有的话就填充一下。理解起来比我的方法简单不少,不过我的办法么可以少画张表…就这点好处了 :P
Lookup例子