【问题标题】:Return value according to multiple criteria根据多个条件返回值
【发布时间】:2021-09-18 16:43:06
【问题描述】:

我在使用 Google 表格中的这个公式时遇到了问题。我试图在两个日期约束之间的最大值左侧的单元格中找到日期,但是它当前正在将包含最大值的两个单元格的日期加在一起,我怎样才能让它只使用其中一个日期?我已经尝试过索引和匹配,但我无法弄清楚。我已经复制了下面单元格中的公式以及显示引用的单元格的图像。如果有人可以提供帮助,将不胜感激。谢谢。

Cell B9 Formula: =ArrayFormula(MAX(IF((A2:A5<=$B$8)*(A2:A5>=$B$7),B2:B5,"")))
Cell B10 Formula: =SUMIFS(A2:A5,A2:A5, ">="&$B$7, A2:A5, "<="&$B$8, B2:B5, "="&B9)

【问题讨论】:

  • 对 SORT 公式使用过滤或查询函数。

标签: excel google-sheets


【解决方案1】:

在 B10

=query(A2:B5,"select A where A<=DATE'"&TEXT(B8,"yyyy-MM-dd")&"' and A>=DATE'"&TEXT(B7,"yyyy-MM-dd")&"' order by B desc limit 1",0)

说明

  • select A where A&lt;=DATE'"&amp;TEXT(B8,"yyyy-MM-dd")&amp;"' and A&gt;=DATE'"&amp;TEXT(B7,"yyyy-MM-dd")&amp;"' 选择开始日期和结束日期之间的所有日期并创建一个数组
  • order by B desc 将结果集按 B 值降序排列
  • LIMIT 1将结果限制为仅一项

【讨论】:

  • 不幸的是,我不明白它是如何工作的,但确实如此,谢谢!
  • 我在回答中添加了一些 cmets
【解决方案2】:

正如 Harun24Hr 所说,FILTER 和 QUERY 是你的朋友。

我在一个看起来像这样的表中重新创建了您的场景

最大值公式如下。

=MAX(FILTER(B2:B,A2:A >= C2, A2:A <= D2))

如果我为了可读性而用命名范围替换范围。

=MAX(FILTER( values, dates >= start_date, dates <= end_date))

最大解释

最大值公式将确定并返回数组中的最大值。最大值(数组)

过滤器解释

过滤器函数将返回一个符合条件的值数组。我们在 MAX 的数组字段中使用它。

过滤器(数组,条件1,条件2...等)

最大值日公式如下。

=INDEX(FILTER(A2:A,A2:A >= C2, A2:A <= D2),MATCH(F1,FILTER(B2:B,A2:A >= C2, A2:A <= D2),0),1)

如果我为了可读性而用命名范围替换范围。

=INDEX(FILTER( dates, dates >= start_date, dates <= end_dates), MATCH(max_value, FILTER(values ,dates >= start_date, dates <= end_date),0),1)

索引解释

索引函数将返回一个数组中的值,该数组位于输入的行和列。索引(范围、行、列)。

过滤器 1 解释

第一个过滤函数将返回最小值和最大值之间的日期列表,我们将其用作索引函数中的范围。

比赛解释

match 函数返回它找到给定数组中给定值的第一个位置。我们给它的值是最大值字段的输出。所以它正在寻找给定数组 MATCH(value, array, is_sorted) 中的最大值。

过滤器 2 解释

第二个过滤器函数正在执行过滤器函数在最大值字段中所做的事情。它返回日期之间的值列表。当匹配在列表中搜索此值时,它将有一个索引,以提供给索引函数,以了解最大值的日期。

尾随值说明

索引函数末尾的1是可选的,它是在我们给它的数组的第一列中表示我们正在寻找的索引函数,但是因为我们给它一个一维数组并且我们是默认情况下已经在第一列中查找。这完全是可选的,只是纯粹基于偏好。

匹配公式末尾的0表示数据未排序。我们希望匹配的确切值。这不是 match 函数的默认行为。

【讨论】:

  • 非常感谢您的详细解答!
猜你喜欢
  • 1970-01-01
  • 2020-10-23
  • 2022-01-15
  • 2016-09-30
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多