楼主: reduce_fat
957 11

[问答] 重金悬赏怎么用SAS 自动检查Excel里的不同 [推广有奖]

荣誉版主

海外论坛首席管理员

已卖:18504份资源

泰斗

28%

还不是VIP/贵宾

-

TA的文库  其他...

海外原创经济论文和写作技巧

威望
11
论坛币
3591257 个
通用积分
34054.8393
学术水平
6834 点
热心指数
7193 点
信用等级
6665 点
经验
1830 点
帖子
12424
精华
78
在线时间
1974 小时
注册时间
2011-6-13
最后登录
2025-10-23

一级伯乐勋章 初级热心勋章 初级学术勋章 中级热心勋章 中级学术勋章 高级学术勋章 初级信用勋章 特级学术勋章 高级热心勋章 中级信用勋章 特级热心勋章 高级信用勋章 特级信用勋章

楼主
reduce_fat 发表于 2015-1-19 07:48:23 |AI写论文
200论坛币
200 金币重金悬赏,现在有两个Excel  Workbooks 一个叫data one 另一个叫data two 怎么样才能用SAS 自动检查两个workbook 里的不同之处呢?

Data One.xlsx (9.92 KB)

Data Two.xlsx (10.89 KB)


我定义了三个tabs, data one 里有三个是april, march, june. data two 里有三个对应的是 good, better, best. 其中good 理应和march 对比,better 理应和april 对比,best 理应和june 对比。理想的结果是这些经过对比的tabs 里面的数据应该完全一致,不论里面有什么,顺序,数字,名字,还是table 开始的位置,比如附件里的tabs 有些是从 D列开始的,但有些从C 列开始。  但是两个workbooks 里的顺序乱了,不是一下就看出来的。 我用红色的标记出不同的数据。为了方便和SAS产生的结果对比。 

如果一个一个对比,假如我给你10 个workbooks, 每个workbook 都有30个以上tabs 全部打乱顺序,并且不告诉你其中哪些应该和哪些对位,应该怎么解决呢?

data one 和 data two 只是个例子,但我想要的是一个对比过程,即使数据更大更复杂也可以用类似的过程进行对比。 可以用SAS自动对比所有的不同名字的tabs吗? 

这个名字不同可以大体检查一下哪几个tabs应该对应。但是每个tab 就是一个table, 要确保一个workbook里的每个table里的数据都和另一个workbook里的所对应的每个table里的数据都一样。这用excel里的match和横竖lookup得查找半天。 

能用SAS自动得出哪些tabs 里的哪些数据不同吗? 先把例子中的问题解决,我后来提出的那个普遍且更难的问题,可以慢慢解决,但要保证正确。 

200金币仅表谢意,不够可以加,这个问题比较复杂的。 如果能全部尽可能自动的在SAS里对比,会获得更多的奖励。 

金币不是问题。可以到留学10区领取更多。 

最佳答案

yongyitian 查看完整内容

/* 用 proc Compare, 最简单的用法如下。其他用法在这里 */ http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000057814.htm * June - Best, April-better, March-Good; proc compare data=june compare=best; run; proc compare data=April compare=Better; run; proc compare data=March compare=Good; run;
关键词:EXCEL 重金悬赏 xcel exce cel Excel
复制粘贴积分链接 https://bbs.pinggu.org/ext8_airdrop.php?airdropfrom^^uid=2669999

沙发
yongyitian 发表于 2015-1-19 07:48:24
/* 用 proc Compare, 最简单的用法如下。其他用法在这里 */
http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000057814.htm


* June - Best, April-better, March-Good;
proc compare data=june compare=best;
run;

proc compare data=April compare=Better;
run;

proc compare data=March compare=Good;
run;
已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
reduce_fat + 100 + 5 + 5 + 5 热心帮助其他会员

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

藤椅
heric221 在职认证  发表于 2015-1-19 08:23:41
不懂SAS,楼主核对下附件,应该是:good和March、better和April、Best和June一一对应吧。
不懂意思,是不是在sub1-sub12以及var1-var6排序相同的情况下,比较两个sheets的不同之处?
还是在sub1-sub12以及var-var6排序都不同的情况下,比较两个sheets的不同之处?
已有 1 人评分经验 热心指数 信用等级 收起 理由
reduce_fat + 100 + 5 + 5 热心帮助其他会员

总评分: 经验 + 100  热心指数 + 5  信用等级 + 5   查看全部评分

板凳
reduce_fat 发表于 2015-1-19 09:25:54
heric221 发表于 2015-1-19 08:23
不懂SAS,楼主核对下附件,应该是:good和March、better和April、Best和June一一对应吧。
不懂意思,是不是 ...
不好意思把字打错了,只是个例子。 那些名字没有意义的,我想要解决问题的方法。

报纸
reduce_fat 发表于 2015-1-19 09:31:34
heric221 发表于 2015-1-19 08:23
不懂SAS,楼主核对下附件,应该是:good和March、better和April、Best和June一一对应吧。
不懂意思,是不是 ...
我的意思是让任何一个workbook 和另一个workbook里面应当对应的tab 也就是table 里的所有数据都一样。 比如说你大体扫描了一下两个tab 知道,good 和 march 应该对应但是不确定两个table 中的数据是否完全一致。万一有不同应该怎么找?

不能用match 找,那样太慢了,一个tab 一个tab 的查会很耗时间。 所以我想SAS 应该可以把这个查验过程自动化,等高手解答。

地板
reduce_fat 发表于 2015-1-19 10:08:45
yongyitian 发表于 2015-1-19 09:56
/* 用 proc Compare, 最简单的用法如下。其他用法在这里 */
http://support.sas.com/documentation/cdl/en ...
谢谢拉,但是你看我的数据了吗? 每个table 第一列或前两或三列都是没有变量名字的其中的数据也是分及的例如0-5,6-10,11-15, 之类的,SAS 需要给个变量名字才能对比不规则的列吧?

我不能修改数据中的任何东西,如果有不同,只要记录下来就可以,因为这东西不是我弄的,只负责检查。

7
sushe1527 发表于 2015-1-19 10:11:24
better 理应和april 对比,best 理应和june 对比
这个是变量名挺重要的,只要对应关系确定了,其余列可以不用管

8
yongyitian 发表于 2015-1-19 10:25:39
reduce_fat 发表于 2015-1-19 10:08
谢谢拉,但是你看我的数据了吗? 每个table 第一列或前两或三列都是没有变量名字的其中的数据也是分及的例 ...
Proc import 时对缺少变量名的列回自动生成一个变量名,没有数据的列会被忽略。

proc compare 的结果可以输出到数据集里。要输出那些内容须要查guide。
也可以直接将 proc compare; 的 output 存成 txt 文件。

当然,数据多的话,还可以写成宏。

一个结果是这样的.

April_Better.GIF

9
heric221 在职认证  发表于 2015-1-19 14:21:32
可以复制到同一个WorkBook中吗?如果可以的话,在Excel中设置“条件格式”便可甄别出不同的数据。
前提:要核对的两组数据中的ID和变量排列顺序得相同
效果见附件

Data_One示例.rar
下载链接: https://bbs.pinggu.org/a-1716514.html

7.84 KB

本附件包括:

  • Data_One示例.xlsx

已有 1 人评分经验 收起 理由
reduce_fat + 80 鼓励积极发帖讨论

总评分: 经验 + 80   查看全部评分

10
heric221 在职认证  发表于 2015-1-19 14:29:31
reduce_fat 发表于 2015-1-19 09:31
我的意思是让任何一个workbook 和另一个workbook里面应当对应的tab 也就是table 里的所有数据都一样。 比 ...
不会SAS,一直用Excel处理数据,稍微复杂的可能需要用到VBA。
你看下数据可不可以复制,如果可以的话,在Excel中便可自动甄别出不同的数据。
前提:列数没超过16384,行数没超过1048576。
已有 1 人评分经验 收起 理由
reduce_fat + 80 鼓励积极发帖讨论

总评分: 经验 + 80   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 13:33