python数据分析及可视化(十九)Power BI中M函数的使用、数据建模、度量值、DAX

news2024/11/26 2:45:03

M函数

在这里插入图片描述
用鼠标操作的步骤背后的逻辑都是M函数,在编辑器里都会有体现出来,选中左侧的表名称,点击右键,选择高级编辑器,就会进入到高级编辑器界面,里面会显示每一步的操作步骤。

M函数基本规范

  1. M函数对大小写敏感,每一个字母必须按函数规范书写,第一个字母都是大写
  2. 表被称为Table,每行的内容是一个Record,每列的内容是一个List
  3. 行标用大括号{ },比如取第一行的内容:=表{0} //PQ的第一行从0开始
  4. 列标用中括号[ ],比如取自定义列的内容:=表[自定义]
  5. 取第一行自定义列的内容:=表{0}[自定义],使用的时候必须遵循规范。DataFrame对象的取值是先列后行。

常用的M函数:

点击主页–新建查询–新建源,点击空查询进入到查询语句界面,输入查询语句 =#shared ,回车后就会显示常见的M函数,单击某个函数,就会弹出示例,输入参数进行简单的调用。
在这里插入图片描述
● 聚合函数
○ 求和:List.Sum()
○ 求最小值:List.Min()
○ 求最大值:List.Max()
○ 求平均值:List.Average()
● 文本函数
○ 取文本长度:Text.Length()
○ 取文本空格:Text.Trim()
○ 取前n个字符:Text.Start(文本,n)
○ 取后n个字符:Text.End(文本,n)
● 提取数据函数
○ 从Excel表中提取数据:Excel.Workbook()
○ 从Csv/Txt中提取数据:Csv.Document()
● 条件函数
○ if else then

数据建模

数据建模使用的语言为DAX函数。PowerBI 的数据建模是利用Excel的Power pivot插件,已经内嵌到PowerBI 的桌面版中,两者的功能基本相同,透视表只能从单个表中取出数据。若要把其他表中的数据也放进来就要用到VLOOKUP函数,把其他的表合并进来,再把字段放到透视表中,这些在Excel中都可以实现。如果设计的数据量比较大,数据维度很多的话,Excel就不能满足需求,而PowerBI可以从多个表格、多种来源的数据中根据不同的数据维度,不同的逻辑来整合、聚合数据。

数据建模基础

加载数据建模示例文件,产品明细表中显示的电子产品的专卖店销售的产品为手机、电脑、平板,每一类又来自三种不同的品牌。不同的产品不同的类别,共有9个产品。销售明细表记录的是产品每一天的销售数据,类别表中的产品类别、品牌表中的品牌名称分别跟产品明细表中的类别和品牌是相互对应的,产品明细表中的产品编号和销售明细表中的商品编号进行对应。

  • 产品明细表
    在这里插入图片描述
  • 类别表
    在这里插入图片描述
  • 品牌表
    在这里插入图片描述
  • 销售明细表
    在这里插入图片描述
    可以在左侧的模型中建立关系,如果两个表的字段名称,字段内容都一样的话,会自动创建关系,如产品明细表和销售明细表的产品名称会自动创建关系,用线进行了连接。双击关系连接线,会弹出编辑关系的对话框,建立数据模型。
    在这里插入图片描述
    依次将类别表中的产品类别和产品明细表中的类别、品牌表中的品牌名称和产品明细表中的品牌依次建立联系。
    在这里插入图片描述
    基数:两个连接字段的对应关系,其实为两个表的字段建立关联。
    学生表 (学生id 学生姓名)
    课程表 (课程id 课程名)
    成绩表 (学生id 课程id 分数)
    班级表 (班级id 学生id)
    ● 多对一
    一个班级包含了很多学生
    ● 一对多
    很多学生都在一个班级
    ● 多对多
    一门课对应多个学生选择 一个学生也可以有多个课程可以选,学生表和课程表之间的关系。
    ● 一对一
    一门课程应该对应一个分数,成绩表和课程表之间的关系。

交叉筛选方向:表示数据筛选方向
● 单向:一个表只能对另一个表筛选,而不能反向
● 双向:两个表可以互相筛选

度量值

度量值用于一些最常见的数据分析。 简单汇总(如总和、平均值、最小值、最大值和计数)可以通过“字段”选项进行设置。 度量值的计算结果也始终随着你与的报表的交互而改变,以便进行快速和动态的临时数据浏览。度量值不是一列,与增加列很相似,是放在虚拟内存中的值,值会随着筛选的数据进行更改 。
根据建立的数据模型来做数据分析,统计各个品牌的销售额。销售额无法通过单一的一张表得到,在销售明细表中点右键,选择增加度量值,名称为销售金额,内容为 =SUM(‘销售明细’[销售额]),在右侧的字段里,会出现销售金额的字段名,图表跟正常的字段名不一样。
在这里插入图片描述
这时销售金额在表中看不到数据,可以切换到报表界面,可视化生成视觉对象中选择卡片图,把字段中的销售金额添加到可视化对象中的字段中,显示销售金额的值。
在这里插入图片描述
销售金额为销售列累计求和的值,不算是单独的一列,对原数据没有影响,只是一个度量值,是虚拟汇总的结果,一直在内存当中可以快速和动态的进行修改的临时数据,如果不保存的话,软件关闭,度量值就会消失。有时候要求人均的消费金额,平均金额等,但是又不想去新增加一列数据,就可以以新建度量值的方式进行简单的数据汇总,便于我们在画布中看到汇总的数据信息。
在报表界面新增切片器,把品牌表中的品牌名称放到切片器的字段里,不进行选择的时候,显示为总的销售金额,选中某一个框就显示某一个品牌的销售金额。
在这里插入图片描述
度量值会跟随报表的交互而改变得到的结果。
度量值是通过大量的公式来建立的虚拟字段的数据值,不会影响到原数据,也不会改变数据建模。把它放到报表上进行交互的时候就会体现它巨大的功能,也可以跟随切片器进行变化,度量值可以根据DAX函数来创建的,也被称为移动的公式。
销售总金额,日期数据里有层级结构的,可以在日期数据中选择年,月份的数据,这里的月份指的是每一年1月份的销售总额,可以新建一个切片器进行筛选。
在这里插入图片描述
也可以选择日期层次结构进行依次展开,分别显示获取的数据。
在这里插入图片描述
在这里插入图片描述
增加门店城市和日期表,建立关系如下图所示:
在这里插入图片描述
新建度量值是在表中建立的,后期建立的度量值比较多的话,需要一个表一个表的展开,不容易查找,可以新建一张表,所有的度量值都放到这张表里,便于管理。
在主页选项卡下,计算选项组中,新建表选项,新建一张表,表名为度量值,在度量值表处点右键,新建度量值,输入 销售总额 = SUM(‘销售明细’[销售额]) ,输入回车;依次创建本年和上一年的销售额,本年累计销售额 = TOTALYTD([销售总额],‘日期表’[日期]);上年累计销售额 = TOTALYTD([销售总额],SAMEPERIODLASTYEAR(‘日期表’[日期]))。TOTALYTD指的是从年初到本月的金额,实现的是累加,SAMEPERIODLASTYEAR返回的是上一年同期的日期表,
新建度量值 累计同比增长率 = DIVIDE([本年累计销售额],[上年累计销售额])-1
把上述新建的度量值放到矩阵里,就可以得到累计的销售同比增长率,增加年度、门店城市、品牌名称切片器可以更加精准的分析。
在这里插入图片描述
通过创建的4个度量值来实现了多种维度数据的比较,利用上下文的内容进行筛选,上下文指的是度量值所处的环境。北京2017年截止5月的苹果手机累计销售额,上下文数据指的是北京市、苹果品牌、手机、年度为2017、月份为5月份这五个维度。上下文环境不同,所展示的数据也不一样。度量值不会浪费内存,只有被拖拽到图表上才会执行运算,度量值可以循环使用。

DAX

DAX指的是数据分析表达式,从数据分析的层次上认识公式。数据分析从茫茫的数据中提取有用的信息,执行一定的运算并得出结论的过程。DAX的主要功能也是查询和运算,负责筛选出来有用的数据集合,再利用聚合函数执行的计算。度量值的计算依赖于上下文,上下文又分为外部上下文(可以看的见的筛选条件,标签、切片器等)和内部上下文(创建度量值的公式),查询、筛选函数可以扩大、限制、重置等。度量值是PowerBI建模的灵魂,DAX是度量值使用的灵魂。数据建模重要的是度量值,度量值重要的是DAX公式。它的使用范围可以在Power BI 的数据建模,除了创建度量值,也可以新建列。
在日期表中增加列,选择表工具选项卡下计算选项组中的 新建列,输入 月份 = FORMAT(‘日期表’[日期],“MM”),这里引用的表用单引号,引用的列用方括号,引用字符串用双引号,两个M表示两位数。
在这里插入图片描述
但是不建议在此处增加列,可以在转换数据,Power Query界面增加列。

DAX 参数的基本格式

● 表名用单引号’ ',如 ‘日期表’
● 字段用中括号[ ],如[日期]
● 度量值也是用中括号[ ]
● 引用字段始终要包含表名,用以和度量值(前没有表名称)区分开

聚合函数

这几个函数的使用跟Excel中一样。
● SUM
● AVERAGE
● MIN
● MAX
这几个函数可以循环访问表的每一行,并执行计算,迭代函数
● SUMX
● AVERAGEX
● MINX
● MAXX
● RANGX
其他聚合函数
● COUNT: 计数
● COUNTROWS: 计算行数
● DISTINCTCOUNT: 计算不重复值的个数

时间函数
● PREVIOUSYEAR/Q/M/D:上一年/季/月/日
● NEXTYEAR/Q/M/D:下一年/季/月/日
● TOTALYTD/QTD/MTD:年/季/月初至今
● SAMEPERIODLASTYEAR:上年同期
● PARALLELPERIOD:上一期
● DATESINPERIOD:指定期间的日期

筛选函数
● FILTER:筛选
● ALL:所有值,可以清除筛选
● ALLEXCEPT:保留指定列
● VALUES:返回不重复值

常用的DAX函数

CALCULATE函数

语法:
CALCULATE(<expression>,<filter1>,<filter2>…)
■ 第一个参数是计算表达式,可以执行各种聚合运算
■ 从第二个参数开始,是一系列筛选条件,可以为空;如果多个筛选条件,用逗号分隔
■ 所有晒选条件的交集形成最终的筛选数据集合
■ 根据筛选出的数据集合执行第一个参数的聚合运算并返回运算结果
求每一种产品的数量。
新建度量值,产品数量 = COUNTROWS(‘产品明细’) 。
在这里插入图片描述
使用CALCULATE函数创建度量值,产品数量1 = CALCULATE([产品数量])。在这里 [产品数量] 等效于 COUNTROWS(‘产品明细’)
在这里插入图片描述
求苹果的品牌有几种。
新建度量值, 产品数量2 = CALCULATE([产品数量],‘产品明细’[品牌]=“苹果”),只筛选品牌为苹果的产品,限制了外部的上下文,只计算筛选内容数据的计算。
在这里插入图片描述
新建度量值,产品数量3 = CALCULATE([产品数量],ALL(‘产品明细’)),筛选条件选择的是ALL函数,清除产品明细表中所有的筛选,显示的9为所有产品的数量,增加切片器,不会影响统计结果的变化。
在这里插入图片描述
计算每种数量占总产品数量的比重。
新建度量值,产品占比 = [产品数量]/[产品数量3],产品数量3 不会受外部数量的影响,好比除的是固定的值 一样。
在这里插入图片描述
新建度量值,产品数量4 = CALCULATE([产品数量],ALL(‘产品明细’[产品名称]),‘产品明细’[类别]=“手机”)。先用ALL清除了外部的上下文筛选的影响因素,增加筛选条件查询类别为手机的产品数量,从所有产品中统计了类别为手机的产品的数量,每行的结果返回都是3。
在这里插入图片描述

FILTER函数

主要是用于筛选,语法
FILTER(<table>,<filter>)
■ 第一个参数<table>是要筛选的表
■ 第二个参数<filter>是筛选条件
■ 返回的是一张表,不能单独使用,需要与其他函数结合使用
比较简单的筛选就没必要用FILTER函数。
新建度量值,产品数量5 = CALCULATE([产品数量],FILTER(ALL(‘产品明细’[品牌]),‘产品明细’[品牌]=“苹果”)),筛选的结果和产品数量2一样。
在这里插入图片描述
找出销售额超过2000万的城市的销售金额。新建度量值,销售金额大于2000万的城市的销售额 = CALCULATE([销售总额],FILTER(ALL(‘门店城市’),[销售总额]>20000000))。
在这里插入图片描述

HASONEVALUE

HASONEVALUE(<columnName>),返回值为True或者False

  • 参数只有一个,为列名;
  • 作用:判断外部上下文中是否为该列中的唯一值,做切片器交互时十分有用。
    不显示明细项的值。新建度量值,方法1 = IF(HASONEVALUE(‘产品明细’[产品名称]),BLANK(),[销售金额大于2000万的城市的销售额]),实现的效果不显示当前的细分项,只显示最后的总结果值。
    在这里插入图片描述
    不显示总计值,只显示明细项的内容。方法2 = IF(HASONEVALUE(‘产品明细’[产品名称]),[销售金额大于2000万的城市的销售额],BLANK()),实现的效果是只显示当前的明细项,不显示总计的结果。
    在这里插入图片描述

SUMX 函数

SUMX(<table>,<expression>),总计项为各明细项之和。该函数为迭代函数,可以对表进行逐行的运算。

  • 第一个参数为被运算的表 table
  • 第二个参数是对表中的每一行计算的表达式
    新建度量值,方法3 = SUMX(‘产品明细’,[销售金额大于2000万的城市的销售额]),实现的功能是总计项为各个明细项目的和。
    在这里插入图片描述
    SUMX函数可以代替CALCULATE函数,来实现方法3的效果。新建度量值,SUMX方法 = SUMX(‘产品明细’,SUMX(FILTER(ALL(‘销售明细’[门店城市]),[销售总额]>20000000),[销售总额])),实现的效果和方法3类似,没有用到之前“”“大于2000万的城市的销售额”的度量值,但是对内存的消耗比较大。在实际分析中遇到相似的情况可以根据具体的逻辑关系和展现出来的需求来选择不同的方式来进行处理。
    在这里插入图片描述

EARLIER函数

之前使用Power BI 进行数据分析的时候都是对整列字段进行的操作,并没有做更细分的分析,如果要分析数据的每一行,提取每一行的数据,在Excel中是比较容易实现的,Excel是对单元格的操作,也可以借助EARLIER函数来实现。
EARLIER(<column>,<number>)

  • 第一个参数是列名称
  • 第二个参数一般可以省略
  • EARLIER函数提取本行对应的该列的值,实际上就是提取本行和参数列交叉的单元格
    该函数是指定上下文重要的工具。
    导入订单表,点击主页,查询选项组中转换数据,进入Power Query界面,选择添加列选项卡下常规选项组中的索引列,选择从1开始的,更改名称为序号。选择主页,关闭并应用。
    求两个订单的时间间隔,从下一个订单的日期减去当前订单的日期,为了计算方便,新建列提取出来下一个订单日期,下一个订单日期 = SUMX(FILTER(‘订单表’,‘订单表’[序号]=EARLIER(‘订单表’[序号])+1),‘订单表’[订单日期]),查询的是订单表,查询的内容是订单表的序号,用EARLIER函数获取当前行的序号。再新建一列,把这两列用于相减得到的相隔天数,间隔 = IF([下一个订单日期]=BLANK(),BLANK(),[下一个订单日期]-[订单日期]),然后把间隔列的数据类型改为整数,就得到了两个订单之间的间隔日期。最后一行有空值,没有下一个日期,为了避免出现不合理的数值,用IF 进行了判断。
    在这里插入图片描述
    求每个订单日期的累计销售金额。第二天的累计金额为第二天加上第一天的金额。新建列,累计销售额 = SUMX(FILTER(‘订单表’,‘订单表’[序号]<= EARLIER(‘订单表’[序号])),‘订单表’[销售额]),用EARLIER函数求当前行的序号,再把小于等于当前行的所有行进行累加。
    在这里插入图片描述
    求截止目前订单每种产品的销量。新建列,产品累计销量 = SUMX(FILTER(‘订单表’,‘订单表’[序号]<= EARLIER(‘订单表’[序号]) && ‘订单表’[产品名称]=EARLIER(‘订单表’[产品名称])),‘订单表’[销售数量]),不仅可以用EARLIER函数筛选小于当前行的序号,还可以利用它求得当前行的产品名称,同时符合两个条件的销量进行累加,得到最终的结果。先获取本行的记录,然后再做各种聚合运算,本行的记录可以称为行的上下文,EARLIER正是获取上下文的函数之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用JavaScript库

1、前端工具类库 jQuery是一个快速、小型且功能丰富的 JavaScript 库&#xff0c;它使HTML文档遍历和操作、事件处理、动画和 AJAX 之类的事情变得更加简单。当时jQuery库不但简化了代码&#xff0c;而且提供出色的跨浏览器支持&#xff0c;其极大的提高了 Web 开发人员的工作效…

sqlserver连接时报错 [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

电脑重新安装系统了&#xff0c;当我再次链接数据库时 &#xff0c;发现报错 [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序很明显是少了驱动&#xff0c;只要安装了Microsoft ODBC Driver 11 for SQL Server这个驱动就可以了。 没安装驱动…

实时性升至秒级!飞桨PaddleSpeech赋能金融双录业务走向智能化

听说IT圈十个人里有九个是男性开发者&#xff0c;女生并不多&#xff0c;陈雪儿可以算是这个群体中独特的存在。 作为杭州谐云科技有限公司&#xff08;简称谐云&#xff09;智能边缘团队的AI技术专家&#xff0c;陈雪儿带领团队历经一年半研发的“金融双录智能质检系统”&…

功率放大器怎么选择型号的(功率放大器选购技巧)

很多电子工程师虽然频繁使用功率放大器&#xff0c;但是对于功率放大器的选择和选购技巧还是不清楚&#xff0c;下面就来为大家介绍一下如何挑选合适的功率放大器型号。 一般情况下&#xff0c;功率放大器购买决策的主要考虑因素是输出功率、线性度、频率范围和VSWR失配容限。放…

网络和VPC简单介绍

网络和VPC 传统网络 传统网络从一开始就是一个分布式的网络&#xff0c;没有中心的控制节点&#xff0c;网路中的各个设备之间通过口口相传的方式学习网络的可达信息&#xff0c;由每台设备自己决定要如何转发&#xff0c;这直接导致了没有整体观念&#xff0c;不能从整个网络…

免费PDF转换器软件有哪些?不妨试试这几款

在工作中和学习中很多小伙伴都有转换文件的需求&#xff0c;例如将PDF文件转换为word、excel、PPT、图片等类型的文件&#xff0c;这时候我们就需要一款专业且高效率的PDF转换器来帮助我们处理文件&#xff0c;那么转换器的性价比也是我们需要考虑的&#xff0c;那么免费PDF转换…

内存管理系统

文章目录前言前置知识makefile位图内存池规划实验操作实验一实验二实验三实验四实验五前言 博客记录《操作系统真象还原》第八章实验的操作~ 实验环境&#xff1a;ubuntu18.04VMware &#xff0c; Bochs下载安装 实验内容&#xff1a; 实现 assert 断言。实现字符串操作函数…

合并表记录 C语言实现

合并表记录 描述 数据表记录包含表索引index和数值value&#xff08;int范围的正整数&#xff09;&#xff0c;请对表索引相同的记录进行合并&#xff0c;即将相同索引的数值进行求和运算&#xff0c;输出按照index值升序进行输出。 提示: 0 < index < 11111111 1 <…

产品经理的技术脑:产品是如何工作的?

产品在web中的工作流程如图&#xff1a; 浏览器工作流程&#xff08;客户端&#xff09;&#xff1a; 用户访问网站时输入的URL&#xff0c;浏览器是无法根据输入的URL找到web服务器的&#xff0c;需要通过IP地址找到web服务器&#xff0c;因此&#xff0c;浏览器对用户URL的处…

6.5 工具-ElasticSearch

目录 6.5.1 ElasticSearch概述 6.5.1.1 什么是ElasticSearch 6.5.1.2 Lucene 6.5.1.3 Elastic Stack 6.5.1.4 Solr与ES 6.5.1.4.1 背景 6.5.1.4.2 区别 6.5.1.5 正向索引与倒排索引 6.5.1.5.1 正向索引 6.5.1.5.2 倒排索引 6.5.2 Elasticsearch安装 6.5.3 Elastics…

机器视觉硬件篇--线激光3d相机介绍及编程

一、3D相机简介常见的三维视觉技术&#xff0c;包含双目、ToF、激光三角、结构光等毫米级&#xff1a;双目、ToF、结构光(散斑)的精度为 mm 级&#xff0c;多见于消费领域&#xff0c;如&#xff1a;导航避障&#xff0c;VR/AR&#xff0c;刷脸支付等微米级&#xff1a;线激光、…

08-什么是类加载器,类加载器有哪些, 双亲委派模型机制?

1.类加载器 1.实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。 2.虚拟机设计团队把加载动作放到 JVM 外部实现&#xff0c;以便让应用程序决定如何获取所需的类。 3.类加载器虽然只用于实现类的加载动作&#xff0c;但是对于任意一个类&#xff0c;都需要…

ES索引规划方案

ES索引规划方案 1.引言 《ES索引规划方案》是研发部门针对审计系统需求&#xff0c;对海量日志数据进行实时存储和查询的解决方案&#xff0c;经过不断完善整理成册&#xff0c;以供后续相关开发人员学习使用 1.1.术语 序号用语说明1时序索引以时间为轴&#xff0c;数据只有…

Blender里的三种绑定 (二)约束

文章目录Blender里的三种绑定.约束.变换约束.复制位置.复制旋转.复制缩放.限定距离.限定位置&#xff0c;限定旋转&#xff0c;限定缩放.维持体积.变换.追踪约束.钳制到.阻尼追踪.锁定追踪.拉伸到.标准跟随.关系约束.动作.骨架.子级.基面.跟随路径.轴心.缩裹.Blender里的三种绑…

ViT(Version Transformer)原始论文解读

An Image is Worth 16x16 Words Transformers for Image Recognition at Scale paper&#xff1a;2010.11929.pdf (arxiv.org) code&#xff1a;google-research/vision_transformer (github.com) 期刊/会议&#xff1a;ICLR 2020 摘要 虽然Transformer体系结构已经成为自然…

【保姆级】@PostConstruct @PreDestroy使用示例

简介PostConstruct & PreDestroy被PostConstruct注解修饰的方法会在服务器加载Servlet的时候运行&#xff0c;并且只会被服务器调用一次&#xff0c;类似于Servlet的init()方法&#xff0c;被PostConstruct注解修饰的方法会在构造函数之后&#xff0c;init()方法执行之前执…

群晖NAS搭建portainer

参考&#xff1a; 群晖、威联通、Linux最强docker管理工具portainer安装及汉化教程2022最新版本 Portainer官方文档 How to run Docker commands without sudo on a Synology NAS 因为群晖的NAS是基于linux但是限制很多的系统&#xff0c;有一些东西通过命令行操作可能会遇到权…

Git 常见错误 之 fatal: Authentication failed 简单解决方法

Git 常见错误 之 fatal: Authentication failed 简单解决方法 目录 Git 常见错误 之 fatal: Authentication failed 简单解决方法 一、简单介绍 二、问题现象 三、解决方法 1、修改全局配置用户名 和 邮箱 2、修改凭证(具体问题具体分析) 一、简单介绍 Git(读音为/gɪt…

系分 - 案例分析 - 需求分析

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录系分 - 案例分析 - 需求分析结构化分析SA数据流图DFD答题技巧典型例题题目描述参考答案面向对象的分析OOA用例图用例模型细化用例描述用例关系【包含、扩展、泛化】分析模型定义概念类确定类之间的关系类图…

拉伯证券|LPR利率三连降 全国首套房贷利率今年或“奔三”

2022年LPR接连下调。新年伊始&#xff0c;“房贷一族”迎来好消息&#xff0c;一年一度存量房贷利率重定价的日子到了。关于房贷利率挂钩借款商场报价利率(LPR)、重定价日为每年1月1日的住宅顾客&#xff0c;本年的房贷利率将迎来下降。不仅如此&#xff0c;存量公积金借款也于…