首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从展开/折叠枢轴表- Excel中提取“隐藏”数据

从展开/折叠枢轴表- Excel中提取“隐藏”数据
EN

Stack Overflow用户
提问于 2018-06-26 20:51:46
回答 1查看 771关注 0票数 0

我不确定这是否可能,但正如您所看到的,我有一个支点表,包含多个依赖的和可扩展的字段。我试图将A:D列中的数据连接到一个单元格中,该单元格在第2行中工作良好,但不适用于空白父单元格,如您在F列中所看到的那样。

对于如何实现这一点,有什么想法吗?

透视表

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 23:50:35

这个答案假设您不想重复PivotTable中的所有项目标签,从“报表布局”下拉到PivotTable "Design“选项卡。

可以使用AGGREGATESUMPRODUCTOFFSET组合来构造B列中与当前单元格相同或更高的第一个非空白值的公式,如下所示:

代码语言:javascript
运行
AI代码解释
复制
=OFFSET($B2,SUMPRODUCT(AGGREGATE(14,6,ROW($B$1:$B$100)*--(ROW($B$1:$B$100)<=ROW())*--(LEN($B$1:$B$100)>0),1))-ROW(),0)

它怎麽工作?

从最外层的部分OFFSET($B2, VALUE, 0)开始--这将从单元格B2开始,然后按VALUE行向上或向下查找以获得值。

接下来,我们需要知道需要向上或向下查找多少行。现在,如果我们能够用数据计算出最底层的行,我们就可以从中减去当前的ROW(),给出OFFSET($B2, NON_BLANK-ROW(),0)

因此,要完成任务,我们需要计算哪些行不是空白的,哪些行位于-或高于当前行,然后取其中最大的行。这将是一个ArrayFormula,但是我们可以使用SUMPRODUCT来正确地计算。为了找到最大的数字,我们可以使用MAXLARGE,但是如果我们选择AGGREGATE(14,6,..,1),则会得到较少的错误。( 14的意思是“我们想要k_th最大的数字”,6的意思是“忽略错误值”,而1是_k,所以“我们想要最大的数字,忽略错误”)

但是,我们要看的数字列表是什么,我没听到你问。好的,我们希望从我们的范围输出ROW (我使用的是$B$1:$B$100,因为使用整个B列将花费很长的时间重复计算),与当前的ROW()进行比较,并检查LENgth是否大于0。最后两个是比较,所以让我们先把它们写出来:

代码语言:javascript
运行
AI代码解释
复制
ROW($B$1:$B100)<=ROW() 

代码语言:javascript
运行
AI代码解释
复制
LEN($B$1:$B$100)>0

我们希望使用--TRUEFALSE转换为10 -这意味着任何“坏”值都变为0,任何“好”值都大于0:

代码语言:javascript
运行
AI代码解释
复制
ROW($B$1:$B$100)*--(ROW($B$1:$B$100)<=ROW())*--(LEN($B$1:$B$100)>0)

这给出了行号,当行在(或)在当前行和列B不是空之前--如果其中任何一个是假的,那么我们将得到0。把它放在AGGREGATE中找出最大的数字:

代码语言:javascript
运行
AI代码解释
复制
AGGREGATE(14, 6, ROW($B$1:$B$100)*--(ROW($B$1:$B$100)<=ROW())*--(LEN($B$1:$B$100)>0), 1)

然后将其放入SUMPRODUCT中,强制Excel将其视为ArrayFormula,这就是您的NON_BLANK。这就给出了第一个公式,就在柱子的顶端。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51054736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档