根据 Google 表格中同一行的值从多列中获取信息

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

我对 Google Sheets 的函数和公式不太熟悉,但我开始理解其中的逻辑。

我目前完全陷入尝试提出每周流动性表的困境,该表从多个选项卡收集信息,并根据 A 列中的费用名称以及 A 列中的日期、周和年份将总和放在右侧单元格中。上排(12 个月以上):

A 栏 B 栏 A 栏 B 栏
姓名 第 1 周 第 2 周 第 3 周
费用1 (公式),€? ?€ ?€
费用2 ?€ ?€ ?€
费用3 ?€ ?€ ?€

我已经找到了大多数情况的解决方案,但问题在于经常性成本

经常性费用列出如下:

A 栏 B 栏 A 栏 B 栏
姓名 金额 日期 日期
费用1 下一个发票日期 发票日期 + X 个月
费用2 下一个发票日期 发票日期 + X 个月
费用3 下一个发票日期 发票日期 + X 个月

日期顺序继续向右(仍在进行中,如何根据多种条件自动工作)

我尝试过各种不同的解决方案来一次解决一个问题,但对我来说很难想出一个“万能”的公式。

我尝试使用 Xlookup 来获取即将到来的付款日期,但遇到了 Arrayformula 的问题,它只返回第一列的信息。使用过滤器,我从所有行中获取所有列..

我也尝试过 Query、Lambda、Byrow,现在考虑是否应该使用 Map 来完成。

为了以防万一,我制作了一个超级简单的示例表:https://docs.google.com/spreadsheets/d/18sX800vqc4YsijSvzEfOf27M16uUkrD9bibYIvFrIew/edit?usp=sharing

真正的当然包括不同费用类别和收入等的多个选项卡。

如有任何帮助,我们将不胜感激! (:

google-sheets google-sheets-formula finance
1个回答
0
投票

这是您可以测试和即兴发挥的一种可能方法:

=map(A5:index(A:A,match(,0/(A:A<>""))),lambda(Σ,if(Σ="",,index(if(ifna(xmatch(B4:4,xlookup(torow(xlookup(Σ,'Recurring Costs'!A:A,'Recurring Costs'!C:ZZ),1),4:4,4:4,,-1))),vlookup(Σ,'Recurring Costs'!A:B,2,),)))))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.