24小时热门版块排行榜    

查看: 1768  |  回复: 31

anntoy

木虫 (著名写手)

【答案】应助回帖

对了,还要把宏的安全性设置到最低,要不然不让运行
“工具”->“宏”->“安全性”:低
21楼2012-10-05 19:42:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cmwuyan

铜虫 (正式写手)

必须的 谢谢
因为不知道所以知道
22楼2012-10-05 20:31:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dedream

木虫 (正式写手)

引用回帖:
19楼: Originally posted by shinevip at 2012-10-05 17:24:35
LZ改一下python 脚本里面文件名 就可以...

LST_in = open('lmh.txt', mode='r')
DES_out = open('cmpd_info.txt', mode='w')

for line in LST_in:

      LST_fields = line.split()
      number = LST_ ...

运行了以后,cmpd_info.txt是空的,等我再看看代码
从数据到结论
23楼2012-10-05 20:41:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dedream

木虫 (正式写手)

引用回帖:
20楼: Originally posted by anntoy at 2012-10-05 19:39:19
打开之后按Alt+F11就能打开那个脚本了
表格的内容要按照sheet1那样的格式,可以往下面继续添加条件和数据,结果存放在sheet2,时间那一列你可能要修改一下显示的格式,如果需要修改存放数据的位置……你自己先看看 ...

谢谢,我先看看
从数据到结论
24楼2012-10-05 20:41:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dedream

木虫 (正式写手)

引用回帖:
21楼: Originally posted by anntoy at 2012-10-05 19:42:14
对了,还要把宏的安全性设置到最低,要不然不让运行
“工具”->“宏”->“安全性”:低

我想得到这个效果
第一个表的含量与第二个表对应时间的所有参数对应起来。

这个宏代码倒是看明白了,但修改 不出想要的效果。
anntoy兄能帮忙再看一下吗?

效果

从数据到结论
25楼2012-10-05 21:23:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anntoy

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
dedream: 金币+120, ★★★很有帮助, “l“和”1“太难区分了。。。 2012-10-06 11:41:27
dedream: 金币+30, ★★★很有帮助, 累计200金币,感谢您的帮助 2012-10-06 11:56:33
引用回帖:
25楼: Originally posted by dedream at 2012-10-05 21:23:23
我想得到这个效果
第一个表的含量与第二个表对应时间的所有参数对应起来。

这个宏代码倒是看明白了,但修改 不出想要的效果。
anntoy兄能帮忙再看一下吗?
82/40/317450_1349443302_552.jpg|1
效果
...

还是那个脚本,改成这样就可以了
CODE:
Sub filter()
    Dim n, m, l, k, h
    n = 2
    m = 2
    l = 1
    h = 1
    While Sheets("sheet1").Cells(1, 6 + h) <> ""
        h = h + 1
    Wend
    While (Sheets("sheet1").Cells(m, 6) <> "")
        n = 2
        While (Sheets("sheet1").Cells(n, 1) <> "")
            If Format(Sheets("sheet1").Cells(n, 1), "yyyy/MM/dd hh:mm") = Format(Sheets("sheet1").Cells(m, 6), "yyyy/MM/dd hh:mm") Then
                Sheets("sheet2").Cells(l, 1) = Sheets("sheet1").Cells(n, 2)
                For k = 1 To h
                    Sheets("sheet2").Cells(l, k + 1) = Sheets("sheet1").Cells(m, 5 + k)
                Next
                l = l + 1
                GoTo c
            End If
            n = n + 1
        Wend
c:
        m = m + 1
    Wend
End Sub

26楼2012-10-06 00:01:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shinevip

木虫 (正式写手)

【答案】应助回帖

引用回帖:
23楼: Originally posted by dedream at 2012-10-05 20:41:13
运行了以后,cmpd_info.txt是空的,等我再看看代码...

看了下数据形式, 重新修改了下python 脚本, 以前两列为比较依据, 精确到分钟. 把小数据存成 a.txt, 大数据存成b.txt.  结果就会在results.txt里面. 我还没测试, LZ可先运行下. 有问题再发上来...

LST_in = open('a.txt', mode='r')
DES_out = open('results.txt', mode='w')

for line in LST_in:

      LST_fields = line.split()
      number = LST_fields[0] + LST_fields[1]

      DES_in = open('b.txt', mode='r')

      for line in DES_in:

            DES_fields = line.split()
            compoundid = DES_fields[0] + DES_fields[1]
            if compoundid == number:
               DES_out.writelines(line)

DES_in.close()
DES_out.close()
LST_in.close()
27楼2012-10-06 00:14:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dedream

木虫 (正式写手)

引用回帖:
27楼: Originally posted by shinevip at 2012-10-06 00:14:52
看了下数据形式, 重新修改了下python 脚本, 以前两列为比较依据, 精确到分钟. 把小数据存成 a.txt, 大数据存成b.txt.  结果就会在results.txt里面. 我还没测试, LZ可先运行下. 有问题再发上来...

LST_in = open ...

number = LST_fields[0] + LST_fields[1]
IndexError: list index out of range

我再看看,昨天一直在琢磨那个宏
从数据到结论
28楼2012-10-06 11:54:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shinevip

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
dedream: 金币+180, ★★★很有帮助, 我修改了一下代码,输出2个txt,一个为含量,一个为原来的result,暂时解决问题,多谢您 2012-10-06 14:06:28
引用回帖:
28楼: Originally posted by dedream at 2012-10-06 11:54:54
number = LST_fields + LST_fields
IndexError: list index out of range

我再看看,昨天一直在琢磨那个宏...

超载链接里的文件. 把数据放入a.txt(小) 和b.txt(大) 里面, 直接调用.. 代码已经测试过..
http://pan.baidu.com/share/link?shareid=70652&uk=1093614952
29楼2012-10-06 12:35:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dedream

木虫 (正式写手)

引用回帖:
29楼: Originally posted by shinevip at 2012-10-06 12:35:49
超载链接里的文件. 把数据放入a.txt(小) 和b.txt(大) 里面, 直接调用.. 代码已经测试过..
http://pan.baidu.com/share/link?shareid=70652&uk=1093614952...

测试数据倒是运行正常。
不过这个效率太低了,我有几十M的数据,需要运行8分钟以上,另外我需要的”含量“这个数值,要能和筛选出来的时间对应,放在一个文件里最好。

excel宏基本上实现了这个功能。

我感觉这个是不是可以把两个文件当成矩阵或数组读入,比较筛选以后,一次性的输出。
从数据到结论
30楼2012-10-06 13:24:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dedream 的主题更新
信息提示
请填处理意见