Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3326|回复: 13

两张表中条件循环查询求和

[复制链接]
发表于 2019-10-1 00:24 | 显示全部楼层 |阅读模式
本帖最后由 爱很简单 于 2019-10-1 11:51 编辑

在一张表中条件循环查询的功能已实现,现在增加了一张表,即在两张表中条件循环查询求和,求修改,谢谢。。。。。。。。

在两张表中循环查询求和.rar

14.06 KB, 下载次数: 6

发表于 2019-10-5 22:13 | 显示全部楼层
把这一段代码全部删掉或注释掉:
  1.     Set d = CreateObject("scripting.dictionary") '建立字典控件
  2.     For Each sh In Sheets '在所有工作表中循环
  3.         ……
  4.     Next sh '结束工作表循环
复制代码


改为以下代码(没有新定义任何变量,利用已有 d、i、n 变量):
  1.     With Sheets("问题一")
  2.         ' 得到 A 列地址数据最后一行行号
  3.         n = .Cells(Rows.Count, "A").End(xlUp).Row
  4.         
  5.         ' 如果没有输入地址则退出过程
  6.         If n < 7 Then Exit Sub
  7.         
  8.         Set d = CreateObject("scripting.dictionary") '建立字典控件
  9.         For i = 7 To n
  10.             d(Trim(.Range("A" & i).Value)) = ""
  11.         Next
  12.     End With
复制代码


其他代码不修改。
回复

使用道具 举报

发表于 2019-10-5 12:38 | 显示全部楼层
回复

使用道具 举报

发表于 2019-10-5 15:43 | 显示全部楼层
这两个数据库有啥区别?
先用程序合并两个数据库,然后就转换为对一个数据库查询了。
回复

使用道具 举报

 楼主| 发表于 2019-10-5 15:58 | 显示全部楼层
rardge2015 发表于 2019-10-5 15:43
这两个数据库有啥区别?
先用程序合并两个数据库,然后就转换为对一个数据库查询了。

就是区别很大。。。。。。。想直接在两张表中查找。
回复

使用道具 举报

发表于 2019-10-5 16:12 | 显示全部楼层
本帖最后由 rardge2015 于 2019-10-5 16:21 编辑

需要知道两个数据库的关联关系,然后按一定的逻辑合并提取记录,比如内连接、外连接等。
否则,你以哪个数据库的记录为准呢?从给出的示例来看,结果所需要的数据,在两个数据库中都有。

补充:整理数据库,其实就是去除重复。
先循环一个表,去重;
在此基础上再对另外一个表去重;
以上两步得到一个没有重复的二维数组;
然后,再根据年龄作为判定条件,循环处理。

回复

使用道具 举报

 楼主| 发表于 2019-10-5 17:06 | 显示全部楼层
rardge2015 发表于 2019-10-5 16:12
需要知道两个数据库的关联关系,然后按一定的逻辑合并提取记录,比如内连接、外连接等。
否则,你以哪个数 ...

就是在两个数据库中查询。。。。。已经写出来了(结果都是对的),但是有个问题,问题一种的 A列是自动生成的, 我想要的是:比如[A6:A10]或者【A6:A20】不用去重的方法,能不能实现???????也就是A列不要自动生成,根据A列的数据去查找。

在两张表中循环查询求和(111).rar

22.25 KB, 下载次数: 5

回复

使用道具 举报

发表于 2019-10-5 18:21 | 显示全部楼层
去重是为了得到一个地址列表。如果[A6:An]是你手工输入,隐含的意思就是不会重复,所以可以直接把[A6:An]读入字典作为 key,这样你的程序就不用大动了。
回复

使用道具 举报

 楼主| 发表于 2019-10-5 20:17 | 显示全部楼层
rardge2015 发表于 2019-10-5 18:21
去重是为了得到一个地址列表。如果[A6:An]是你手工输入,隐含的意思就是不会重复,所以可以直接把[A6:An]读 ...

恩恩,就是这个意思,这么怎么修改呢?谢谢您
回复

使用道具 举报

 楼主| 发表于 2019-10-5 20:18 | 显示全部楼层
rardge2015 发表于 2019-10-5 18:21
去重是为了得到一个地址列表。如果[A6:An]是你手工输入,隐含的意思就是不会重复,所以可以直接把[A6:An]读 ...

不会重复的。。。。。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 08:29 , Processed in 0.447520 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表