首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Google Sheets中处理分层数据

在Google Sheets中处理分层数据
EN

Stack Overflow用户
提问于 2017-01-11 04:37:26
回答 2查看 5.8K关注 0票数 3

如果我在Google表格中有分层数据,如下面示例中的A和B列所示,我如何编写一个公式,该公式将用A1中的"parent“值与B列中的"child”值的乘积填充C列中的相应单元格。例如,C8中的公式将在A列中向上搜索,直到在A6中找到值5,然后将其乘以8,即B8中的值。

显然,我试图避免在A列的每一行中都放入"parent“值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-11 08:43:12

在ArrayFormulas上闲逛了一段时间后,我想出了如何得到我想要的结果。下面是我使用的公式:

代码语言:javascript
运行
复制
=ArrayFormula(index($B$2:$B2,MAX(IF(ISNUMBER($B$2:$B2),ROW($B$2:$B2)))-1,1))

(注:第1行包含标题)

编辑:解释我是如何得出这个解决方案的:

通常,IF(ISNUMBER(cell))和ROW(cell)将分别返回TRUE/FALSE或行号。当在数组公式和单元格区域中用作输入时,您得到的是TRUE/FALSE值的列表,以及输入区域中每个单元格的行号。对MAX进行包装,它将返回这两个列表中的位置,其中IF(ISNUMBER())为TRUE,ROW()返回的行号是最高的,有效地从范围的底部开始搜索。

将公式拖入其他单元格时,要搜索的区域(在本例中为$B$2)中第一个元素的绝对引用会使该范围锚定在相同的起始位置,而要搜索的区域(在本例中为$B2)的下限将垂直增长。

最后,索引采用输入范围、上面返回的行号(由于标题为-1行)和列位置(1,因为只有一列),以返回所需的值。

票数 2
EN

Stack Overflow用户

发布于 2017-01-11 04:52:56

可以这样做的一种方法是将列B中的每个值与一个类别或键相关联,这些类别或键可用于在单独的表中查找A的值。这在某种程度上对其进行了抽象,因此您可以更改A列的值,而不必将它们放在每一行中,但没有空单元格。

和查找表:

在C栏

代码语言:javascript
运行
复制
= VLOOKUP($A1, <range for category lookup table>, 2, 0) * $B1

(然后可以向下填充此公式)

More on VLOOKUP in Google Sheets here

或者,我假设您可以使用公式来查找列A中的最后一个非空行,或者沿着这些行的内容,但这更像是一种技巧,而不是一种正确的数据结构方式。表的设计并不像您所展示的那样以分层的方式使用。但它们可以很容易地使用我所建议的技术来表示分层数据。

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

https://stackoverflow.com/questions/41577927

复制
相关文章

相似问题

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