在 Google 表格列中计算低于值的值
Count values under value in a Google Sheets column
我正在尝试在包含几千行的电子表格中创建公式。我正在为需要找出有多少 children (y) 做 parent (x) 有 - 计数值直到值改变。
我试过使用 =IF(A2=OFFSET(A2,-1,0),OFFSET(B2,-1,0)+1,1)
,它目前计数 child 个产品。
最终目标是根据计数输出所有 children 的值。
+---+------+-------+-------+--------------+--+
| 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 有 2 children,则该公式将输出其旁边的下 2 个单元格的值(Child 值)。 parents 最多可以有 8 个 children,并且需要根据计数获取多个下一个单元格值。
如果没有 Excel VBA,这第二部分是否可能?感谢您的帮助!
这可能不是最佳答案,但确实避免了 VBA。您必须在列表底部有一个虚拟 x,没有 children。
您的计数公式是:
=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)
将 return 下一个 x 发生的参考范围 中的行号 。从中减一将得到 x 的 children 的数量。
IF(A2="y","",.......)
确保计数仅出现在 x 行中。
由于您最多只有 8 个 children,因此您可以使用此公式来 return Child 值。
=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,"")))
我正在尝试在包含几千行的电子表格中创建公式。我正在为需要找出有多少 children (y) 做 parent (x) 有 - 计数值直到值改变。
我试过使用 =IF(A2=OFFSET(A2,-1,0),OFFSET(B2,-1,0)+1,1)
,它目前计数 child 个产品。
最终目标是根据计数输出所有 children 的值。
+---+------+-------+-------+--------------+--+
| 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 有 2 children,则该公式将输出其旁边的下 2 个单元格的值(Child 值)。 parents 最多可以有 8 个 children,并且需要根据计数获取多个下一个单元格值。
如果没有 Excel VBA,这第二部分是否可能?感谢您的帮助!
这可能不是最佳答案,但确实避免了 VBA。您必须在列表底部有一个虚拟 x,没有 children。
您的计数公式是:
=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)
将 return 下一个 x 发生的参考范围 中的行号 。从中减一将得到 x 的 children 的数量。IF(A2="y","",.......)
确保计数仅出现在 x 行中。
由于您最多只有 8 个 children,因此您可以使用此公式来 return Child 值。
=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,"")))