Возможно, это не лучший ответ, но он избегает 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 . IF(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,"")))