用access和excel进行数据分析总结

来源:范文网 3.09W

#数据库操作(如表的合并,跨表查询,统计最大最小数值等)适合用access完成

用access和excel进行数据分析总结

#excel适合处理二维表,对单元格的简单计算,如下是典型的二维表


600600600601600602600603600604

青岛啤酒方正科技广电电子ST兴业二纺机
2002-1-47.4613.0210.0411.089.27
2002-1-77.3112.99.9211.18.85
2002-1-87.312.999.9511.118.73
2002-1-97.1912.9210.0411.448.25
2002-1-107.3512.9410.0911.958.4
2002-1-117.2812.669.7711.688.04
2002-1-147.0812.019.511.547.73
2002-1-156.9912.028.9511.347.67
2002-1-167.1511.998.9311.157.88
2002-1-176.9111.588.410.047.19
2002-1-186.911.378.29.346.9

#一般思路: 对于原始的excel表,先利用access的SQL语句进行分组,排序,跨表合并

根据具体要求再利用excel的`公式或VBA完成其他复杂的功能

几点经验:

ss中要进行跨表查询,必须先建立"关系",可使用工具->关系菜单进行设置

2. 常见SQL语句

a)最大最小,排序处理

SELECT AFE_cast_Stkcd, AFE_, Min(AFE__DAYS_ELAPSED) AS RAW_DAYS_ELAPSED之最小值, Max(AFE__DAYS_ELAPSED) AS RAW_DAYS_ELAPSED之最大值

FROM AFE_statv2ACCURACY

GROUP BY AFE_cast_Stkcd, AFE_

ORDER BY AFE_cast_Stkcd, AFE_;

b)删除数据

DELETE *

FROM AFE_statv2无空项

WHERE AFE_statv2无空项cast_AFE最大值=AFE_statv2无空项cast_AFE最小值

c) 表的连接:

INNER JOIN保留公共数据,LEFT JOIN和RIGHT JOIN分别完整保留左,右表数据,必要时通过DISTINCT参数去除重复的记录

d)日期函数 Year等

3. excel VBA代码分析

Public Sub firstVBA()

Dim thisdate As Date

Dim wday As Integer

Dim rno As Integer

Dim stkcd As String

Dim ananm As String

Dim findStk1 As Range

Dim findStk2 As Range

Dim findStk3 As Range

Dim findStk6 As Range

Dim findStk7 As Range

Dim findStk8 As Range

Dim findStk9 As Range

Dim findStk10 As Range

Dim findIndex As Range

Dim findDate As Range

Dim TwoDayB As Integer

Dim TwoDayA As Integer

Dim OneDayB As Integer

Dim OneDayA As Integer

Dim FindCol As Integer

Dim CR_FIVE As Double

Dim CR_THREE As Double

Dim Revp As Double

Dim indexTwoDayB As Integer

Dim indexTwoDayA As Integer

Dim indexOneDayB As Integer

Dim indexOneDayA As Integer

Dim CR_Index_FIVE As Double

Dim CR_Index_THREE As Double

Sheet11是最终存放结果的表,Sheet1-3,6-10存放了各日各股票的价格,sheet5存放上证,深证指数

For rno = 2 To 6864

stkcd = e("A" & rno)e 查找股票代码

thisdate = e("E" & rno)e 查找日期

Set findStk1 = e("1:1")(stkcd)

Set findStk2 = e("1:1")(stkcd)

Set findStk3 = e("1:1")(stkcd)

Set findStk6 = e("1:1")(stkcd)

Set findStk7 = e("1:1")(stkcd)

Set findStk8 = e("1:1")(stkcd)

Set findStk9 = e("1:1")(stkcd)

Set findStk10 = e("1:1")(stkcd)

查找股票在哪张表中

If Not findStk1 Is Nothing Then

Set findStk = findStk1

Sheets("sz_stk1")ct

ElseIf Not findStk2 Is Nothing Then

Set findStk = findStk2

Sheets("sz_stk2")ct

ElseIf Not findStk3 Is Nothing Then

Set findStk = findStk3

Sheets("sz_stk34")ct

ElseIf Not findStk6 Is Nothing Then

Set findStk = findStk6

Sheets("sh_stk1")ct

ElseIf Not findStk7 Is Nothing Then

Set findStk = findStk7

Sheets("sh_stk2")ct

ElseIf Not findStk8 Is Nothing Then

Set findStk8 = findStk8

Sheets("sh_stk3")ct

ElseIf Not findStk9 Is Nothing Then

Set findStk = findStk9

Sheets("sh_stk4")ct

ElseIf Not findStk10 Is Nothing Then

Set findStk = findStk10

Sheets("sh_stk5")

热门标签