Google 表格根据一列中的数据拆分在列范围内创建新行

问题描述 投票:0回答:1

我有一张包含日期、类型、金额等交易的表格。交易类型可能是再投资、存款等。当有“再投资”交易时,我想通过插入新的交易来创建虚拟范围行复制再投资行的数据,但类型为“付款”。然后,我将使用 importrange 针对另一张工作表中的新虚拟数据范围运行查询以生成报告。

Here is an abstraction of my requirements. If there is a transaction-type = “DR”, create/insert a matching transaction of type = “CR”These are highlighted in yellow

日期 类型 金额
之前
2024年1月30日 博士 10.00 美元
2024年1月29日 TR $20.00
27/01/2024 WD $30.00
2024年1月24日 博士 $40.00
2024年1月20日
2024年1月30日 $100.00
之后
2024年1月30日 博士 10.00 美元
2024年1月30日 CR 10.00 美元
2024年1月29日 TR $20.00
27/01/2024 WD $30.00
2024年1月30日 CR $40.00
2024年1月20日 博士 $50.00
2024年1月20日
2024年1月30日 $100.00

我尝试对修改后的“类型”列使用拆分函数,其中一些原本“再投资”的单元格现在是数组公式中的“再投资,付款”(例如逗号分隔),以创建拆分的虚拟列以及所有其他交易类型。

我需要帮助建议将此虚拟列与其他列的数据合并以创建可查询的虚拟范围。

此问题类似于:在 Google Sheets/Excel 中将文本数据拆分为多行的一列 但在我的例子中,有不止一列原始数据。 谢谢

google-sheets google-sheets-formula array-formulas
1个回答
0
投票

在单元格 E2 中尝试此公式。手动插入列标题。

=sort({query({A2:C7},"select Col1, Col2, Col3 where Col1 is not null"); QUERY(QUERY({A2:C},  "select Col1,'CR', Col3  where Col1 is not null and Col2 = 'DR'"), "offset 1", 0)},3,1)


之前


之后


逻辑

  • “创建虚拟行”
    • QUERY
      - 创建 Type = "CR" 的行,其中 Col2 = 'DR'
  • “添加现有行”
    • QUERY
      - 堆叠虚拟行查询和所有行的查询。
  • 对结果进行排序
    • SORT - 按金额 (Col3) 升序对结果进行排序
© www.soinside.com 2019 - 2024. All rights reserved.