数据分析表达式的制作方法_3

文档序号:9506156阅读:来源:国知局
表400的每一个单元格自动地、递归地重新执行。还应理解,静态总计380可指示已销售的所有产品的总和,但DAX410可改为用来提供已销售产品的多维视图(例如,产品总和、年度总和以及按照产品和年度的组合的总和)。
[0045]图5-6示出了图1的数据表112 (被示为库存表500)以及基于图3和图5的数据表(例如,图3的销售表300和图5的库存表500)的数据透视表600的特定实施例。库存表500的行510中的每一个都可表示可供销售的特定产品,并且列520-540可表示与特定产品相关联的数据。例如,列520可表示特定产品的产品标识符(ProdID),列530可表示特定产品的描述(Descript1n),而列540可表示特定产品有多少单位当前在库存中(In-Stock)。
[0046]库存表500的一列或多列还可包括DAX列定义。例如,已销售(Sold)单位列550具有相关联的DAX列定义“SUM[Qty] ”560。已销售单位列550的各行可通过对图3中的对应于各种产品的Qty列350进行合计来填充。例如,单元格552可通过对图3的销售表300进行过滤以获得ProdID为‘789Green’的行然后对其余的行的Qty列进行合计,来填充。将会理解,为了填充单元格552,可自动标识和遍历图3的销售表300和图5的库存表500 (图3的ProdID列370和图5的列520是相关的)之间的关系(例如,先前用户定义的关系)。应当注意,过滤表(例如,图3的销售表300)可包括布尔过滤器以及基于表的过滤器。
[0047]数据透视表600可以对多个数据表的各列进行数据透视。在图6所示的特定实施例中,数据透视表600对图3的日期列320以及图5的描述列530和图3的CustID列330的组合进行透视。即,尽管数据透视表600对来自一个表,即图3的销售表300的数据进行合计,但该合计可基于来自图3的销售表300和图5的库存表500两者的上下文。
[0048]数据透视表600可接收类似于图4的DAX 410的DAX 610 ^ SUM [Amount] ”,并且可以递归地计算DAX 610的值以填充数据透视表600的单元格。填充数据透视表600可包括标识图3的销售表300和图5的库存表500之间的关系,以及从图3的销售表300和图5的库存表500两者中检索数据。例如,在图6所示的特定实施例中,可以自动标识图3的表300和图5的表500之间的关系。该关系可包括图3和图5的相关列340和520,这两列都是产品标识符(ProdID)列。在一特定实施例中,相关列是索引列。因此,数据透视表600的行标题612 “Blue Bike”可基于图3的销售表300和图5的库存表500之间的所标识的关系来填充。数据透视表600的第一说明性单元格614可以与第一上下文“Time [Year]=2009 ;Product [Descript1n] =’Red Bike’”相关联,而数据透视表600的第二说明性单元格 616 可以与第二上下文“Time [Year] = 2008 ; Product [Descript1n] =,Green Trike,;Customer [CustID] =,Jon200,,,相关联。
[0049]由此,将会理解,DAX(例如,图5的DAX 560和图6的DAX 610)可允许跨多个表(例如,图3的销售表300和图5的库存表500)进行多维数据分析。还将理解,这样的多维数据分析可以在表本身处(例如,在图5的列550处)以及在数据透视表(例如,图6的数据透视表600)处进行。
[0050]图7是示出接收并处理数据分析表达式的方法700的特定实施例的流程图。在一说明性实施例中,方法700可由图1的系统100执行。
[0051]方法700包括在702,在电子表格的数据透视表处接收DAX。例如,在图1中,DAX104可以在数据透视表122处接收。为了阐释,参考图4,DAX可以是DAX“ SUM [Amount] ”410。
[0052]方法700还包括在704,执行DAX。例如,在图1中,电子表格分析模块126可执行DAX 104。对于数据透视表的特定单元格,执行DAX包括在706确定与特定单元格相关联的上下文、在708基于该上下文来计算DAX的值以及在710在特定单元格处输出计算出的值。例如,在图1中,可确定上下文,可检索基于上下文的数据124,并且可以在数据透视表122的特定单元格处计算和输出DAX值130。为了阐释,参考图4,特定单元格可以是图 4 的单元格 414,上下文可以是 “Time [Year] = 2008 ;Product [ProdID] =’ 789Green’ ;Customer [CustID] =’ Jon200’”,并且在单元格414处输出的DAX的计算出的值可以是“$1,500”。
[0053]图8是示出接收并处理数据分析表达式的方法800的另一特定实施例的流程图。在一说明性实施例中,方法800可由图1的系统100或图2的系统200执行。
[0054]方法800包括在802,在电子表格的数据透视表处接收DAX。DAX包括用电子表格的固有公式语言表达的用户定义的公式(例如,DAX可包括现有电子表格函数并且可包括类似于现有电子表格函数的句法)。例如,在图1中,DAX 104可以在数据透视表122处接收。
[0055]方法800还包括在804,执行DAX。例如,在图1中,电子表格分析模块126可执行DAX 104。对于数据透视表的特定单元格,执行DAX 104包括在806,确定与该特定单元格相关联的上下文,包括基于特定单元格来过滤至少一个数据表。执行DAX 104还包括在808,基于上下文来计算DAX 104的值,以及在810,在特定单元格处输出计算出的值。例如,在图1中,可确定上下文,可基于上下文来过滤数据表112(例如,不匹配上下文的行可被临时隐藏或忽略),可检索基于上下文的数据124,并且可以在数据透视表122的特定单元格处计算和输出DAX值130。
[0056]方法800还包括在812响应于数据透视表处的改变来接收查询,或者在814检测至少一个数据表处的改变。例如,在图1中,可进行数据透视表122的数据透视操作,或者可检测数据表112中的改变。在一说明性实施例中,接收查询(如此处参考图2的逻辑204所描述的),并且检测至少一个数据表处的改变(如此处参考图2的逻辑206所描述的)。
[0057]方法800包括在816,通过返回到806来自动重新执行DAX 104。例如,在图1中,电子表格分析模块126可自动重新执行DAX 104。在一说明性实施例中,如此处参考图2的命令208和模块220所描述的,执行DAX 104的自动重新执行。
[0058]图9是示出接收并处理数据分析表达式的方法900的另一特定实施例的流程图。在一说明性实施例中,方法900可由图1的系统100执行。
[0059]方法900包括在902接收输入,该输入包括第一电子表格的特定列的列定义。该输入包括基于第一电子表格的至少一列和基于第二电子表格的至少一列的DAX。例如,参考图5,可接收DAX “SUM[Qty] ”560作为列550的列定义,其中DAX 560引用图3的销售表300和图5的库存表500。
[0060]方法900还包括在904,基于DAX来确定第一电子表格和第二电子表格之间的关系。在一特定实施例中,关系是相关列,索引列或在两个电子表格中具有不同名称的列。例如,可标识图3的销售表300和图5的库存表500之间的关系,诸如将图3的ProdID列340和图5的列520标识为相关列。
[0061 ] 方法900还包括在906,通过执行DAX来填充特定列。对第一电子表格的特定行执行DAX包括:在908计算DAX的值以及在910在作为特定列和特定行的成员的单元格处输出计算出的值。该值基于第一电子表格的特定行中的第一数据并基于从第二表中检索到的基于同特定行相关联的行上下文的第二数据,来计算。例如,参考图5,单元格552可通过对销售表300中的匹配行上下文“Product [ProdID] =’ 789Green’”的行进行合计并在单元格552处输出所得值来填充。
[0062]方法900包括在912接收对第一电子表格的各行的子集的选择,以及在914通过返回到908来自动对所选行子集重新执行DAX。例如,参考图5,可接收对行510中的一个或多个的选择并且可以对所选行重新执行DAX 560。
[0063]图10描绘了计算环境1000的框图,该计算环境包括可用于支持根据本发明的计算机实现的方法、计算机程序产品和系统组件的实施例的计算设备1010。在一说明性实施例中,计算设备1010可包括图1的数据接口 110、图1的存储器114、图1的模块118、126、图2的逻辑204-206或图2的模块220。图1的数据接口 110、图1的存储器114、图1的模块118、126、图2的逻辑204-206或图2的模块220中的每一个都可包括计算设备1010或其一部分。
[0064]计算设备1010包括至少一个处理器1020和系统存储器1030。取决于计算设备的配置和类型,系统存储器1030可以是易失性的(诸如随机存取存储器,即“RAM”)、非易失性的(诸如只读存储器,即“ROM”)、闪存以及即使在未提供电源时也保持已存储数据的类似存储器设备)或两者的某种组合。系统存储器1030通常包括操作系统1032、一个或多个应用平台1034、一个或多个应用(例如,电子表格应用1036),并且可包括与一个或多个应用相关联的程序数据(例如,OLAP
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1