楼主: everyup
4572 25

[其他] 1000论坛币求助 excel 多条件筛选数据问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:23份资源

讲师

81%

还不是VIP/贵宾

-

威望
0
论坛币
44 个
通用积分
0.3000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
21130 点
帖子
208
精华
0
在线时间
1050 小时
注册时间
2008-10-11
最后登录
2016-7-20

楼主
everyup 发表于 2012-3-4 15:45:44 |AI写论文
1000论坛币
请教excel 高手 , 我想筛选主力期货合约的结算价,按照持仓量最大的是主力合约的条件筛选。 我表达可能有问题,就截了个图,以沪铜为例          这是数据下载地址 http://www.shfe.com.cn/historyData/MarketData_Year_2009.zip     抱歉下面这幅图弄错了,怎么删不掉啊
附件: 你需要登录才可以下载或查看附件。没有帐号?我要注册

最佳答案

IHideMyself 查看完整内容

分几个步骤处理。 1. 把合并的单元格(合约名称)拆开,被拆开的每个单元格用合约名称填充(用了VBA) 2. 加一列"简写",就是截取合约的前两个字母(left()函数),以便把不同金属分开 3. 排序。条件一是"简写",条件二是"日期",条件三是"持仓量" 4. 删除每个日期的非最大持仓合约。这个我是用VBA做的,Excel 2010也可以用Data下面的Remove Duplicates(不过要手动对每种金属分别操作) 我觉得用excel本身的VLOOKUP()函数 ...
关键词:1000论坛币 EXCEL 条件筛选 筛选数据 xcel excel 数据 筛选
80 字节以内
不支持自定义 Discuz! 代码

沙发
IHideMyself 发表于 2012-3-4 15:45:45
everyup 发表于 2012-3-5 17:35
谢谢,能否注明下这个公式怎样套用,以后我就可以自己来了。
分几个步骤处理。
1. 把合并的单元格(合约名称)拆开,被拆开的每个单元格用合约名称填充(用了VBA)
2. 加一列"简写",就是截取合约的前两个字母(left()函数),以便把不同金属分开
3. 排序。条件一是"简写",条件二是"日期",条件三是"持仓量"
4. 删除每个日期的非最大持仓合约。这个我是用VBA做的,Excel 2010也可以用Data下面的Remove Duplicates(不过要手动对每种金属分别操作)

我觉得用excel本身的VLOOKUP()函数应该也能办到,但我对excel自带函数不太熟。VBA在16楼的压缩包里,写得比较乱可能难以理解。
话说rijating1也蛮辛苦的,如果悬赏可以分开的话就分开吧。

藤椅
子虚和迈迈 发表于 2012-3-4 15:53:06
楼主,虽然我自己不会,但是我还是要感慨一句:你好生大方啊~~~~

板凳
everyup 发表于 2012-3-4 15:55:53
子虚和迈迈 发表于 2012-3-4 15:53
楼主,虽然我自己不会,但是我还是要感慨一句:你好生大方啊~~~~
我自己花了很长时间也没解决这个问题   
80 字节以内
不支持自定义 Discuz! 代码

报纸
炫之石 发表于 2012-3-4 15:55:54
楼主可以看看这个,不知道能不能帮上你!

使用高级条件筛选
在可用作条件区域的数据清单上插入至少三个空白行。条件区域必须具有列标志。请确保在条件值与数据清单之间至少留了一个空白行。

事例:

类型 销售人员 销售



类型 销售人员 销售
饮料 Suyama 5122
肉类 Davolio 450
农产品 Buchanan 6328
农产品 Davolio 6544

在列标志下面的一行中,键入所要匹配的条件。
条件示例

单列上具有多个条件

如果对于某一列具有两个或多个筛选条件,那么可直接在各行中从上到下依次键入各个条件。例如,下面的条件区域显示“销售人员”列中包含“Davolio”、“Buchanan”或“Suyama”的行。

销售人员
Davolio
Buchanan
Suyama

多列上具有单个条件

若要在两列或多列中查找满足单个条件的数据,请在条件区域的同一行中输入所有条件。例如,下面的条件区域将显示所有在“类型”列中包含“农产品”、在“销售人员”列中包含“Davolio”且“销售额”大于 $1,000 的数据行。

类型 销售人员 销售
农产品 Davolio >1000

某一列或另一列上具有单个条件

若要找到满足一列条件或另一列条件的数据,请在条件区域的不同行中输入条件。例如,下面的条件区域将显示所有在“类型”列中包含“农产品”、在“销售人员”列中包含“Davolio”或销售额大于 $1,000 的行。

类型 销售人员 销售
农产品
Davolio
>1000

两列上具有两组条件之一

若要找到满足两组条件(每一组条件都包含针对多列的条件)之一的数据行,请在各行中键入条件。例如,下面的条件区域将显示所有在“销售人员”列中包含“Davolio”且销售额大于 $3,000 的行,同时也显示“Buchanan”销售商的销售额大于 $1,500 的行。

销售人员 销售
Davolio >3000
Buchanan >1500

一列有两组以上条件

若要找到满足两组以上条件的行,请用相同的列标包括多列。例如,下面条件区域显示介于 5,000 和 8,000 之间以及少于 500 的销售额。

销售 销售
>5000 <8000
<500

将公式结果用作条件

可以将公式的计算结果作为条件使用。用公式创建条件时,不要将列标志作为条件标记使用,应该将条件标记置空,或者使用清单中非列标志的标记。例如,下面的条件区域显示在列 C 中,其值大于单元格区域 C7:C10 平均值的行。


=C7>AVERAGE($C$7:$C$10)

注意

用作条件的公式必须使用相对引用来引用列标志(例如,“销售”),或者引用第一个记录的对应字段。公式中的所有其他引用都必须是绝对引用,并且公式必须计算出结果 TRUE 或 FALSE。在本公式示例中,C7 引用了数据清单中第一个记录(行 7)的字段(列 C)。
您可以在公式中使用列标志来代替相对的单元格引用或区域名称。当 Microsoft Excel 在包含条件的单元格中显示错误值 #NAME? 或 #VALUE! 时,您可以忽略这些错误,因为它们不影响列表的筛选。
Microsoft Excel 在计算数据时不区分大小写。
所有以该文本开始的项都将被筛选。例如,如果您键入文本“Dav”作为条件,Microsoft Excel 将查找“Davolio”、“David”和“Davis”。如果只匹配指定的文本,可键入下面的公式,其中“text”是需要查找的文本。 =''=text''

如果要查找某些字符相同但其他字符不一定相同的文本值,则可使用通配符。

通配符

以下通配符可作为筛选以及查找和替换内容时的比较条件。

请使用 若要查找
?(问号) 任何单个字符
例如,sm?th 查找“smith”和“smyth”
*(星号) 任何字符数
例如,*east 查找“Northeast”和“Southeast”
~(波形符)后跟 ?、* 或 ~ 问号、星号或波形符
例如,“fy91~?”将会查找“fy91?”

单击数据清单中的单元格。
在“数据”菜单上,指向“筛选”,再单击“高级筛选”。
如果要通过隐藏不符合条件的数据行来筛选数据清单,可单击“在原有区域显示筛选结果”。
若要通过将符合条件的数据行复制到工作表的其他位置来筛选数据清单,请单击“将筛选结果复制到其他位置”,再在“复制到”编辑框中单击鼠标,然后单击粘贴区域的左上角。

在“条件区域”编辑框中,输入条件区域的引用,并包括条件标志。
如果要在选择条件区域时暂时将“高级筛选”对话框移走,请单击“压缩对话框” 。
若要更改筛选数据的方式,可更改条件区域中的值,并再次筛选数据。
海纳百川 难免泥沙俱下

地板
焰在江湖 发表于 2012-3-4 15:59:07
好生羡慕你们这些金融从业者

7
杀手11 发表于 2012-3-4 16:46:58
“主力期货合约的结算价,按照持仓量最大的是主力合约的条件筛选。”这个专业术语不理解

8
龙2011龙 发表于 2012-3-4 18:10:30
你用07版的还是03版的啊

9
everyup 发表于 2012-3-4 18:14:55
龙2011龙 发表于 2012-3-4 18:10
你用07版的还是03版的啊
office我自己可以去下载,03,07,10都可以
80 字节以内
不支持自定义 Discuz! 代码

10
jiangwu1988 发表于 2012-3-4 19:12:50
牛人

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-27 21:01