Excel 在Google Sheets列中“值”下计算值

Excel 在Google Sheets列中“值”下计算值,excel,excel-formula,google-sheets,google-spreadsheet-api,vba,Excel,Excel Formula,Google Sheets,Google Spreadsheet Api,Vba,我试图在一个有几千行的电子表格中创建一个公式。在这一部分中,我需要找出父项(x)有多少子项(y)的计数值,直到值发生变化。 我试过使用=IF(A2=OFFSET(A2,-1,0)、OFFSET(B2,-1,0)+1,1)来计算子产品的数量。 最终目标是基于计数输出所有子项的值 +---+------+-------+-------+--------------+--+ | 1 | Type | Count | Value | Child Values | | +---+

我试图在一个有几千行的电子表格中创建一个公式。在这一部分中,我需要找出父项(x)有多少子项(y)的计数值,直到值发生变化。
我试过使用
=IF(A2=OFFSET(A2,-1,0)、OFFSET(B2,-1,0)+1,1)
来计算子产品的数量。
最终目标是基于计数输出所有子项的值

    +---+------+-------+-------+--------------+--+
    | 1 | Type | Count | Value | Child Values |  |
    +---+------+-------+-------+--------------+--+
    | 2 | x    |     1 | A     | B            |  |
    | 3 | y    |       | B     |              |  |
    | 4 | x    |     2 | C     | D,E          |  |
    | 5 | y    |       | D     |              |  |
    | 6 | y    |       | E     |              |  |
    | 7 | x    |     1 | F     | G            |  |
    | 8 | y    |       | G     |              |  |
    +---+------+-------+-------+--------------+--+
因此,如果x有两个子元素,那么公式将输出它旁边的下两个单元格的值(子值)。家长最多可以有8个孩子,并且需要根据计数获取多个下一个单元格值。

如果没有Excel VBA,第二部分是否可能?我感谢你的帮助

这可能不是最好的答案,但它确实避免了VBA。你必须有一个在列表底部没有子对象的虚拟x

你的计算公式是:

=IF(A2="y","",MATCH("x",INDEX($A:$A,ROW()+1):INDEX($A:$A,COUNTA($A:$A)),0)-1)  
  • INDEX($A:$A,ROW()+1):INDEX($A:$A,COUNTA($A:$A)
    将设置从下一行到列表末尾的引用,前提是列
    A
    中从
    A1
    到列表末尾的每个单元格中都有一个值
  • MATCH(“x”,..,0)
    将返回下一个x出现的引用范围内的行号。从中减去一将给出x的子行数
  • 如果(A2=“y”、“”、…)
    确保计数仅显示在x行上
由于您最多只能有8个子项,因此可以使用此公式返回子项值

=IF(B2="","",CONCATENATE(IF(B2>=1,C3,""),IF(B2>=2," ," & C4,""),IF(B2>=3," ," & C5,""),IF(B2>=4," ," & C6,""),IF(B2>=5," ," & C7,""),IF(B2>=6," ," & C8,""),IF(B2>=7," ," & C9,""),IF(B2>=8," ," & C10,"")))  

x如何在上面有两个子项?它链接到A、C、F以及B、D、E、G。您是指x(D、E)一行中的最大子项值数吗?x实际上是独一无二的,我没有列出其他不同的列,x只是定义了它是它下面的孩子的家长。谢谢!这解决了问题,我可以根据我的其他需要修改它并解决我的问题。