Excel VBA 实现单元格支持正则是否匹配, 正则替换, 正则匹配字符串

1 篇文章 0 订阅

Excel VBA 实现单元格支持正则是否匹配, 正则替换, 正则匹配字符串

资源下载

https://download.csdn.net/download/weixin_42026002/85201545

操作方法

  1. 打开Excel
  2. 添加开发者工具, 并打开 Visual Basic
  3. 添加模块
  4. 复制以下代码
  5. Excel 另存为支持宏的(*.xlsm)格式
  6. 愉快的使用正则函数吧

函数说明

函数参数说明参数说明参数说明参数说明参数说明
Regex_IsMatchDataRange数据矩阵pattern正则表达式IsIgnoreCase是否忽略大小写
Regex_ReplaceStringDataRange数据矩阵pattern正则表达式replace替换正则IsIgnoreCase是否忽略大小写
Regex_MatchStringDataRange数据矩阵pattern正则表达式IsIgnoreCase是否忽略大小写MaxRowOrCol最大行列匹配矩阵
Regex_MatchStringGroupData数据pattern正则表达式IsIgnoreCase是否忽略大小写MatchPos匹配的项GroupPos匹配的组

例子

Regex_IsMatch

匹配多行

=Regex_IsMatch(B13:B14,“(a.+?)b”,FALSE)

匹配多列

=Regex_IsMatch($B 1 : 1: 1:C$1,“(a.+?)b”,FALSE)

匹配多行多列

=Regex_IsMatch($B 20 : 20: 20:C$21,“(a.+?)b”,FALSE)

Regex_MatchString

匹配多行

=Regex_MatchString($B 13 : 13: 13:B$14,“a.+?b”,FALSE,2)

匹配多列

=Regex_MatchString($B 1 : 1: 1:C$1,“a.+?b”,FALSE,3)

匹配多行多列

=Regex_MatchString($B 20 : 20: 20:C$21,“a.+?b”,FALSE,2)

Regex_ReplaceString

=Regex_ReplaceString($B 20 : 20: 20:C$21,“(a.+?)b”,“$1”,FALSE)

Regex_MatchStringGroup

只能匹配单元格

=Regex_MatchStringGroup(B27,“(.+)_(.+)”,FALSE,0,0)

源代码

'/**
' * @name Regex_IsMatch
' * @brief 返回正则是否匹配单元格集合
' * @version v1.0
' * @author sarjet
' * @date 22.23.15, 15:23
' * @param DataRange 单元格范围
' * @param Pattern 正则表达式
' * @param IgnoreCase 忽略大小写
' * @returns 返回对应多行多列单元格
' * @example
' **/
Public Function Regex_IsMatch(DataRange As Range, Pattern As String, Optional IgnoreCase As Boolean = True) As Variant
    Dim arRes() As Variant  '存储结果的数组
    Dim curRow As Long  '源单元格区域中当前行索引值
    Dim curCol As Long  '源单元格区域中当前列索引值
    Dim cntRows As Long  '行数
    Dim cntCols As Long  '列数
    On Error GoTo ErrHandl
    Regex_IsMatch = arRes
    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = Pattern
    re.Global = True
    re.MultiLine = True
    re.IgnoreCase = IgnoreCase
    cntRows = DataRange.Rows.Count
    cntCols = DataRange.Columns.Count
    ReDim arRes(1 To cntRows, 1 To cntCols)
    For curRow = 1 To cntRows
        For curCol = 1 To cntCols
            arRes(curRow, curCol) = re.Test(DataRange.Cells(curRow, curCol).Value)
        Next
    Next
    Regex_IsMatch = arRes
    Exit Function
ErrHandl:
    Regex_IsMatch = CVErr(xlErrValue)
End Function

'/**
' * @name Regex_MatchString
' * @brief 返回正则匹配的单元格字符串集合
' *        如果字符串是一行多列, 则每列向下延伸结果;
' *        如果是多行一列, 则每行向右延伸结果;
' *        如果是多行多列, 则返回多行多列的第一个匹配的结果
' * @version v1.0
' * @author sarjet
' * @date 22.24.15, 15:24
' * @param DataRange 单元格范围
' * @param Pattern 正则表达式
' * @param IgnoreCase 忽略大小写
' * @param MaxRowOrCol 最大延伸结果, 0: 不限
' * @returns 返回自动识别计算后的多行多列单元格
' * @example
' **/
Public Function Regex_MatchString(DataRange As Range, Pattern As String, Optional IgnoreCase As Boolean = True, Optional MaxRowOrCol As Long = 0) As Variant
    Dim arRes() As String  '存储结果的数组
    Dim curRow As Long  '源单元格区域中当前行索引值
    Dim curCol As Long  '源单元格区域中当前列索引值
    Dim cntRows As Long  '行数
    Dim cntCols As Long  '列数
    Dim getv As Variant
    Dim currMatch, maxMatch As Long
    Dim rdim As Boolean
    Dim matpos As Integer
    rdim = False
    On Error GoTo ErrHandl
    Regex_MatchString = arRes
    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = Pattern
    re.Global = True
    re.MultiLine = True
    re.IgnoreCase = IgnoreCase
    cntRows = DataRange.Rows.Count
    cntCols = DataRange.Columns.Count
    If (cntCols = 1) Then
        maxMatch = 0
        For curRow = 1 To cntRows
            Dim col As Long
            col = 0
            getv = DataRange.Cells(curRow, 1).Value
             'arRes(curRow, curCol) = re.Test()
            Set colMatches = re.Execute(getv)
            If (MaxRowOrCol = 0) Then
                currMatch = colMatches.Count
                If (maxMatch < currMatch) Then
                    maxMatch = currMatch
                    ReDim arRes(1 To cntRows, 1 To maxMatch)
                End If
            ElseIf (Not rdim) Then
                rdim = True
                ReDim arRes(1 To cntRows, 1 To MaxRowOrCol)
            End If
            matpos = 0
            For Each Match In colMatches
                col = col + 1
                If (col > UBound(arRes, 2)) Then
                    Exit For
                End If
                arRes(curRow, curCol + col) = Match.Value
            Next
        Next
    ElseIf (cntRows = 1) Then
        maxMatch = 0
        'ReDim arRes(1 To cntRows + MaxRowOrCol, 1 To cntCols)
        For curCol = 1 To cntCols
            Dim row As Long
            row = 0
            getv = DataRange.Cells(1, curCol).Value
             'arRes(curRow, curCol) = re.Test()
            Set colMatches = re.Execute(getv)
            currMatch = colMatches.Count
            If (MaxRowOrCol = 0) Then
                If (maxMatch < currMatch) Then
                    maxMatch = currMatch
                    ReDim arRes(1 To maxMatch, 1 To cntCols)
                End If
            ElseIf (Not rdim) Then
                rdim = True
                ReDim arRes(1 To MaxRowOrCol, 1 To cntCols)
            End If
            For Each Match In colMatches
                row = row + 1
                If (col > UBound(arRes, 1)) Then
                    Exit For
                End If
                arRes(curRow + row, curCol) = Match.Value
            Next
        Next
    Else
        ReDim arRes(1 To cntRows, 1 To cntCols)
        For curRow = 1 To cntRows
            For curCol = 1 To cntCols
                getv = DataRange.Cells(curRow, curCol).Value
                 'arRes(curRow, curCol) = re.Test()
                Set colMatches = re.Execute(getv)
                For Each Match In colMatches
                    arRes(curRow, curCol) = Match.Value
                    Exit For
                Next
            Next
        Next
    End If
SetResult:
    Regex_MatchString = arRes
    Exit Function
ErrHandl:
    Regex_MatchString = CVErr(xlErrValue)
End Function

'/**
' * @name Regex_MatchString
' * @brief 返回正则匹配的单元格字符串集合
' *        如果字符串是一行多列, 则每列向下延伸结果;
' *        如果是多行一列, 则每行向右延伸结果;
' *        如果是多行多列, 则返回多行多列的第一个匹配的结果
' * @version v1.0
' * @author sarjet
' * @date 22.24.15, 15:24
' * @param Data 单元格范围
' * @param Pattern 正则表达式
' * @param IgnoreCase 忽略大小写
' * @param MatchPos 匹配的项, 0...n 第n个匹配
' * @param GroupPos 匹配的组, 0...m 第n个匹配的第m组
' * @returns 返回自动识别计算后的多行多列单元格
' * @example
' **/
Public Function Regex_MatchStringGroup(Data As Range, Pattern As String, Optional IgnoreCase As Boolean = True, Optional MatchPos As Integer = 0, Optional GroupPos As Integer = 0) As Variant
    Dim arRes As String  '存储结果的数组
    Dim curRow As Long  '源单元格区域中当前行索引值
    Dim curCol As Long  '源单元格区域中当前列索引值
    Dim cntRows As Long  '行数
    Dim cntCols As Long  '列数
    Dim getv As Variant
    Dim currMatch, maxMatch As Long
    Dim rdim As Boolean
    Dim matpos, grppos As Integer
    Dim exitfor As Boolean
    exitfor = False
    rdim = False
    On Error GoTo ErrHandl
    Regex_MatchStringGroup = arRes
    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = Pattern
    re.Global = True
    re.MultiLine = True
    re.IgnoreCase = IgnoreCase
    cntRows = Data.Rows.Count
    cntCols = Data.Columns.Count
    If (cntCols = 1 And cntRows = 1) Then
        maxMatch = 0
        For curRow = 1 To cntRows
            Dim col As Long
            col = 0
            getv = Data.Cells(curRow, 1).Value
            Set colMatches = re.Execute(getv)
            matpos = 0
            For Each Match In colMatches
                If (matpos = MatchPos) Then
                    grppos = 0
                    For Each Group In Match.SubMatches
                        If (grppos = GroupPos) Then
                            arRes = Group
                            Exit For
                        End If
                        grppos = grppos + 1
                    Next
                    Exit For
                End If
                matpos = matpos + 1
            Next
        Next
    End If
SetResult:
    Regex_MatchStringGroup = arRes
    Exit Function
ErrHandl:
    Regex_MatchStringGroup = CVErr(xlErrValue)
End Function

'/**
' * @name Regex_ReplaceString
' * @brief 返回正则替换字符串的单元格集合
' * @version v1.0
' * @author sarjet
' * @date 22.27.15, 15:27
' * @param DataRange 单元格范围
' * @param Pattern 正则表达式
' * @param Replace 替换的正则
' * @param IgnoreCase 忽略大小写
' * @returns 返回对应多行多列单元格
' * @example
' **/
Public Function Regex_ReplaceString(DataRange As Range, Pattern As String, Replace As String, Optional IgnoreCase As Boolean = True) As Variant
    Dim arRes() As Variant  '存储结果的数组
    Dim curRow As Long  '源单元格区域中当前行索引值
    Dim curCol As Long  '源单元格区域中当前列索引值
    Dim cntRows As Long  '行数
    Dim cntCols As Long  '列数
    On Error GoTo ErrHandl
    Regex_ReplaceString = arRes
    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = Pattern
    re.Global = True
    re.MultiLine = True
    re.IgnoreCase = IgnoreCase
    cntRows = DataRange.Rows.Count
    cntCols = DataRange.Columns.Count
    ReDim arRes(1 To cntRows, 1 To cntCols)
    For curRow = 1 To cntRows
        For curCol = 1 To cntCols
            arRes(curRow, curCol) = re.Replace(DataRange.Cells(curRow, curCol).Value, Replace)
        Next
    Next
    Regex_ReplaceString = arRes
    Exit Function
ErrHandl:
    Regex_ReplaceString = CVErr(xlErrValue)
End Function

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试. 31.2.3 DAP设计模式 51.3 为Microsoft数据引擎创建 Access数据 项目 51.3.1 新的ADP工具和对象 61.3.2 NorthwindCS项目和da Vinci工具 箱的深入研究 61.4 OfficeVBA编辑器和Access的集成 91.5 DAP和DHTML的HTML源编辑器 101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库 相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动更正 151.8.5 与Office 2000相关的改进 151.9 安装Access 2000 171.9.1 Access 2000的初始安装 171.9.2 定制Access 2000 201.10 安装和配置Microsoft数据引擎 20 1.11 现实世界—为什么升级 23第2章 建立第一个Access 2000应用 252.1 理解Access的应用设计方法 252.2 从模板文件创建Access应用 262.3 熟悉联系管理应用 292.3.1 数据库窗口中的表对象 292.3.2 切换面板窗体 322.3.3 Access窗体 332.3.4 Access报表 352.3.5 Access模块 362.4 使用切换面板管理器 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化文档窗口 463.2.2 把文档窗口最小化为图标 473.2.3 表数据表视图中的工具栏 483.2.4 工具栏自定义 503.2.5 右击快捷方式菜单 523.3 使用功能键 533.3.1 全局功能键 533.3.2 字段、网格和文本框的功能键 分配 533.4 设置默认的选项 543.4.1 系统默认值 553.4.2 数据表视图的默认值 583.5 使用Access帮助 593.5.1 上下文相关的帮助 593.5.2 “帮助”菜单 603.5.3 Microsoft Access的帮助窗口 613.5.4 “Office助手” 643.6 使用“数据库实用工具” 663.6.1 压缩和修复数据库 673.6.2 将数据库转换为Access 2000格式 683.6.3 将数据库转换为Access 97格式 693.6.4 添加切换面板窗体 693.6.5 创建.mde文件 703.7 疑难解答 703.8 现实世界—HTML帮助或者障碍 71第4章 使用Access数据库和表 724.1 定义Access数据库的元素 724.2 理解关系型数据库 744.3 使用Access数据库文件和表 754.3.1 Access系统数据库 754.3.2 Access 库数据库 754.4 创建一个新数据库 754.5 理解表和字段的属性 774.6 选择字段数据类型、大小和格式 804.6.1 为数值和文本数据选择字段大小 814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中直接创建一个表 964.9 设置字段的默认值 964.10 使用关系、关键字字段和索引 974.10.1 建立表之间的关系 984.10.2 实施参照完整性 1004.10.3 选择一个主键 1014.10.4 往表中添加索引 1024.11 改变字段和关系 1044.11.1 重新安排表中字段的顺序 1044.11.2 改变字段数据类型和大小 1054.11.3 改变表之间的关系 1064.12 复制和粘贴表 1074.13 疑难解答 1084.14 现实世界—数据库战略和表战术 108第5章 输入、编辑和验证表中的数据 1105.1 在Access表中输入测试数据 1105.2 使用键盘操作进行数据输入和编辑数据 1105.2.1 创建No
Excel2007图表完全剖析 2/8 Excel2007 图表 完全剖析 OFFICE2007 完整清晰版 PDF ,有目录。共 150MB,分为8个分卷 原价:45.00元 作者:杰莱 出版社:人民邮电出版社 出版日期:2008年2月1日 ISBN:9787115171955 页码:354 -------------------------------------------------------------------------------- 内容提要  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表类型并创建引人入胜的图表。通过阅读本书,读者将迅速创建出让观众发出惊叹的图表,并有效地表达信息。   全书分为14章和一个附录,包括如下内容:学习使用Excel 2007图表制作界面,掌握使用图形有效地表示数据的方式,根据要传达的信息选择正确的图表类型,学习可节省时间的解决方案,创建大多数人认为使用Excel无法创建的图表,使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。   本书语言简明清晰,内容实用,实例丰富,适合需要使用Excel制作图表的人员阅读。 第1章 Excel 2007图表简介 1 1.1 Excel 2007中的新图表特性 1 1.2 新的图表工具和菜单 2 1.2.1 使用“插入”选项卡来插入图表 3 1.2.2 使用“展开”图标来访问所有图表类型图库 3 1.2.3 理解图表缩略图图标 4 1.2.4 使用图库控件 6 1.3 创建图表 7 1.3.1 选择连续的数据到图表中 7 1.3.2 选择非连续的数据到图表中 7 1.3.3 使用“插入选项卡”图标创建图表 8 1.3.4 使用一次击键创建图表 9 1.4 使用图表 9 1.4.1 在当前工作表中移动图表 9 1.4.2 反转图表的系列(series)与类别(category) 11 1.4.3 使用“选择数据”来改变数据顺序 12 1.4.4 将左上角单元格留空 13 1.4.5 将图表移到另一个工作表中 14 1.5 使用“设计”选项卡自定义图表 15 1.5.1 选择图表布局 16 1.5.2 选择颜色方案 16 1.5.3 通过改变主题来修改颜色方案 17 1.6 创建自己的主题 18 1.6.1 从已有的主题中选择自定义主题的效果 18 1.6.2 理解RGB颜色码 19 1.6.3 将十六进制转换为RGB 20 1.6.4 查找互补色 20 1.6.5 指定主题的颜色 21 1.6.6 指定主题的字体 22 1.6.7 保存自定义的主题 22 1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中的特殊元素 27 2.2.3 分析元素 28 2.3 设置图表元素格式 29 2.3.1 设置图表标题格式 29 2.3.2 设置坐标轴标题格式 31 2.3.3 设置图例格式 32 2.3.4 在图表中添加数据标签 34 2.3.5 在图表中添加数据表 36 2.3.6 设置坐标轴格式 37 2.3.7 网格线的显示与格式设置 43 2.3.8 设置绘图区格式 45 2.3.9 设置三维图表中的背景墙与基底的格式 48 2.3.10 控制三维图表的三维旋转 49 2.3.11 使用趋势线进行预测 51 2.3.12 在折线图或面积图中添加垂直线 53 2.3.13 添加涨/跌柱线到图表中 54 2.3.14 使用误差线显示可接受的偏差 55 2.4 设置数据系列的格式 55 2.5 使用“格式”选项卡 56 2.5.1 将文本转换为艺术字 56 2.5.2 使用形状样式图库 57 2.5.3 使用形状填充与形状效果 57 2.5.4 使用预设形状效果 58 2.6 使用剪贴画或形状替换数据标记 59 2.6.1 使用剪贴画作为数据标记 59 2.6.2 使用形状替换数据标记 60 2.7 下一步 61 第3章 创建显示趋势的图表 62 3.1 选择图表类型 62 3.2 理解基于日期的坐标轴与基于类别的坐标轴 65 3.2.1 将文本日期转换为日期 66 3.2.2 不被识别为日期的
MS Query基础语法讲解: 一、单表查询 单表查询是指仅涉及一个表的查询 1、查询指定列 例1、查询材料进货明细表中的定额名称及规格 SELECT 定额名称,规格 FROM [材料进货明细表$] 注意:在excel中,一个工作表的表示是这样的:[工作表名称$] select的意思是:查询 上面那一句SQL语句的意思就是:从表材料进货明细表中取出定额名称及规格的值 例2、查询材料进货明细表的详细记录 SELECT * FROM [材料进货明细表$] 等价于: SELECT 序号, 定额名称,规格,日期,单位,数量 FROM [材料进货明细表$] 注意:*的用法 2、查询经过计算的值 例3、查询材料进货明细表的定额名称、规格、年份及数量 SELECT 定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$] 注意:里面的年份已经通过了计算的了,成为一个新的变量。 加多一列自定义的列A厂: SELECT “A厂” ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$] SELECT “A厂” as 工厂 ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$] 比较一下上面两句SQL语句的区别,没有as 工厂与有as 工厂的区别 二、选择表中若干元组 1、消除取重复的行 例4、查询材料进货明细表的定额名称 SELECT 定额名称 FROM [材料进货明细表$] 该查询结果会包含很多重复的行。消除重复行的话,必须指定关键词 distinct SELECT distinct 定额名称 FROM [材料进货明细表$] 2、查询满足条件的元组 例5、查询材料进货明细表中单位为“套”的所有记录 SELECT * FROM [材料进货明细表$] where 单位= ‘套’ 本句语句中,要学会where的用法: 要查询满足指定条件的元组,可以通过where子句实现。where子句查询条件是: 比较: =,>,<,>=,<=,!=,<>,!>,!<;not +上述比较运算符 确定范围: between and ,not between and 确定集合:in,not in 字符匹配:like,not like 空值:is null,is not null 多重条件:and,or,not 例6、查询材料进货明细表中数量在50—100之间的所有记录 SELECT * FROM [材料进货明细表$] where 数量 between 50 and 100 如果是不在50-100之间的话,直接改成: SELECT * FROM [材料进货明细表$] where 数量 not between 50 and 100 例7、查询材料进货明细表中单位为“只”或“支”的所有记录 SELECT * FROM [材料进货明细表$] where 单位 in(‘只’,'支’) 3、字符匹配 可以用like来实现,通配符%和_ a、%代表任意长度的字符串,如a%b表示以a开头,以b结尾的任意的字符串 b、_代表任意单个字符 例8、查询材料进货明细表中定额名称以“天津”开头的所有记录 SELECT * FROM [材料进货明细表$] where 定额名称 like ‘天津%’ 例9、查询材料进货明细表中定额名称以“天津”开头且字符为4个的所有记录 SELECT * FROM [材料进货明细表$] where 定额名称 like ‘天津__’ 例10、查询材料进货明细表中定额名称不以“天津”开头的所有记录 SELECT * FROM [材料进货明细表$] where 定额名称 not like ‘天津%’ 4、涉及空值的查询 主要是以:null出现 例11、查询材料进货明细表中规格为空的的所有记录 SELECT * FROM [材料进货明细表$] where 规格 is null 5、多条件查询 例12、查询材料进货明细表中定额名称为“天津三通”的并且数量大于30的所有记录 SELECT * FROM [材料进货明细表$] where 定额名称 = ‘天津三通’ and 数量>30 三、order by 子句 desc(降序)、asc(升序) 例13、查询材料进货明细表中数量大于30的所有记录,并且要按照数量来降序排列。 SELECT * FROM [材料进货明细表$] where 数量>30 order by 数量 desc 四、聚集函数 count(distinct/all 列名):统计元组个数 sum:求和 avg:求平均值 max:最大值 min:最小值 例14、查询材料进货明细表中天津大小头的最大数量。 SELECT max(数量) FROM [材料进货明细表$] where 定额名称 = ‘天津大小头’ 或:SELECT max(数量) as 最大数量 FROM [材料进货明细表$] where 定额名称 = ‘天津大小头’ 2. Excel源数据及分析下载:Excel数据透视表教程:分类百分比 SQL语句: select *, Hz1.分类销量/Hz2.分类销量 as 分类百分比 from (select 品种,分公司, sum(数量) as 分类销量 from [数据$] group by 品种,分公司) Hz1, (select 分公司, sum(数量) as 分类销量 from [数据$] group by 分公司) Hz2 where hz1.分公司=Hz2.分公司 SQL语句解释: select 品种,分公司, sum(数量) as 分类销量 from [数据$] group by 品种,分公司 实现对品种、分公司两字段分组的统计求和 select 分公司, sum(数量) as 分类销量 from [数据$] group by 分公司 实现对分公司字段分组的统计求和 对分公司分组统计求和数是对品种、分公司两字段分组统计求和项目再对不同品种的总就和,也就是后者包含前者。 整句语句的意思就是,将两个查询结果作为新的查询表分别命名为Hz1、Hz2,用 ”where hz1.分公司=Hz2.分公司“来组合数据, 没有条件的制约的话,将统计的结果再进行除数运算, 各品种的分组统计数(分组含品种字段)除以各品种已求和了的分组统计数(分组不含品种字段)求得所占比率, 最后在字段单元格设置为百分数就可以了。 3 在Excel中使用MS Query查询外部数据库的内容的优点是:不用设置公式、编写VBA代码、源数据库不用打开。 但要注意:源数据库的记录要有字段名,由于设置查询时的路径固定,。 因此源数据库文件不能随意移动(如确实要移动可以通过手工修改查询或VBA解决) 以下示例采用MS Query在“查询”工作簿中查询关闭的“销售”工作簿中sheet1的指定 “店铺”和指定“颜色”的内容(sheet1有“店铺”、“数量”、“颜色”等字段名及若干数据)。 操作前请先确定是否安装有MS Query。附上举例文件,请解压到D盘根目录下: 销售.xls为源数据,查询.xls中设置了msquery查询。 下载:MS Query查询未打开工作簿的内容例子 1、 新建一个工作表,选择菜单【数据】—【导入外部数据】—【新建数据库查询】, 界面如图,由于查询excel数据库的内容,因此选择【Excel Files*】并确定; 2、 弹出〖选择工作簿〗对话框,选择“销售”工作簿,〖确定〗; 3、 弹出〖选择列〗对话框,如果此时弹出“没用内容”,确定后在〖选项〗中将“系统表”勾上。 将所选工作簿的各个工作表及工作表中的字段名添加到查询结果中,全选可直接将工作表名添加, 〖下一步〗〖下一步〗,选择“在MS query中继续编辑查询”; 4、 弹出MS Query查询编辑,点击【显示/隐藏条件】图标,在“条件字段”中添加“店铺”, 值改为“[店]”(方括号中内容随意),再添加个条件为“颜色”,值改为“[色]”,点击【将数据返回Excel】 5、 回到excel的“导入数据”对话框,点击〖参数〗,选中“店”字段,再选择“从下列单元格中获取数据”, 选择一个用来更改查询关键字的单元格(如B1),并勾选“单元格值更改时自动刷新”, “色”字段改成从单元格“B2”中获取,〖确定〗。数据放置位置选择“A3”。〖确定〗。 6、 当更改B1和B2单元格的内容(做个数据有效性)时,A3及以下的数据会即时刷新。 此法对于需要经常在局域网中查询数据非常方便,比如:数据放在局域网内的一台主机上,通过MS Query即可不打开工作簿查询数据。
卷序列号码为 00000030 4489:1826 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整tempdb数据库的文件属性.sql │ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.sql │ │ 2.2.4 CONVERT在日期转换中的使用示例.sql │ │ 2.3.3 SET DATEFORMAT对日期处理的影响.sql │ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.sql │ │ 2.4.1 日期格式化处理.sql │ │ 2.4.2 日期推算处理.sql │ │ 2.4.3 特殊日期加减函数.sql │ │ 2.5.1 查询指定日期段内过生日的人员.sql │ │ 2.5.2 生成日期列表的函数.sql │ │ 2.5.3 工作日处理函数(标准节假日).sql │ │ 2.5.3 工作日处理函数(自定义节假日).sql │ │ 2.5.4 计算工作时间的函数.sql │ │ │ └─其他 │ 交叉表.sql │ 任意两个时间之间的星期几的次数-横.sql │ 任意两个时间之间的星期几的次数-纵.sql │ 复杂年月处理.sql │ 统计--交叉表+日期+优先.sql │ ├─第03章 │ │ 3.2 各种字符串分拆处理函数.sql │ │ 3.3 各种字符串合并处理示例.sql │ │ 3.4.1 分段截取函数.sql │ │ 3.4.2 分段更新函数.sql │ │ 3.4.3 IP地址处理函数.sql │ │ 3.5.1 字符串比较函数.sql │ │ 3.5.2 字符串并集&交集处理示例.sql │ │ 3.5.3 字符串分拆并统计的处理示例.sql │ │ 3.5.5 字符串处理示例--列车车次查询.sql │ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql │ │ 3.6.3 动态参数的存储过程示例.sql │ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql │ │ 3.7.3 text与ntext字段的复制和合并处理示例.sql │ │ 3.7.4 text与image字段转换处理示例.sql │ │ 3.7.5 ntext字段的REPLACE处理示例.sql │ │ │ └─其他 │ varbinary转换成字符串.sql │ 关键字搜索.sql │ 分解公式.sql │ 字符串分拆--格式化.sql │ 得到一个字符串在另一个字符串中出现的次数.sql │ 数字转换成十六进制.sql │ 比较第一与第二个字符串,是否有连续的5个字符相同.sql │ 生成查询的模糊匹配字符串.sql │ 简繁转换.sql │ 统计一个表中某个字符出现最多的字母.sql │ 非法字符串处理.sql │ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.sql │ │ 4.2.1 排序规则在拼音处理中的应用.sql │ │ 4.2.2 排序规则在全角与半角处理中的应用.sql │ │ │ └─其他 │ 生成GB2312汉字表.sql │ 生成GBK汉字表.sql │ 自动获取汉字笔画.sql │ ├─第05章 │ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.sql │ │ 5.1.1 修改标识值的示例.sql │ │ 5.1.1 标识列与普通列互相转换的示例.sql │ │ 5.2.1 查表法按日期生成流水号的示例.sql │ │ 5.2.1 查表法生成流水号的示例.sql │ │ 5.2.2 使用编号表按日期生成流水号的示例.sql │ │ 5.2.2 使用编号表生成流水号的示例.sql │ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).sql │ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).sql │ │ 5.2.3 生成纯数字随机编号的示例.sql │ │ 5.3.2 融合了补号处理的编号生成处理示例.sql │ │ 5.3.3 使用UPDATE进行编号重排的处理示例.sql │ │ 5.3.3 使用临时表进行编号重排的处理示例.sql │ │ 5.3.3 使用子查询进行编号重排的处理示例.sql │ │ 5.3.3 名次查询的处理示例.sql │ │ 5.4.1 查询已用编号分布情况的示例(临时表法).sql │ │ 5.4.1 查询已用编号分布情况的示例(子查询法).sql │ │ 5.4.2 查询缺号分布情况的示例.sql │ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.sql │ │ 5.4.4 缺勤天数统计的处理示例.sql │ │ │ └─其他 │ -补位法.sql │ 以另一个表的字段做默认值.sql │ 以另一表的字段生成编号.sql │ 关联部门流水号.sql │ 十六进制.sql │ 学号.sql │ 开票统计--涉及到连号处理.sql │ 新编号查询示例(分类查询).sql │ 新编号查询示例.sql │ 日期流水号.sql │ 材料流水号.sql │ 流水号.sql │ 箱编号连号处理.sql │ 类别自动生成编号示例.sql │ 自已做标识列的例子.sql │ 触发器自动维护已用&未用编号.sql │ 连续编号.sql │ 防止重复的示例.sql │ 项目编号=各项目独立流水号&各年不同.sql │ ├─第06章 │ │ 6.1.1 NULL对IN的查询的影响及解决示例.sql │ │ 6.1.2 各种联接的使用示例.sql │ │ 6.1.2 多表联结导致记录重复的示例.sql │ │ 6.1.3 使用UNION实现库存报表的示例.sql │ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例.sql │ │ 6.2.1 UNION ALL实现的分级汇总示例.sql │ │ 6.3.1 简单的交叉报表处理示例.sql │ │ 6.3.2 多列转换为行的交叉报表处理示例.sql │ │ 6.3.3 行值动态变化的交叉报表处理示例(转换多列).sql │ │ 6.3.3 行值动态变化的交叉报表处理示例.sql │ │ 6.3.4 化解字符串不能超过8000的方法.sql │ │ 6.3.5 特殊的交叉报表处理示例.sql │ │ 6.4.1 库存明细帐处理示例(包含结存数).sql │ │ 6.4.1 库存明细帐处理示例.sql │ │ 6.4.2 同期及上期数据对比处理示例.sql │ │ 6.4.3 动态分组处理示例.sql │ │ 6.4.4 排行榜处理示例.sql │ │ │ └─其他 │ 交叉表--复杂名次.sql │ 交叉表-优先级处理.sql │ 交叉表分析.sql │ 分级汇总.sql │ 分组交叉表.sql │ 列转行.sql │ 固定行列报表.sql │ 复杂交叉表.sql │ 复杂交叉表1.sql │ 多栏显示.sql │ 日期+星期+时间.sql │ 格式化报表.sql │ 横转竖-1.sql │ 横转竖-字段名.sql │ 横转竖-生成字段名.sql │ 横转竖.sql │ 行列互换的复杂交叉表.sql │ 限制列数的交叉表.sql │ ├─第07章 │ │ 7.1 splitpage.asp │ │ 7.2.1 TOP n 实现的通用分页存储过程.sql │ │ 7.2.2 字符串缓存实现的通用分页存储过程.sql │ │ 7.2.3 临时表缓存实现的通用分页存储过程.sql │ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.sql │ │ 7.3.1 实现随机分页的通用分页存储过程.sql │ │ 7.3.2 根据分类表实现的分页存储过程.sql │ │ │ └─其他 │ sp_cursor.sql │ 基本方法.sql │ ├─第08章 │ │ 8.1.2 树形数据分级汇总示例.sql │ │ 8.1.3 树形数据编号重排的通用存储过程.sql │ │ 8.1.3 树形数据编号重排示例.sql │ │ 8.1.4 实现编码规则调整处理的通用存储过程.sql │ │ 8.1.4 生成编码规则调整处理T-SQL语句的函数.sql │ │ 8.1.5 删除节点处理的通用存储过程.sql │ │ 8.1.5 移动节点处理的通用存储过程.sql │ │ 8.2.2 树形数据层次显示处理示例.sql │ │ 8.2.2 树形数据广度排序处理示例.sql │ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).sql │ │ 8.2.2 树形数据深度排序处理示例(递归法).sql │ │ 8.2.3 查找指定节点的所有子节点的示例函数.sql │ │ 8.2.4 查找指定节点的所有父节点的示例函数.sql │ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.sql │ │ 8.2.5 校验表中数据是否有循环编码的通用存储过程.sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).sql │ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.sql │ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.sql │ │ 8.2.8 逐级汇总示例(循环逐级累计法).sql │ │ 8.2.8 逐级汇总示例(用户定义函数法).sql │ │ 8.3.1 产品配件清单查询示例.sql │ │ 8.3.2 最短乘车路线查询示例.sql │ │ │ └─其他 │ xml菜单.sql │ 宝塔形数据的处理-1.sql │ 宝塔形数据的处理.sql │ 树形数据生成xml.sql │ ├─第09章 │ │ 9.1.3 访问外部数据源方法总结.sql │ │ 9.5.1 二进制文件存取示例(T-SQL).sql │ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs │ │ a.txt │ │ Schema.ini │ │ │ └─其他 │ bcp-数据导入导出(全).sql │ bcp-数据导入导出-二进制文件.sql │ bcp-数据导出为文件.sql │ bcp表数据存为XML.sql │ SQL Server到Oracle连接服务器的实现.sql │ SQL Server到SQLBASE连接服务器的实现.sql │ SQL Server到SYBASE连接服务器的实现.sql │ sql导出mysql.sql │ textcopy实现文件存取.sql │ Vb程序实现文件存取.sql │ 导入文本文件时如何指定字段类型.sql │ 导出northwind中Employees的图像.sql │ 将某个目录上的Excel表,导入到数据库中.sql │ 数据导入导出基本方法.sql │ 用ASP上传&下载文件.sql
Excel2007图表完全剖析 6/8 Excel2007 图表 完全剖析 OFFICE2007 完整清晰版 PDF ,有目录。共 150MB,分为8个分卷 原价:45.00元 作者:杰莱 出版社:人民邮电出版社 出版日期:2008年2月1日 ISBN:9787115171955 页码:354 -------------------------------------------------------------------------------- 内容提要  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表类型并创建引人入胜的图表。通过阅读本书,读者将迅速创建出让观众发出惊叹的图表,并有效地表达信息。   全书分为14章和一个附录,包括如下内容:学习使用Excel 2007图表制作界面,掌握使用图形有效地表示数据的方式,根据要传达的信息选择正确的图表类型,学习可节省时间的解决方案,创建大多数人认为使用Excel无法创建的图表,使用数据透视图汇总数百万行数据,在不使用图表的情况下以图形方式显示数据,使用SmartArt图形绘制流程图和关系图,使用VBA创建图表,将数据绘制到地图中,将图表导出到网页或PowerPoint中,找出图表背后的谎言等。   本书语言简明清晰,内容实用,实例丰富,适合需要使用Excel制作图表的人员阅读。 第1章 Excel 2007图表简介 1 1.1 Excel 2007中的新图表特性 1 1.2 新的图表工具和菜单 2 1.2.1 使用“插入”选项卡来插入图表 3 1.2.2 使用“展开”图标来访问所有图表类型图库 3 1.2.3 理解图表缩略图图标 4 1.2.4 使用图库控件 6 1.3 创建图表 7 1.3.1 选择连续的数据到图表中 7 1.3.2 选择非连续的数据到图表中 7 1.3.3 使用“插入选项卡”图标创建图表 8 1.3.4 使用一次击键创建图表 9 1.4 使用图表 9 1.4.1 在当前工作表中移动图表 9 1.4.2 反转图表的系列(series)与类别(category) 11 1.4.3 使用“选择数据”来改变数据顺序 12 1.4.4 将左上角单元格留空 13 1.4.5 将图表移到另一个工作表中 14 1.5 使用“设计”选项卡自定义图表 15 1.5.1 选择图表布局 16 1.5.2 选择颜色方案 16 1.5.3 通过改变主题来修改颜色方案 17 1.6 创建自己的主题 18 1.6.1 从已有的主题中选择自定义主题的效果 18 1.6.2 理解RGB颜色码 19 1.6.3 将十六进制转换为RGB 20 1.6.4 查找互补色 20 1.6.5 指定主题的颜色 21 1.6.6 指定主题的字体 22 1.6.7 保存自定义的主题 22 1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中的特殊元素 27 2.2.3 分析元素 28 2.3 设置图表元素格式 29 2.3.1 设置图表标题格式 29 2.3.2 设置坐标轴标题格式 31 2.3.3 设置图例格式 32 2.3.4 在图表中添加数据标签 34 2.3.5 在图表中添加数据表 36 2.3.6 设置坐标轴格式 37 2.3.7 网格线的显示与格式设置 43 2.3.8 设置绘图区格式 45 2.3.9 设置三维图表中的背景墙与基底的格式 48 2.3.10 控制三维图表的三维旋转 49 2.3.11 使用趋势线进行预测 51 2.3.12 在折线图或面积图中添加垂直线 53 2.3.13 添加涨/跌柱线到图表中 54 2.3.14 使用误差线显示可接受的偏差 55 2.4 设置数据系列的格式 55 2.5 使用“格式”选项卡 56 2.5.1 将文本转换为艺术字 56 2.5.2 使用形状样式图库 57 2.5.3 使用形状填充与形状效果 57 2.5.4 使用预设形状效果 58 2.6 使用剪贴画或形状替换数据标记 59 2.6.1 使用剪贴画作为数据标记 59 2.6.2 使用形状替换数据标记 60 2.7 下一步 61 第3章 创建显示趋势的图表 62 3.1 选择图表类型 62 3.2 理解基于日期的坐标轴与基于类别的坐标轴 65 3.2.1 将文本日期转换为日期 66 3.2.2 不被识别为日期的日期:数字年份 71 3.2.3 不被识别为日期的日期:1900年之前的日期 72 3.2.4 使用其他方法显示使用时间刻度的坐标轴 76 3.2.5 将日期转换为文本以添加装饰性图表元素 78 3.3 使用图表进行有效交流 81 3.3.1 使用有意义的长标题解释图表的含义 82 3.3.2 突出一列 85 3.3.3 用箭头取代柱形 86 3.3.4 添加另一个序列来突出图表的一部分 87 3.3.5 中途改变折线类型 88 3.4 在图表中添加自动趋势线 89 3.5 显示月销量及当年累积销量的趋势 90 3.6 理解堆积柱形图的缺点 91 3.7 在单个图表中显示很多趋势线的缺点 93 3.8 使用散点图显示趋势 94 3.9 下一步 95 第4章 创建显示差异的图表 96 4.1 比较实体 96 4.2 使用条形图比较数据项 96 4.2.1 增加另一列来显示时间的比较 98 4.2.2 分割条形以突出组分 99 4.3 比较组分 100 4.3.1 使用饼图 101 4.3.2 切换到百分比堆积柱形图 106 4.3.3 使用圆环图来比较两个饼图 107 4.3.4 处理饼图中的数据表示问题 108 4.4 使用瀑布图(waterfall)分解组分 114 4.5 下一步 116 第5章 创建显示关系的图表 117 5.1 在图表中比较两个变量 117 5.2 使用XY散点图绘制成对的数据点 118 5.2.1 在散点图中添加趋势线 118 5.2.2 在散点图中添加标签 120 5.2.3 用折线连接散点图中的点 121 5.2.4 在散点图中添加第二个系列 122 5.2.5 用散点图画图 123 5.3 使用图表来显示关系 123 5.3.1 使用散点图来测试相关性 124 5.3.2 使用成对的条形图来显示关系 126 5.3.3 使用成对的匹配图表 132 5.3.4 使用气泡图添加第三维 135 5.3.5 使用频数分布将成千上万的点分类 136 5.3.6 使用雷达图评估绩效 138 5.3.7 来自Gene Zelazny的一个图表 142 5.4 使用曲面图 145 5.4.1 使用竖坐标轴 146 5.4.2 通过三维旋转控制曲面图 146 5.5 下一步 147 第6章 创建股票分析图 148 6.1 股价图概述 148 6.1.1 折线图 148 6.1.2 OHLC图 149 6.1.3 烛柱(candlestick)图 149 6.2 获取股价数据 150 6.2.1 重排下载数据中的列 151 6.2.2 使用“调整后的收盘价”列来处理分股 151 6.3 创建折线图来显示收盘价 153 6.4 创建OHLC图 156 6.4.1 创建盘高-盘低-收盘图 156 6.4.2 创建OHLC图 159 6.4.3 在盘高-盘低-收盘图表中添加成交量 161 6.5 创建烛柱图 165 6.5.1 改变烛柱图的颜色 166 6.5.2 在烛柱图中添加成交量 166 6.5.3 手工创建包含成交量的烛柱图 167 6.6 使用Web连接创建实时图表 171 6.7 创建用于Dashboard的小图表 174 6.8 下一步 175 第7章 高级图表技巧 176 7.1 高级图表技巧工具箱 176 7.1.1 在单个图表中使用两种图表类型 176 7.1.2 将图表从一个工作表移到另一个工作表 177 7.1.3 使用形状来注释图表 178 7.1.4 使柱形与条形悬浮 180 7.1.5 使用虚构的xy系列给纵坐标轴加上标签 182 7.1.6 使用虚构的XY系列将几个图表显示在单个图表中 187 7.1.7 使用多个XY系列创建网格图(trellis chart) 191 7.2 创建动态图表 195 7.2.1 使用OFFSET函数指定特定区域 195 7.2.2 使用VLOOKUP或MATCH在表格中查找值 196 7.2.3 结合使用INDEX和MATCH函数 198 7.2.4 使用“有效性”下拉列表创建动态图表 199 7.2.5 在图表中使用动态区域 201 7.2.6 创建滚动图表 204 7.2.7 修改滚动条示例显示最近12个月 206 7.3 创建高级图表 206 7.3.1 温度计图表 206 7.3.2 基准图 207 7.3.3 增量图(delta chart) 208 7.4 使用Excel创建奇妙的图表 209 7.5 下一步 211 第8章 创建和使用数据透视图 212 8.1 Excel 2007数据透视表的新特性 212 8.2 决定先使用哪一个:表格还是图表 213 8.3 准备底层透视数据的规则 213 8.4 创建第一个数据透视图 214 8.4.1 更改图表类型及设置图表格式 216 8.4.2 在数据透视图中添加系列 216 8.5 通过数据透视表执行高级操作 217 8.6 筛选数据透视表 219 8.6.1 使用“报表筛选”进行筛选 219 8.6.2 将Excel 2007筛选条件用于轴字段和图例字段 220 8.7 为每个顾客创建图表 221 8.8 下一步 223 第9章 不使用图表的数据可视化表示法 224 9.1 在工作表单元格中创建图表 224 9.2 使用数据条创建单元格内的条形图 225 9.2.1 定制数据条 225 9.2.2 控制最小/最大数据条的长度 226 9.2.3 在部分单元格中显示数据条 228 9.3 使用色阶来突出极值 230 9.3.1 转换为单色数据条 230 9.3.2 排除色阶问题 231 9.4 使用图标集区分数据 232 9.4.1 建立图标集 232 9.4.2 让数字靠近图标 233 9.5 使用条件格式在工作表单元格中创建图表 234 9.6 使用REPT函数创建图表 237 9.7 使用滚动条控件创建图表 238 9.8 创建“茎叶”图表 240 9.8.1 创建将X作为叶的“茎叶”图表 241 9.8.2 使用长公式创建以数字作为叶的“茎叶”图表 242 9.8.3 使用排序和公式创建以数字作为叶的“茎叶”图表 243 9.9 下一步 244 第10章 使用Microsoft MapPoint将Excel 数据显示在地图中 245 10.1 绘制地理数据 245 10.2 在Excel中创建地图 246 10.3 在地图上使用图表 249 10.4 使用其他地图样式来显示数据 251 10.5 下一步 253 第11章 使用SmartArt图形和形状 254 11.1 理解SmartArt图形和形状 254 11.2 使用SmartArt 255 11.2.1 大多数SmartArt都有的元素 256 11.2.2 SmartArt类别简介 256 11.2.3 插入SmartArt 257 11.2.4 对SmartArt元素进行微观控制 260 11.2.5 在文本窗格中控制SmartArt形状 262 11.2.6 添加图像到SmartArt中 264 11.2.7 使用组织图时需要特别考虑的因素 265 11.2.8 使用受限制的SmartArt 267 11.3 为信息选择正确的布局 268 11.4 探索使用SmartArt图形的商业图表 268 11.4.1 使用“平衡”图来显示正/反决策 269 11.4.2 使用“向上箭头”来显示增长 269 11.4.3 使用“基本循环”布局显示重复的过程 269 11.4.4 使用“分离射线”图示显示公司与外部实体的关系 270 11.4.5 使用“表格列表”图示显示公司的部门 270 11.4.6 调整维恩图来显示关系 271 11.4.7 理解“标记的层次结构”图 272 11.4.8 使用其他SmartArt布局 273 11.5 使用形状显示单元格内容 273 11.5.1 处理形状 274 11.5.2 使用“任意多边形”形状创建自定义形状 275 11.6 使用艺术字显示有趣的标题 275 11.7 下一步 278 第12章 导出图表以便在 Excel外部使用 279 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表粘贴为链接对象 283 12.1.5 在PowerPoint中创建图表,从Excel中复制数据 284 12.2 在网上展示图表 285 12.3 将图表导出为图形 286 12.3.1 使用VBA将图表导出为图像 286 12.3.2 使用Snag-it或OneNote捕获图表 286 12.3.3 将XPS转换为PDF 287 12.4 下一步 287 第13章 使用VBA创建图表 288 13.1 VBA简介 288 13.1.1 在Excel中启用VBA 289 13.1.2 在Excel中“开发工具”选项卡 289 13.1.3 Visual Basic编辑器 289 13.1.4 Visual Basic工具 290 13.1.5 宏录制器 291 13.1.6 理解面向对象的代码 291 13.2 学习VBA编程技巧 291 13.2.1 编写代码来处理任意大小的数据区域 292 13.2.2 使用超级变量(super-variable):对象变量 293 13.2.3 在引用对象时使用With和End With 294 13.2.4 续行 294 13.2.5 在代码中添加注释 294 13.3 针对Excel 2007的新图表特性进行编程 295 13.4 在VBA代码中引用图表和图表对象 295 13.5 创建图表 296 13.5.1 指定图表的大小和位置 296 13.5.2 引用特定的图表 297 13.6 录制“布局”和“设计”选项卡中的命令 299 13.6.1 指定内置的图表类型 299 13.6.2 指定模板图表类型 301 13.6.3 更改图表的布局或样式 301 13.7 使用SetElement模拟“布局”选项卡中的设置 303 13.8 使用VBA修改图表标题 308 13.9 模拟“格式”选项卡中的设置 308 13.10 自动化“设置数据系列格式”对话框中的设置 322 13.10.1 控制柱形图和条形图的系列间距和类别间距 323 13.10.2 将系列移到次要坐标轴上 324 13.10.3 旋转和分离圆形图表 325 13.10.4 控制复合饼图和复合条饼图 327 13.10.5 控制雷达图和曲面图 332 13.11 使用“监视”窗口查看对象的设置 333 13.12 将图表导出为图形 335 13.13 创建数据透视图 337 13.14 下一步 341 第14章 找出图表背后的谎言 342 14.1 使用透视进行欺骗 342 14.2 使用缩小的图表进行欺骗 343 14.3 使用刻度进行欺骗 344 14.4 由于Excel不配合导致的欺骗 344 14.5 通过模糊数据进行欺骗 345 14.6 有意使用图表进行欺骗 346 14.7 下一步 348 附录A 图表资源 349 A.1 其他图表资源 349 A.2 Gene Zelazny:商业图表制作大师 349 A.3 PowerFramework.com 349 A.4 Edward Tufte的书籍 350 A.5 图表制作教程网站 351 A.6 交互式培训 351 A.7 现场培训 352 A.8 有关图表制作的博客 352 A.9 视觉设计书店 352 A.10 专业图表设计师 353 A.11 图表制作工具和产品 353

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值