首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【实战】将多个不规则多级表头的工作表合并为一个规范的一维表数据结果表

最近在项目里,有个临时的小需求,需要将一些行列交叉结构的表格进行汇总合并,转换成规范的一维表数据结构进行后续的分析使用。...从一开始想到的使用VBA拼接字符串方式,完成PowerQuery的M语言查询字符串,然后转换成使用插件方式来实现相同功能更顺手,最后发现,在当前工作薄里使用PowerQuery来获取当前工作薄的其他工作表内容...,也是可行的,并且不需要转换智能表就可以把数据抽取至PowerQuery内。...再最后,发现PowerQuery直接就支持了这种多工作表合并,只要自定义函数时,定义的参数合适,直接使用自定义函数返回一个表结果,就可以展开后得到多行记录的纵向合并(类似原生PowerQuery在处理同一文件夹的多个文件纵向合并的效果...整个实现的过程,也并非一步到位,借着在知识星球里发表,经过各星友一起讨论启发,逐渐完善起来最终的结果。探索是曲折的,但众人一起合力时,就会有出乎意料的精彩结果出来。

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个list 里面存放实体类,根据多个字段进行分组,最后将结果都保存,返回一个map 集合,一层一层的map 集合

    目录 1 需求 2 实现 1 需求 现在从数据库查询出一个list 集合的数据,是一个实体类,现在需要根据多个字段进行分组,最后只是返回一个map 集合。...一层一层的 2 实现 如果你想在最后一层的列表数据上进行计算,并将计算结果保存并返回一个Map集合,可以按照以下方式修改代码: import java.util.List; import java.util.Map...calculateValue方法接收一个最后一层的列表数据,并根据实际需求进行计算,并返回计算结果。这样,最终的分组结果将包含计算结果的Map集合。...如果在最后一层,需要传另外的参数 如果calculateValue方法需要接收一个最后一层的列表数据和一个额外的字符串变量,你可以将该变量添加到方法的参数列表中,并在Collectors.collectingAndThen...,calculateValue方法的参数列表中添加了一个String类型的额外参数extraParameter。

    70710

    一文看明白并查集

    并查集可以进行集合合并的操作(并) 并查集可以查找元素在哪个集合中(查) 并查集维护的是一堆集合(集) 对于并查集我们需要知道两个信息 元素的值 集合的标号 用什么样的数据结构表示并查集?...初始时每个节点都是一个单独的集合,父节点指向自己, 如果要合并两个集合,那么将a的父节点设为b,将a插入到b节点下充当子节点 那么如何判断是否是同一集合呢?...合并为同一集合: p[find(a)] = find(b); 查找是否同一集合 find(a) == find(b) 如果想知道每一个集合的数量呢?...我们引入一个size集合,存储每个节点自己的数量+子孙节点的数量, 那么祖宗节点的size就是整个集合的数量,即size[find(a)] 初始化: for (int i = 1; i <=n; i...++) { p[i]=i; size[i]=1; } 合并为同一集合: p[find(a)] = find(b); size[find(b)]+

    9810

    并查集

    并查集是一种动态维护多个不重复集合 在并查集中,每个集合都有自己的代表元素。 一个树 fa 记录每一个元素的归属关系(存储所属集合代表元素的下标)。...具体: 初始状态: 即,每个元素都是一个单独的集合 int fa[10009]; for (int i = 0; i < n; i++) fa[i] = i; 常见操作 Get 查询一个元素属于哪一个集合...(通常题目中会问两个元素是否属于同一集合) int find(int x) { if (fa[x] == x) return x; return find(fa[x]); } (查询某元素所属集合的代表元素...查询两个元素是否属于同一集合的代码也很简单 bool is_in_one_set(int b, int c){ return find(b) == find(c); } Merge 把两个元素...a 、 b 所在的集合合并为一个 随意修改 a 、 b 中一个的父元素为另一个的父元素 void merge(int a, int b) { int fa_ = find(a); int fb

    1.7K10

    数据结构--并查集(Disjoint-Set)

    并查集 并查集是一种树型的数据结构 用于处理一些不相交集合(Disjoint Sets)的合并及查询问题 2....操作 2.1 初始化 把每个点所在集合初始化为其自身,时间复杂度均为O(N),可用数组,哈希表等结构来实现 for(int i = 0; i < n; i++) father[i] = i; 2.2...查询 查找元素所在的集合(找一个代表),即根节点 有的时候,树的高度太高,压缩树的高度,直接让底层节点的father指向root,称之路径压缩 ?...= f[a]) a = f[a]; return f[origin] = a;//路径压缩 } 2.3 合并 将两个元素所在的集合合并为一个集合 合并之前,先判断两个元素是否属于同一集合,...< endl; merge(0,1); cout 的代表" << uniFind(0) << endl; return 0; } 运行结果: 1的代表2 2的代表2 0

    1.1K10

    数据结构 第17讲 沟通无限校园网——最小生成树(kruskal算法)

    (5)合并 结点4和结点5集合号不同,即属于两个不同连通分支,则将边(4,5)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么5号结点的集合号也改为...(7)合并 结点3和结点7集合号不同,即属于两个不同连通分支,则将边(3,7)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么3号结点的集合号也改为...(9)合并 结点4和结点7集合号不同,即属于两个不同连通分支,则将边(4,7)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么4、5号结点的集合号都改为...(15)合并 结点5和结点6集合号不同,即属于两个不同连通分支,则将边(5,6)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么6号结点的集合号都改为...(19)合并 结点1和结点2集合号不同,即属于两个不同连通分支,则将边(1,2)加入边集TE,执行合并操作将两个连通分支所有结点合并为一个集合;假设我们把小的集合号赋值给大的集合号,那么2、3、4、5

    1.3K20

    python高级算法和数据结构:集合的快速查询与合并

    在代码设计中时常面对这样的场景,给定两个元素,我们需要快速判断他们是否属于同一个集合,同时不同的集合在需要时还能快速合并为一个集合,例如我们要开发一个社交应用,那么判断两个用户是否是朋友关系,或者两人是否属于同一个群就需要用到我们现在提到的功能...,查询两个元素是否属于同一个集合,那么只要通过哈希表找到各自元素所在队列的头部,判断头部是否一致即可,我们用areDisjoint(x,y)来表示两个元素是否属于一个集合,那么在当前数据结构下areDisjoint...为了优化时间,我们将队列换成多叉树,如下图所示: 此时我们不再使用哈希表来将元素映射到队列头部,而是将同一个集合的元素安插到同一个多叉树中,要判断两个元素是否属于同一集合,我们只要沿着元素的父节点指针往上走一直找到树的根节点...,如果找到相同的根节点,那么两个元素就属于同一集合,对于排序二叉树而言,树的高度为O(lg(n)),n是树的节点数,于是判断两个元素是否属于同一集合所需时间复杂度为O(lg(n))。...: 从上图看到,节点6,8的父节点原来是9,它所在集合的根节点是1,于是我们直接将原来指向9的指针直接指向根节点1,这样以后在合并或查询集合时我们就可以省掉向上爬的时间开销。

    72830

    Jquery $.extend的重载方法详述

    :王五 23 gay 175cm   从结果进行分析两者的结果进行了合并,相同属性结果为最后一个参数的属性值为准。...-这个方法将合并之后的结果集存到了{}中,并返回,且不会破坏进行合并的两个集合的结构。...:王五 23 gay 175cm    从结果进行分析两者的结果进行了合并,相同属性结果为最后一个参数的属性值为准。...-这种情况常用于嵌套集合 当bool值为true时,两个集合之间的合并为深合并,因为p1,p2两个集合中的adress属性相同,但是adress还拥有子属性(而且两个集合的adress属性的子属性还不相同所以里面的子属性也按照外面的属性合并方法进行合并...:王五 23 gay 175cm  undefined 杭州  -即p3集合的adress属性直接吧p2集合的adress属性覆盖掉了。

    762100

    【高效管理集合】并查集的实现与应用

    并查集的概念 并查集,也称为不相交集,是一种树形的数据结构,用于处理一些不相交集合的合并及查询问题。简单来说,它主要用于处理元素分组的问题。...主要操作 查找(Find) 确定元素所属的集合,通常返回该元素的根节点。 合并(Union) 将两个集合合并为一个集合。...应用场景 并查集广泛用于以下问题: 判断两个元素是否在同一集合中。 合并两个集合。 最小生成树算法。 网络连接问题等。 这种数据结构在许多算法中都非常有效,尤其是在处理集合合并和查询时。...,然后将这两个集合的根进行合并即可,将任意一个根对应的数加到另一个数的根上,然后将这个跟的下标改为另一个根的下标即可,就完成了合并了。...判断是否在同一集合: 只需要判断两个节点的根是否相同即可。

    17610

    【高阶数据结构】秘法(一)——并查集:探索如何高效地管理集合

    起初每个元素组成一个单元素集合,然后按照一定规律将归于同一种类型的集合合并,同时在这个过程中我们可能会反复用到查询某个元素属于哪个集合的运算,这种管理集合所对应的抽象概念就是并查集 并查集,也称为链接...它特别适用于处理“动态连接”的问题,即动态地合并集合或查询两个元素是否属于同一个集合。...集合有7个人,2集合有3个人,总共两个朋友圈 通过以上例子可知,并查集一般可以解决一下问题: 1....将两个集合归并成一个集合 将两个集合中的元素合并 将一个集合名称改成另一个集合的名称 4....合并(Union):将两个集合合并为一个集合。 初始化(Init):为每个元素创建一个独立的集合。

    8210

    并查集的介绍及简单应用---蓝桥杯真题:合根植物

    简介 在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。...(1~3秒)内计算出试题需要的结果,只能用并查集来描述。...简单来说,就是:N个元素分布在若干个互不相交的集合中,需要进行以下三个操作: 合并两个集合 查询一个元素是否属于一个集合 查询两个元素是否属于同一集合 最典型的应用就是判断亲戚关系,给定n,一共n个人...查询这里用了递归的思想,实际上就是路径压缩。 2、查询两个结点是否属于同一个集合。只需要获取两个结点的根结点,若二者根结点相同,就属于同一个集合。...接下来一行,一个整数k,表示下面还有k行数据(0<k<100000) 接下来k行,每行两个整数a,b,表示编号为a的小格子和编号为b的小格子合根了。 格子的编号一行一行,从上到下,从左到右编号。

    48510

    重拾算法-3.2-图论-并查集

    做程序开发,广度和深度是同样重要的,也许现在的工作中不会直接用上,但是算法、设计模式等等这些底层的知识时候熟练掌握,是我们能不能走得更远的前提,我觉得是时候,再重拾起已经快遗忘的算法,为自己的下一个三年...作为前端开发,本系列的算法代码实现,将全部用TypeScript实现,同时也会贴一些力扣的题目方便上手实践。 算法流程 初始化 把每个点所在集合初始化为其自身。...查找 查找元素所在的集合,即根节点。 合并 将两个元素所在的集合合并为一个集合。 通常来说,合并之前,应先判断两个元素是否属于同一集合,这可用上面的“查找”操作实现。...(简单并查集)判断是否出现环 POJ - 1611 The Suspects (简单并查集)求0所在集合有多少元素 POJ - 2236 Wireless Network (简单并查集)判断元素是否在同一个集合中...HDU - 2545 树上战争 (没有压缩路径的并查集)查询节点到根节点的步数 UVA - 11987 Almost Union-Find(带删除的并查集)消除原来位置的影响,开辟新位置表示 POJ

    28120

    数据结构—并查集《上》

    通过一个实际的问题引出并查集   假设有 n 个村庄,有些村庄之间有连接的路,有些村庄之间并没有连接的路 设计一个数据结构,能够快速执行 2 个操作: 查询 2 个村庄之间是否有连接的路 连接 2...个村庄   如果使用数组、链表、平衡二叉树、集合(Set) 都可以完成需求,但是查询、连接的时间复杂度都是 O(n)。...) 合并(Union):将两个元素所在的集合合并为一个集合 有 2 种常见的实现思路: Quick Find 查找(Find)的时间复杂度:O(1) 合并(Union)的时间复杂度:O(n) Quick...union 示例及实现 例如:   将{0,1,2,3,4,5}初始化为并查集,每个元素各自属于一个单元素集合:{0}, {1}, {2}, {3}, {4} 。...合并 0 和 3,union(0, 3),0 所在集合为 {0, 1, 2},3 所在集合为 {3,4},如下: 代码如下: /** * 将v1所在集合的所有元素都嫁接到v2的父节点上 *

    43710

    数据结构之并查集

    这里的网络指的是广义的网络,例如用户之间形成的社交网络,有时候也叫做图。 并查集对于一组数据来说,主要支持两种操作: 合并:union(p, q),把两个不相交的集合合并为一个集合。...查询:isConnected(p, q),查询两个元素是否在同一个集合中,也就是是否可以连接的。...而数组的索引则作为每个元素的 id,这样我们在查询的时候,只需要根据数组索引取出相应的两个元素的集合编号,判断是否相等就能得知这两个集合是否存储在同一集合中,也就知道这两个元素是否可以“连接”。...例如,传入的 p 和 q,分别是 1 和 3。那么根据数组索引找到的元素编号都为 1,此时就可以判断出这两个元素属于同一集合,也就代表这两个元素之间可以“连接”,反之同理。...由于树的特性,此时并查集的查询操作时间复杂度就是 O(h),h 为树的高度。因为查询两个节点是否属于同一集合,就等同于查询这两个节点是否属于同一棵树。

    1K20

    MySQL 8 第一个正式版发布:更好的性能

    版本降级到任意一个更早的 MySQL 8.0 版本)。...窗口函数(Window Functions):从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。...窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要 GROUP BY。 4. ...当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。...JSON:MySQL 8 大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG

    2K30
    领券