首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何通过引用列位置将派生列添加到使用Excel PowerQuery的旋转表中

如何通过引用列位置将派生列添加到使用Excel PowerQuery的旋转表中
EN

Stack Overflow用户
提问于 2019-05-16 15:24:30
回答 1查看 189关注 0票数 1

我正在使用Excel中的PowerQuery创建一个具有旋转数据的常规报告。该中心最近四个季度的列名按日期顺序排列(例如,2018年9月30日、2018年12月31日、2019年3月31日、2019年6月30日)。每个日期列中的值都是数字的。每次报告运行时,列名都会更改,because...new日期!

行代表不同的实体(例如妈妈银行、爸爸银行、爷爷银行)。我需要创建一些派生列来计算最近季度列(最后一列)和前一季度列(例如3个月移动,6个月移动)之间的差异。以下是一些示例数据:

这就是数据在枢轴之前的样子:

代码语言:javascript
运行
AI代码解释
复制
Entity_Name       Quarter Date    Value
Bank of Dad       30/09/2018      4
Bank of Dad       31/12/2018      2
Bank of Dad       31/03/2019      3
Bank of Dad       30/06/2019      3
Bank of Grandpa   30/09/2018      4
Bank of Grandpa   31/12/2018      6
Bank of Grandpa   31/03/2019      1
Bank of Grandpa   30/06/2019      2
Bank of Mum       30/09/2018      5
Bank of Mum       31/12/2018      5
Bank of Mum       31/03/2019      4
Bank of Mum       30/06/2019      4

在枢轴之后:

代码语言:javascript
运行
AI代码解释
复制
Entity_Name       30/09/2018     31/12/2018     31/03/2019     30/06/2019
Bank of Grandpa   4              6              1              2
Bank of Mum       5              5              4              4
Bank of Dad       4              2              3              3

这就是我想要达到的目标(三个月前和六个月前的最后一个季度):

代码语言:javascript
运行
AI代码解释
复制
Entity_Name       Movement (3 months)   Movement (6 months)
Bank of Grandpa   1                     -4
Bank of Mum       0                     -1
Bank of Dad       0                      1

我在互联网上进行了一次很好的搜索,我发现了类似的例子,但并不完全是这样的(通常与重命名列或从列中筛选值有关)。我的问题其实比我所发现的要简单得多,所以我觉得这应该是相对简单的,我只是遗漏了一些其他人都不需要质疑的显而易见的问题。我是第一次在PowerQuery工作的熊猫/蟒蛇女孩(我需要把这个交给一个客户,以便正常运行,所以我需要报告来“讲”他们的语言--也就是excel。)PowerQuery确实做得很好(在excel中加入并分组?-酷!)其他的事情都是有点斗志-像这样!

我有两种方法来看待这个问题--首先,试着在支点之前做到这一点,这样我就不会为改变列名而挣扎了。这是卷曲的。如果只有一个实体,它可能会更简单,但是多个实体会使它变得棘手。我最喜欢的方法是从旋转数据中派生列,这与以前如何编写此报告(在excel中,而不是使用power查询)一致。要做到这一点,我需要在添加新列时按位置引用列。

如果我能解决一个通过位置引用保存另一列值的列返回的问题,那么我就有99%的方法在那里,所以我在寻找解决问题的特定部分的帮助。

也就是说,通过使用列的位置引用(而不是显式列名)来达到这一点:

代码语言:javascript
运行
AI代码解释
复制
Entity_Name        30/09/2018    ...    Values_in_col_1   
Bank of Dad        4             ...    4
Bank of Grandpa    4             ...    4
Bank of Mum        5             ...    5

这就是我尝试过的:

代码语言:javascript
运行
AI代码解释
复制
let
     Source = Excel.CurrentWorkbook(){[Name="Table14"]}[Content],
     #"Changed Type" = Table.TransformColumnTypes(Source,{{"Entity name", type text}, {"Quarter date", type date}, {"Value", Int64.Type}}),
      #"Sorted Rows" = Table.Sort(#"Changed Type",{{"Entity name", Order.Ascending}, {"Quarter date", Order.Ascending}}),
     #"PrevTable" = Table.Pivot(Table.TransformColumnTypes(#"Sorted Rows", {{"Quarter date", type text}}, "en-NZ"), List.Distinct(Table.TransformColumnTypes(#"Sorted Rows", {{"Quarter date", type text}}, "en-NZ")[#"Quarter date"]), "Quarter date", "Value", List.Sum),
     #"Column names" = Table.ColumnNames(#"PrevTable"),
     #"Test 1" = Table.AddColumn(#"PrevTable", "Test1", each #"Column names"{1}),
     #"Test 2" = Table.AddColumn(#"Test 1", "Test2", each Table.SelectRows(#"PrevTable", each(Record.Field(_,Table.ColumnNames(#"PrevTable"){1}))))
in
     #"Test 2"

测试1:我已经到了可以创建列名列表并通过索引引用它们的地步--但是返回的是作为列名的值列,而不是实际值!哈哈。

测试2:我还尝试了另一种方法,看看我是否能够检索行值(尝试重做我发现的代码,这也是为了过滤),但是它返回一个没有列的表。

下面是我从代码中得到的表:

代码语言:javascript
运行
AI代码解释
复制
Entity_Name        30/09/2018    ...    Test1        Test2   
Bank of Dad        4             ...    30/09/2018   [Table]
Bank of Grandpa    4             ...    30/09/2018   [Table]
Bank of Mum        5             ...    30/09/2018   [Table]

如果单击“Table”值,就会得到以下类型的响应:

Expression.Error:我们不能将值4转换为逻辑类型。

任何帮助都是非常感激的--这么多的学习工具,那么少的大脑!

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 16:41:24

我花了3个小时搜索并写了一个很长的问题,不知怎么的,我奇迹般地找到了答案这里的线索。

以下是我如何创建(其中一个)派生列:

代码语言:javascript
运行
AI代码解释
复制
#"Quarterly movement" = Table.AddColumn(#"PrevTable", "Quarterly change", each (Record.Field(_, Table.ColumnNames(#"PrevTable"){4}) - Record.Field(_, Table.ColumnNames(#"PrevTable"){3})))

如果我只想创建一个列,它使用位置引用(问题的核心)来反映另一个值:

代码语言:javascript
运行
AI代码解释
复制
#"Test" = Table.AddColumn(PrevTable, "Test", each (Record.Field(_, Table.ColumnNames(#"PrevTable"){1})))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56177754

复制
相关文章
matlab 稀疏矩阵 乘法,Matlab 矩阵运算[通俗易懂]
说明:这一段时间用Matlab做了LDPC码的性能仿真,过程中涉及了大量的矩阵运算,本文记录了Matlab中矩阵的相关知识,特别的说明了稀疏矩阵和有限域中的矩阵。Matlab的运算是在矩阵意义下进行的,这里所提到的是狭义上的矩阵,即通常意义上的矩阵。
全栈程序员站长
2022/09/12
3.1K0
LeetCode 311. 稀疏矩阵的乘法
给你两个 稀疏矩阵 A 和 B,请你返回 AB 的结果。 你可以默认 A 的列数等于 B 的行数。
Michael阿明
2020/07/13
1.8K0
伴随矩阵求逆矩阵(已知A的伴随矩阵求A的逆矩阵)
在之前的文章《线性代数之矩阵》中已经介绍了一些关于矩阵的基本概念,本篇文章主要就求解逆矩阵进行进一步总结。
全栈程序员站长
2022/07/28
1.8K0
伴随矩阵求逆矩阵(已知A的伴随矩阵求A的逆矩阵)
稀疏矩阵
在矩阵中,如果数值为0的元素数目远远多于非0元素的数目,并且非0元素分布无规律时,则称该矩阵为稀疏矩阵(sparse matrix);与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。 当一个矩阵中含有大量的0值时,可以将矩阵以稀疏矩阵的方式存储以解决资源。在R中,可以用Matrix这个包, 它可以将矩阵转化为稀疏矩阵。
生信编程日常
2020/11/24
7960
稀疏矩阵
java矩阵类,矩阵的乘法
问题如下 矩阵成积.jpg 我采用的是3重循环,先计算的列的结果,应该还可以先计算行的结果,然后求出矩阵的乘法。没有过多的技巧,就是循环的使用。 相关的code package day20180
热心的社会主义接班人
2018/08/02
1.6K0
java矩阵类,矩阵的乘法
[每日一题]矩阵乘法
本次的题目来源于C语言网比赛栏目八月月赛第一题,记得去试试看看自己能不能AC哦!!! 题目描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: A = 1 2 3 4 A的2次幂 7 10 15 22 输入 第一行是一个正整数N、M(1< =N< =30, 0< =M< =5),表示矩阵A的阶数和要求的幂数 接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 输出 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
编程范 源代码公司
2018/04/18
1.3K0
矩阵乘法
#include <stdio.h> #include <stdlib.h> #include <math.h> #define LEN 3
WindCoder
2018/09/20
8220
矩阵范数求导规则_矩阵逆的范数和矩阵范数的逆
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/05
8440
矩阵范数求导规则_矩阵逆的范数和矩阵范数的逆
矩阵运算_逆矩阵的运算
矩阵就是由多组数据按方形排列的阵列,在3D运算中一般为方阵,即M*N,且M=N,使用矩阵可使计算坐标3D坐标变得很方便快捷。下面就是一个矩阵的实例:
全栈程序员站长
2022/09/20
1.6K0
稀疏矩阵计算器(三元组实现矩阵加减乘法)
稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储(只存储非零元)和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。
glm233
2020/09/28
2.2K0
[数据结构] 稀疏矩阵的存储
稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。
泰坦HW
2020/07/22
1.2K0
[数据结构] 稀疏矩阵的存储
矩阵分析(十四)矩阵的广义逆
若A\in \mathbb{C}^{m\times n}, X\in \mathbb{C}^{m\times m},以下矩阵方程称为Penrose方程
mathor
2021/04/02
2.1K0
理解矩阵乘法
大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。 矩阵减法也类似。 矩阵乘以一个常数,就是所有位置都乘以这个数
ruanyf
2018/04/13
1.5K0
理解矩阵乘法
高斯约旦消元法求逆矩阵的思想(分块矩阵的逆矩阵)
求一个 N × N N×N N×N的矩阵的逆矩阵。答案对 1 0 9 + 7 10^9+7 109+7取模。
全栈程序员站长
2022/07/29
1.1K0
如何求逆矩阵_副对角线矩阵的逆矩阵怎么求
作为一只数学基础一般般的程序猿,有时候连怎么求逆矩阵都不记得,之前在wikiHow上看了一篇不错的讲解如何求3×3矩阵的逆矩阵的文章,特转载过来供大家查询以及自己备忘。当然这个功能在matlab里面非常容易实现,只要使用inv函数或A^-1即可,但是有时候参加个考试什么的还是要笔算的哈哈~
全栈程序员站长
2022/09/25
1.6K0
如何求逆矩阵_副对角线矩阵的逆矩阵怎么求
09:矩阵乘法
09:矩阵乘法 总时间限制: 1000ms 内存限制: 65536kB描述 计算两个矩阵的乘法。n*m阶的矩阵A乘以m*k阶的矩阵B得到的矩阵C 是n*k阶的,且C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + …… +A[i][m-1]*B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。 输入第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100 然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,
attack
2018/04/03
1.6K0
非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质
在实际应用的时候,发现返回值都是0,于是跟踪到这里,发现了这个问题:JtJ不是满秩,因此JtJN保持初始化的零值。
全栈程序员站长
2022/11/17
1K0
非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质
求矩阵的逆
回到学校,整理完行李,再收拾一下U盘里的东西。看到刚学线代那会儿瞎整的求矩阵的逆的代码。
饶文津
2020/06/02
6640
算法系列-----矩阵(四)-------------矩阵的乘法
而如果该函数被下面调用了,已经判断了a的长度和b的长度是相等的,所以这里只是单独的抽出来而已
wust小吴
2022/03/04
5060
矩阵乘法问题
问题描述 给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。 ---- 矩阵乘法
我没有三颗心脏
2018/04/26
1.5K0
矩阵乘法问题

相似问题

JSON数据未在AJAX POST请求中发送

12

android json post数据未在php中显示/接收

10

JSON未在rails post中解析

14

使用$.post发送JSON数据

20

ClojureScript AJAX POST发送json数据

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档