当前位置: 首页 > news >正文

Power Pivot 实现数据建模

一、简介

Excel中的透视表适合小规模数据;如果想在稍微大一些的数据中进行高性能透视表分析,就要使用Power Pivot;再大一些数据,可能就需要大数据分析服务来进行分析。

Power Pivot,可以让没有技术背景的企业业务人员快速通过Excel进行数据建模,执行复杂数据分析,制作可自动更新的企业级数据报告。

传统Excel对比Power Pivot

Mac版本的excel没有power pivot 功能,所以同样用不了power bi。

二、创建一个简单的多表数据模型

第一种方法 VLOOKUP

VLOOKUP(a表匹配字段,b表查询字段 需匹配字段作为第一被选择的列,b表匹配结果列,0或1表示是否精确匹配)

功能:在表格的首列查找指定的数值,并返回表格当前行中指定列处的数值。

结构:=VLOOKUP(查找值,查找区域,列序数,匹配条件)

解释:=VLOOKUP(找谁,在哪里找,第几列,0或1)

说明:

1、第一参数:查找值(找谁),比如说根据【姓名】来查找【成绩】,【姓名】就是查找值

2、第二参数:查找区域(在哪里找),查找的数据区域也就是所选择的区域,注意所选择的区域要根据查找值位于第一列开始选择,比如说根据【姓名】来查找【成绩】,那数据表所选的区域要从【姓名】列开始选择。建议设置为绝对引用,在选定区域后按F4键就可以快速切换,就是在行和列的前面添加$符号,拖动公式时,区域就不会发生改变;

3、第三参数:列序数(第几列),也就是返回的结果在数据表中位于第几列,包含隐藏的列;

4、第四参数:匹配条件(0或1),若为0或FALSE代表精确匹配,1或TRUE代表近似匹配;

注:查找值在数据表中多次出现,导致有多个结果,函数仅仅会返回第一个找到的结果。

VLOOKUP函数16种经典用法(史上最全,记得收藏) - 知乎

第二种方法Power Query

power query的合并查询

第三种方法 Power Pivot多表查询

1.导入数据

 管理数据模型进入power pivot界面

主页--从其他源--选择Excel导入表  导入后界面分为两部分:数据预览区域和计算区域。 计算区域可以对预览区域的数据进行一些计算,比如求和等。

可以重复上述步骤导入多张数据表。

 Excel求和只会有加和数字,但是Power Pivot会有文字+求和数字,这是Excel函数和Power Pivot DAX函数的区别。 

点击求和数字,可以修改显示文字和数字格式。

2.两表连线建立关系 

两张表能够连线建立关系必须满足如下

(1)两张表的连线字段必须一张表是唯一值,另一张表唯一值或重复值,即1:N。不能够N:N

  1. 导入多张数据表
  2. 点击“关系图视图”,会进入多表界面,显示每张表的所有字段。
  3. 鼠标左键将关联字段连线。就会出现联系线段,线段三个内容 1 * 箭头。1和* 表示连线字段哪边是唯一值,哪边是重复值;箭头代表箭尾的表可以查询箭头指向表的数据。反之不可以调用。只有唯一值的表可以调用*值的表。详述见下
  4. 连线建立后,点击数据透视表就会带着此数据模型回到Excel透视表界面。

 Power Pivot中连线成功的表使用方法

(1)连线成功后,会自动分配1端表和*端表,1端表所有字段可以作为“行”同时让 *端表的字段作为 “值”,反之*端表作为“行”同时让1端表作为“值”会报错,但是单独*端表作为“行”同时作为“值”没问题。

如下图,”行“中为两个1端的字段,“值”为*端的字段。

 3.数据透视表

两张表建立关系后,点击数据透视图回到Excel数据透视表界面。

4.数据透视图 

数据透视表和数据透视图,如果原始表格数据发生变化,即使未保存,此时点击Power Pivot菜单中的刷新也会同步变化统计值。

刷新下拉箭头,全部刷新是指会将所有表格都进行比对刷新。

1.给关心的字段添加切片器。

   左键--添加切片器

 2.添加透视图

选中数据透视表中某行数据--点击数据透视图--选择类型--插入到制定位置

5.Power View

Power Pivot数据模型确定以后,在Excel界面点击插入--Power View即可进入view界面。然后选择字段--选择图标类型,即可生成统计图。

如下,虽然两个图标单独建立,但是之间也会有交互。比如选择第一图的北区,那么第二图也会显示北区的各产品分类的数值。

三、Power Pivot学习

1.Power Pivot界面认知 

菜单栏

  1. 粘贴 可以将数据粘贴到Pivot,适用于数据不变化的情况。比如省份区域对应表。 
  2. 显示隐藏 可以右键列选择将某列隐藏,此时关系图界面、数据透表界面等的字段也会隐藏;可以通过此功能显示出隐藏的字段。常用与隐藏辅助列。

 

 设计栏

  1. 创建关系等同于主页下面的关系图视图,用来连线;管理关系既看到有哪些关系。不常用,关系图视图更直观。
  2. 表属性。可以显示隐藏某些字段。想要时勾选,不想要时去勾选。  一般在导入数据时有些字段不想要会去掉勾选,导入后如果需要去掉的字段此时可通过表属性再次勾选去勾选的字段;如果要对某列数据进行筛选,也在表属性设置,这样导入的数据就不会包含筛选掉的数据。如果导入后通过下拉列筛选,数据只是隐藏,透视表还是会进行汇总统计。

 高级

  1. 默认字符集、表行为常在和view交互时使用
  2. 同义词 给字段起个别名 。view可以实现交互式问答,此时问答可以使用别名。比如字段英文、字段不同地方的方言等。

2.Power Pivot 导入数据

导入数据三个方法。被导入数据需要关闭才能导入成功。

(1)从其他源导入

(2)复制粘贴 适用于数据不变化的情况。比如省份区域对应表

(3)链接表的形式

链接表

添加到数据模型既是链接表形式。

链接表形式常用作改动较多的表,此时透视表也在此sheet画出,如果改动直接刷新透视表即可更新。如果不是链接表形似,改动数据,需要回到pivot界面点击菜单栏更新才能将数据更新到透视表。

如果多张表中有链接表形式上传的sheet表数据,先打开此链接表sheet,选择添加到数据模型,然后在打开的数据模型中导入其他数据表,此时多表在一个数据模型pivot界面;如果先打开空白表,点击管理数据模型进入pivot界面导入非链接形式的表形成一个数据模型,再打开链接表,点击添加到数据模型形成另一个数据模型,此时会有两个pivot界面数据模型,因此建议第一种方式。

DAX函数不同于excel函数=开始开头调用公式,而是以以“计算值的名称:= ”开头, ‘’单引号作为引用表中某单元格或某行汇总数据的智能感知。

3.计算列和计算字段 

计算列为新增列,对某行不同列的数据进行计算;选中新增列单元格写DAX公式,此公式会自动运用到整个新增列,自动进行所有计算,不同于excel第一个单元格写公式,然后拖动选中整个列才能计算。

计算字段或度量值为对某列所有行汇总或者某些单元格值进行计算 。计算结果会自动根据切片器或者分组而变化。

 

度量值:比如计算订单平均金额,就适合使用度量值。

先汇总求一个总订单数,再汇总求一个总金额数,再新建一个度量值计算两者的商。

度量值和计算列都可以实现某个需求时,优先推荐使用度量值,节省内存和空间。

除了可以在power pivot界面计算区域新建度量值,也可以在excel界面新建度量值。 

4.按列排序

如果透视表中 “行” 名称没有按照想要的顺序排列,可以通过按列排序进行处理。

(1)增加一列 

产品分类--筛选指定类别--给每个类别添加一个大小数字

 

 (2)选中产品分类---按列排序---选择排列辅助字段

 

(3) 透视表刷新后发现按照指定辅助列数值大小进行了排序

    此时可以隐藏辅助排序列。

 

5.Power Pivot的关系

两张表能够连线建立关系必须满足如下

(1)两张表的连线字段必须一张表是唯一值,另一张表唯一值或重复值,即1:N。不能够N:N。比如上图的省份区域表的省份字段,每个值都只有一个;销售记录表的客户省份,会有很多客户是同一个省份,有重复值。身份和客户省份建立连接后,1端为省份区域表,*端为销售记录表。

(2)建立连接后,1端可以作为透视表的行,*作为列值,反之不可以,即1端表的所有字段可以查询*端表的所有字段的汇总值。

(3)可以按照箭头跨表控制

     按照箭头走向,可以跨表控制。 箭头走向连在一起的表,不需要再手动建立联系,建立的话会使用虚线表示没必要建立联系。

6.DAX函数

使用规则

 

(1)注意使用英文字符 

(2)点击计算列单元格 输入框输入= 鼠标选择其他单元格进行计算;点击计算区域 输入框输入 "名称:= "进行计算

(3)点击计算列单元格 输入框输入='或[  单引号会提示所有表的字段;[ 只提示当前表的字段

(4)DAX运算符

  • [金额]&“元” 文本连接

   

  • AND OR等

   下图为excel中用法,DAX中and or只能两个参数,如果需要多个判断可以嵌套and。

    

    DAX中常用 if来多条件判断,而不是and 。  if中可以使用&&表示and,||表示或。

      

常见函数 

在输入框输入函数名,会自动提示。

related、relatedtable 用在已经建立关系的表中。relatedtable是将建立联系的字段作为分类字段,然后获取到多段的数据进行处理。

 calculate特性:不受自身切片器控制,是指calculate函数内部的筛选条件作为切片器时,此切片器改变不影响calculate计算结果。比如下图中 是否订单作为透视表中的切片器时,选择0或1,calculate的计算结果都一样。

数据分析示例

增长率

(1)如下 ,差异百分比会计算出同比、环比增长率。需要表格里面有每月数据和两年数据,多年数据才能计算同比;多月数据才能计算每月的同比。 

(2)总计百分比可以计算出每个单元格占某列总计的百分比。

(3)父行汇总的百分比。  会计算每个分组中每个单元格占本分组的百分比,而不是占全部的百分比

 

设计--分类汇总--在组的底部显示所有分类汇总 会为每个分组生成一个汇总值

产品分析 

KPI 

在power pivot界面中的度量值,右键--kpi 如下图。 

(1)如果目标值选度量值。度量值为分母,选定的基本字段为分子。会根据计算结果显示不同颜色 

(2)如果目标值为绝对值。需要选定的基本字段为百分比。绝对值修改为1.

 

此时增加了kpi的度量值,可以在透视表增加一列状态。

相关文章:

Power Pivot 实现数据建模

一、简介 Excel中的透视表适合小规模数据;如果想在稍微大一些的数据中进行高性能透视表分析,就要使用Power Pivot;再大一些数据,可能就需要大数据分析服务来进行分析。 Power Pivot,可以让没有技术背景的企业业务人员…...

Ansible自动化运维之playbooks剧本

文章目录 一.playbooks介绍1.playbooks简述2.playbooks剧本格式3.playbooks组成部分4.运行playbooks及检测文件配置 二.模块实战实例1.playbooks模块实战实例2.vars模块实战实例3.指定远程主机sudo切换用户4.when模块实战实例5.with_items迭代模块实战实例6.Templates 模块实战…...

Docker - Docker安装MySql并启动

因为项目需要连接数据库,但是远程服务器上的mysql我不知道账户和密码,这个时候便是docker发挥作用的关键时刻了! 目录 docker安装安装gcc卸载老docker(如有)安装软件包设置镜像仓库更新yum软件包索引安装docker启动doc…...

SQL Server 2019导入txt数据

1、选择导入数据 2、选择Flat file Source 选择文件,如果第一行不是列名,就不勾选。 3、下一步 可以看看数据是否是对的 4、下一步 选择SQL server Native Client 11,数据库选择导入进的库 输入连接数据库的名字和要导入的数据库 下一…...

科研 | Zotero导入无PDF的参考文献、书籍

最近在用Zotero在Word中插入参考文献的时候发现,有些没在网上找到对应的PDF版本,但也不是必须要PDF版本的参考文献或者参考书籍,如何才能不影响正常的文献排版 主要是先在网上找到对应文献,书籍,网页等的ISBN&#xf…...

【Docker】docker入门之dockerfile编写

文章目录 前言一、docker是什么?docker介绍docker指令 二、docker有什么用?三、docker怎么用?FROMMAINTAINERRUNENVWORKDIRCOPY、ADDUSEREXPOSE实例 四、docker注意事项docker容器中使用某些宿主机设备时需要额外的权限docker容器中文件内容中…...

javaee之黑马乐优商城1

问题1:整体的项目架构与技术选型 技术选型 开发环境 域名测试 如何把项目起来,以及每一个目录结构大概是什么样子 通过webpack去启动了有个项目,这里还是热部署,文件改动,内容就会改动 Dev这个命令会生成一个本地循环…...

滴滴前端一面面经(已挂)

面试过程 前段时间面试了滴滴的前端实习岗位,大厂的面试机会很难得,复习了很多前端知识。 拿到面试机会,是在地铁上投递了boss,当时hr看了我的简历就和我约了第二天的面试。电脑也没带,晚上就用手机复习了前端的一些…...

靠谱的适合上班族做的副业,这几种一定要试试!

作为上班族,我们的时间常常被工作和日常生活所占据,很少有机会去追求自己的兴趣和创造额外的收入来源。然而,副业是一种理想的选择,可以帮助我们实现多样化的发展,并在经济上取得一定的突破。正如书中所言:…...

VSCode连接服务器

Pycharm连接服务器参考我的另一篇文章Pycharm远程连接服务器_pycharm进入服务器虚拟环境终端_Jumbo星的博客-CSDN博客 本质上Pycharm和VSCode都只是IDE,没有什么好坏之分。但是因为Pycharm连接服务器(准确来说是部署)需要买professional。而…...

Python爬虫网络安全:优劣势和适用范围分析

各位Python程序猿大佬们!在当今数字化时代,网络安全是至关重要的。保护你的网络通信安全对于个人和组织来说都是非常重要的任务。在本文中,我将与你一起探讨Python网络安全编程中的代理、虚拟专用网络和TLS这三个关键概念,分析它们…...

swift APP缓存

这里的APP缓存是指Cache文件夹里的内容,iOS系统从iOS 10开始就支持系统自动清理功能了。 建议重要的内容不要放到 Cache文件夹中。 一、获取缓存 /// 获取缓存大小public static func getCacheSize() -> String {let folderPath NSSearchPathForDirectoriesIn…...

Linux中的dpkg指令(dpkg -l | grep XXX等)

dpkg是Debian包管理系统中的一个工具,用于在Linux系统中安装、升级、删除和管理软件包。它是Debian、Ubuntu以及基于它们的发行版中的包管理器。 dpkg 有很多用法,常用之举例:dpkg -l | grep apt 显示系统中安装的与apt相关(命名&#xff09…...

import type {} from ‘module‘ 具体解释

import type { AxiosInstance, AxiosRequestConfig } from axiosimport type { RequestConfig, RequestInterceptors } from ./typesimport type {} from module 是 TypeScript 中的一种导入语法,用于导入类型声明而不导入具体的值,它告诉 TypeScript 编…...

十年JAVA搬砖路——数据结构线性结构

线性结构 线性表是一种数据结构,用于存储一组有序的数据元素。它的特点是数据元素之间存在一对一的关系,每个元素只有一个前驱和一个后继(除了第一个元素和最后一个元素)。线性表可以用数组或链表来实现。 数据是指事物的符号表…...

Mybatis为什么需要预编译等一系列问题

1 SQL 预编译 SQL 预编译是一种提高数据库访问效率的技术,它通过将 SQL 语句预编译并存储在数据库中,减少每次执行时需要进行解析和编译的开销,从而提高数据库访问的效率。 在预编译阶段,SQL 语句会被解析并转换为可执行的二进制…...

【JVM基础】JVM入门基础

目录 JVM的位置三种 JVMJVM体系结构类加载器双亲委派机制概念例子作用 沙箱安全机制组成沙箱的基本组件 NativeJNI:Java Native Interface(本地方法接口)Native Method Stack(本地方法栈) PC寄存器(Program…...

【SpringBoot】详细介绍Spring Boot中@Component

在Spring Boot中,Component是一个通用的注解,用于标识一个类是Spring框架中的组件。Component注解是Spring的核心注解之一,它提供了自动扫描和实例化bean的功能。 具体来说,Component注解的作用是将一个普通的Java类转化为Spring…...

Redis执行lua脚本-Time函数-获取当前时间

演变过程: TIME 命令返回当前服务器的时间,包含两个条目 Unix 时间戳和这一秒已经过去的微秒数。 eval " local res redis.call(time); return res; " 0 eval " local current_time redis.call(TIME) local unix_timestamp tonumb…...

前端无需install快速调试npm包,Console-Import使用

Console-Import是一个Chrome扩展插件,可以方便地从Chrome控制台导入JavaScript和CSS资源。它可以帮助我们在开发过程中快速调试和测试第三方库或代码。 下载地址 安装 要安装Console-Import,请在Chrome网上应用店搜索“Console-Import”,然…...

构建稳定的爬虫系统:如何选择合适的HTTP代理服务商

在构建一个稳定、高效的爬虫系统中,选择合适的HTTP代理服务商是至关重要的一步。本文将介绍如何选取可靠且性能优秀的HTTP代理服务供应商,来完成搭建一个强大而稳定的爬虫系统。 1.了解不同类型和特点 -免费公开代理服务器:提供免费但可能存在限制或不…...

Python爬虫基础:使用Scrapy库初步探索

Scrapy是Python中最流行的网页爬虫框架之一,强大且功能丰富。通过Scrapy,你可以快速创建一个爬虫,高效地抓取和处理网络数据。在这篇文章中,我们将介绍如何使用Scrapy构建一个基础的爬虫。 一、Scrapy简介及安装 Scrapy是一个用…...

MacBookPro重装系统图文教程

关机 长按电源按钮10s即可强制关机 快捷键选择 Intel Command-R:获得安装过的最新的 macOS,但不会升级到最高版Option-Command-R:获得与 Mac 兼容的最新版 macOSShift-Option-Command-R:获得 Mac 自带的 macOS 或者与它最接近且…...

Android 6.0长按电源键添加重启菜单

重启图标&#xff1a;frameworks/base/core/res/res/drawable-hdpi/ic_lock_power_reboot_alpha.pngframeworks/base/core/res/res/drawable/ic_lock_power_reboot.xml <?xml version"1.0" encoding"utf-8"?> <!-- Copyright (C) 2014 The And…...

Python股票交易---均值回归

免责声明&#xff1a;本文提供的信息仅用于教育目的&#xff0c;不应被视为专业投资建议。在做出投资决策时进行自己的研究并谨慎行事非常重要。投资涉及风险&#xff0c;您做出的任何投资决定完全由您自己负责。 在本文中&#xff0c;您将了解什么是均值回归交易算法&#xff…...

机器人制作开源方案 | 桌面级机械臂--本体说明+驱动及控制

一、本体说明 1. 机械臂整体描述 该桌面级机械臂为模块化设计&#xff0c;包含主机模块1个、转台模块1个、二级摆动模块1个、可编程示教盒1个、2种末端执行器、高清摄像头&#xff0c;以及适配器、组装工具、备用零件等。可将模块快速组合为一个带被动关节的串联3自由度机械臂…...

有哪些前端调试和测试工具? - 易智编译EaseEditing

前端开发调试和测试工具帮助开发人员在开发过程中发现和修复问题&#xff0c;确保网站或应用的稳定性和性能。以下是一些常用的前端调试和测试工具&#xff1a; 调试工具&#xff1a; 浏览器开发者工具&#xff1a; 现代浏览器&#xff08;如Chrome、Firefox、Safari等&#…...

【数据结构】手撕单链表

目录 一&#xff0c;链表的概念及结构 二&#xff0c;接口实现 1&#xff0c;单链表的创建 2&#xff0c;接口函数 3&#xff0c;动态创立新结点 4&#xff0c;打印 5&#xff0c;头插 6&#xff0c;头删 7&#xff0c;尾插 8&#xff0c;尾删 9&#xff0c;查找 10&#xff…...

两个git本地如何配置两个ssh密钥for mac

我是在mac上操作的。windows上也差不多一样操作。 1.找到本地的.ssh文件。我的文件结构如下如&#xff1a; 文件结构&#xff1a; &#xff08;1&#xff09;两个known_hosts文件是自动生成的&#xff0c;不用管 &#xff08;2&#xff09;readme文件是我个人记事本记录笔记…...

iOS逆向进阶:iOS进程间通信方案深入探究与local socket介绍

在移动应用开发中&#xff0c;进程间通信&#xff08;Inter-Process Communication&#xff0c;IPC&#xff09;是一项至关重要的技术&#xff0c;用于不同应用之间的协作和数据共享。在iOS生态系统中&#xff0c;进程和线程是基本的概念&#xff0c;而进程间通信方案则为应用的…...