需要滚动参数公式的帮助
评论
-
保罗新来的 ✭✭✭✭✭✭
编辑以解释其余的标准。最初的公式只考虑日期。
.
按照下面的思路试试……
.
=SUMIFS([Points Column]:[Points Column], [Date Column]:[Date Column], AND(@cell今天< = IFERROR(日期(年(()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1,@cell>= IFERROR(DATE(YEAR(TODAY()), MONTH(TODAY()) - 6,1), DATE(YEAR(TODAY()) - 1, MONTH(TODAY()) + 6,1)), [Name Column]:[Name Column], "John Smith"))
thinkspi.com
0 -
薇薇安庄 ✭✭✭✭✭✭
谢谢保罗。看着你的公式,我真的看不懂。
.但我会试一试,试着理解它是如何工作的。
感谢您的反馈。
0 -
保罗新来的 ✭✭✭✭✭✭
很乐意帮忙!
我的时间不够了,否则我会在最初的帖子中更详细地描述一下,但现在是(迟到总比不好)。
=SUMIFS([Points Column]:[Points Column], [Date Column]:[Date Column], AND(@cell今天< = IFERROR(日期(年(()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1,@cell>= IFERROR(DATE(YEAR(TODAY()), MONTH(TODAY()) - 6,1), DATE(YEAR(TODAY()) - 1, MONTH(TODAY()) + 6,1)), [Name Column]:[Name Column], "John Smith"))
.
因此,简单的部分是知道我们需要一个SUMIFS,因为我们想要基于多组标准(日期和名称)对数据集求和。
我们知道该语法首先需要求和范围,所以我们从
=SUMIFS([Points Column]:[Points Column],
.
接下来,我们需要建立我们的第一个标准范围。在这个公式中,我从日期开始。
=SUMIFS([Points Column]:[Points Column],[日期列]:[日期列],
.
现在我们建立我们的日期标准(这是比较棘手的部分,但我将一步一步地分解它)。
我们知道对于相同的范围有两组标准,所以我们使用AND语句。
和(逻辑表述1,逻辑表述2)
.
我们知道范围的高端将是TODAY(),但这需要每天打开工作表来激活TODAY()函数,以便捕获任何新条目(如果有的话)。
那么我们如何才能获取当前整个月的数据呢?简单的对吧?
今天()月()
除非你有多年的数据,你会把所有这些都包括进去。对于如何解释这个问题,我们有两个选择。老实说……现在我把它说出来了,我意识到我选择了更难的那个。哈哈
但是它为两组标准保持了一致的格式,所以我们将坚持使用它。
.
由于当前月份的天数每个月都在变化,我们不想每个月都手动更新公式,并希望我们不会不小心弄乱了什么。所以最简单的方法是,我们要看所有小于或等于下个月1号前一天的数。
这将占到28,29,30或30天,而我们不必定期编辑任何内容。
.
所以下个月的第一天看起来是这样的…
今天的日期(年(()),月(日)+ 1, 1)
.
这一切都很好,直到十二月。没有第13个月。那么我们该怎么办呢?我们使用IFERROR来确定这一点。
IFERROR(要运行的正常函数,在发生错误时要做什么)
IFERROR (日期(年(今天),月(今天)+ 1,1)(发生错误时该怎么做)
.
第一部分是我们放置第一个DATE函数的地方。只要把它放进去,这部分就完成了。
所以如果这个月是12月,我们想去明年的1月1日,我们会说…
日期(年(今天)+ 1, 1,1)
这里给出的是明年的1月1日,所以我们把它放到IFERROR的第二部分。
.
Iferror(日期(年(今天()),月(今天())+ 1,1),日期(年(日)+ 1,1,1))
.
现在我们已经确定了下个月的第一天。减去1将得到当月的最后一天。
IFERROR(日期(年(今天()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1
.
现在我们有了高范围,可以使用an@cell引用将其转换为逻辑语句,然后将其放入AND语句的第一部分。
@cell<=IFERROR(日期(年(今天()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1
和(@cell今天< = IFERROR(日期(年(()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1,逻辑语句2)
.
在我们的范围的低端…
我们想看6个月前的情况。再一次。因为每个月的天数不同,这个确切的数字会有所不同,所以自动化的最一致的方法是减去6个月,然后使用该月的第一天。
今天的日期(年(()),月(日)- 6, 1)
.
但是如果这个月是三月呢?没有月份是- 3,所以我们使用另一个IFERROR语句。但我们如何追溯一年,确定是哪一个月呢?
好吧,让我们进一步分解这一步……
我们想要-6个月的结果。
如果我们减去1年(12个月)然后加上6个月,就可以了。
所以我们说
日期(年(日))- 1、
减去12个月。
日期(年(今天)- 1,月(今天)+ 6,1)
加上6个月,得到-6个月。使用1表示当天,将它们串在一起,就像我们使用第一个IFERROR一样
IFERROR(日期(年(今天()),(今天())——6月,1),日期(年(今天())- 1,月(今天())+ 6,1))
把它变成一个合乎逻辑的陈述
@cell> = IFERROR(日期(年(今天()),(今天())——6月,1),日期(年(今天())- 1,月(今天())+ 6,1))
把它放到and语句的第二部分。
和(@cell今天< = IFERROR(日期(年(()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1,逻辑语句2)
和(@cell今天< = IFERROR(日期(年(()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1,@cell> = IFERROR(日期(年(今天()),(今天())——6月,1),日期(年(今天())- 1,月(今天())+ 6,1)))
.
现在让我们回到我们的SUMIFS。
我们已经建立了求和范围,第一个标准范围和第一个标准集。
=SUMIFS([Points Column]:[Points Column],[日期列]:[日期列],和(@cell今天< = IFERROR(日期(年(()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1,@cell> = IFERROR(日期(年(今天()),(今天())——6月,1),日期(年(今天())- 1,月(今天())+ 6,1)))
.
现在剩下的就是使用与上面相同的语法添加名称:
标准范围,标准
[姓名栏]:[姓名栏],“约翰·史密斯”
.
既然这是我们的最后一组标准,我们可以把它扔进去,然后关闭SUMIFS…
=SUMIFS([Points Column]:[Points Column], [Date Column]:[Date Column], AND(@cell今天< = IFERROR(日期(年(()),月(今天())+ 1,- 1),日期(年(今天())+ 1,1,1))- 1,@cell> = IFERROR(日期(年(今天()),(今天())——6月,1),日期(年(今天())- 1,月(今天())+ 6,1))),[姓名栏]:[姓名栏],“约翰·史密斯”)
.
结果出来了。详细介绍了如何使用AND语句将SUMIFS中相同范围的多组标准组合在一起(也适用于COUNTIFS),并逐步介绍了如何使用IFERROR语句处理月份。
.
这种分解有效吗?如果你们有任何问题,我很乐意进一步解释。
thinkspi.com
0 -
薇薇安庄 ✭✭✭✭✭✭
嗨,保罗。
这个公式是成立的,我正试着把它的每一部分都算出来,正想问你是否介意再解释一下。但在我问你之前你就已经讲了你是怎么推导出这个公式的。
我会通读一遍,试着理解公式中每一部分的含义。
衷心感谢您的协助和帮助。
0 -
保罗新来的 ✭✭✭✭✭✭
很乐意帮忙!
thinkspi.com
0 -
薇薇安庄 ✭✭✭✭✭✭
嗨,保罗。
我目前正在研究这个公式,并希望对某些项目使用AVG而不是SUM。
我以为我可以把SUM换成AVG,但是不行。
你知道我怎样才能求平均值而不是求和吗?
谢谢保罗。
0 -
保罗新来的 ✭✭✭✭✭✭
我们实际上使用的是SUMIFS。注意末尾的S。这将是我们如何求平均值的最大因素。
如果它只是一个简单的SUM,我们可以用AVG来代替它。如果它是一个SUMIF,我们可以用AVERAGEIF来代替它。但是唉…没有AVERAGEIFS(我已经请求了这个功能,但如果你也提交了一个ob欧宝娱乐app手机下载产品改进要求对它也是如此)。相反,我们需要使用AVG/COLLECT。幸运的是,它最终具有与SUMIFS相同的语法,因此几乎没有什么要更改的。
只需将SUMIFS替换为AVG(COLLECT),并在公式的末尾添加一个额外的右括号。这将为您提供您当前正在求和的相同数字的平均值。
thinkspi.com
0 -
薇薇安庄 ✭✭✭✭✭✭
谢谢保罗。
好的,我也会提交产品增强的请求。ob欧宝娱乐app手机下载
你帮了大忙了!
祝你有幸福的一天!
0 -
保罗新来的 ✭✭✭✭✭✭
很乐意帮忙!
thinkspi.com
0 -
泰隆T ✭
这个解决方案是否可以使用COUNTIFS()函数来代替SUMIFS()?
0
帮助文章参考资料欧宝体育app官方888
类别
No worries! I have another solution for you which you can apply in sheet summary. Please find the below formula & screenshot<\/p>
=COUNTIFS([Today- Scheduled]:[Today- Scheduled], <=30, Status:Status, \"Completed\", [Job Type]:[Job Type], \"IN\")<\/p>