Google 工作表分层子类别扩展

Google Sheets Hierarchical Subcategory Expansion

问题陈述:

我有一个包含金额和类别的银行交易清单。

我将类别定义为可以包含任意数量 : 个字符的字符串。 : 字符表示子类别。例如 expenses Household 包含所有家庭开支, Household : Utilities 表示 household 中的子目录 Utiltities

我可以按类别分组并求和以获得特定子类别内的费用。例如,我可以获得 Household : UtilitiesHousehold : Rent 的总花费。但是做一个 groupby 总和不会给我一个 Household 条目,它是公用事业和租金子类别的总和。

我希望能够以分层方式扩展这些子类别和父类别的总和,以便我有一个全面的列表。例如,如果我与 Household : Utilties : Water 进行了一笔 10 美元的交易,并与 Household : Utilities : Electricity 进行了一笔 15 美元的交易,我希望结果为

这是一个 link 示例电子表格。

https://docs.google.com/spreadsheets/d/14URPJ4fWl6id9z0-AI1hxNClo-10gotKdMSXnuehNVI/edit?usp=sharing

我可以使用 query() 和 groupby 获得类别与总和的简单摘要,但这不会扩展到父类别。

我可以在 python 中执行此操作,但我很难理解如何在电子表格中执行此操作。有人有什么想法吗?

尝试:

=ARRAYFORMULA(QUERY({A5:B; 
 SPLIT(FLATTEN(IFERROR(REGEXREPLACE(REGEXREPLACE(IF(
 IFERROR(SPLIT(A5:A, ":"))="",,A5:A),
 IFERROR(SPLIT(A5:A, ":")), ), " :$| ::.+|^:.+", ))&"×"&B5:B), "×")}, 
 "select Col1,sum(Col2)
  where Col2 is not null
  group by Col1
  order by Col1
  label Col1'Category',sum(Col2)'Quantity'"))