如何快速比对表格数据
TTTEED
共 1370字,需浏览 3分钟
·
2020-12-13 08:37
最近在倒腾一些表格数据,遇到这么个问题:先前下载了一批数据,等再次更新下载时,数目却变少了,我需要快速定位到缺失的条目并探究原因。
如图,左侧 10 条数据是先前下载的,右侧少了 1 条(数据是随便编的):
Python 操作
因为对 Excel 的函数操作不太熟,第一时间我是用 Python 来比对数据的:选取两份表格中的 id 列,分别复制到两份 txt 文档中,转化为 Python 读取 txt 文档数据、列表的相关操作问题。
# 读取两文档中的id数据
with open("001.txt","r") as f:
data1 = f.readlines()
# data1 为 ['20\n', '12\n', '73\n', '44\n', '5\n', '96\n', '127\n', '28\n', '9\n', '1']
with open("002.txt","r") as f:
data2 = f.readlines()
# data2 为 ['9\n', '127\n', '73\n', '44\n', '20\n', '96\n', '1\n', '28\n', '12']
# 对读取到的数据做下简单处理,去掉字符串中的换行符
data1 = [x.strip() for x in data1 ]
data2 = [y.strip() for y in data2 ]
# 选取在 data1 中出现过、但 data2 中却不包含的数据
result = [i for i in data1 if i not in data2 ]
print(result)
# 得到结果 ['5']
根据得到的结果 5 定位到缺失的数据条目。
Excel 操作
拿到结果自然是心满意足继续干活了,闲下来想一般不会编程的文职人员会怎么解决这问题呢?
经过一番搜索,可以直接使用 Excel 的函数。首先随便选定两个表格中的同列数据,放到一个表格中:
选择 C1 处,输入如下公式:
=IF(COUNTIF(B:B,A1)>0,"","少了")
Excel 中 IF 函数:=IF(条件判断, 结果为真返回值, 结果为假返回值)
COUNTIF 函数:=COUNTIF(条件区域,条件),返回满足条件的单元格数目
对 C1 处设置好函数后,鼠标移到右下角,变成十字时点击往下拖覆盖到 C10,便可将该函数自动设置到其它位置,最终得到结果。
“少了”是自定义的提示信息,得到的结果与之前 Python 得出的 "5" 对应的数据是一致的。
问题不大,也挺简单,琢磨琢磨也挺有意思的。
两种解法其实最后的逻辑是相同的,只不过体现在不同的程序和语言上。
解决问题可能几分钟,整理记录却比较耗时,希望能给看到的各位带来点帮助吧~
往期推荐
评论