【问题标题】:Google Sheets: Return cell value in a range/array based on multiple criteria (including comparison of value between two numbers)Google表格:根据多个条件返回范围/数组中的单元格值(包括两个数字之间的值比较)
【发布时间】:2021-08-05 19:55:01
【问题描述】:

非常感谢在我一直在努力解决的这个问题上提供一些帮助。我相信答案在 Match、Index、Indirect、ArrayFormula 的某个地方,但我很难找到它。

所以我的主要目标是根据 3 个(技术上是两个)评估来获得产品的成本。我可用的输入是 Tierweight

Example Tier Weight kg Prod Cost
Example 1 SPC 0.65 ?
Example 2 STE 0.15 ?

产品成本的参考表如下:

Row Tier Min Wt(kg) Max Wt (kg) Prod Cost
1 SME 0.00 0.10 4.0
2 STE 0.00 0.10 4.5
3 STE 0.10 0.25 4.7
4 STE 0.25 0.50 5.0
5 LE 0.00 1.00 5.5
6 SPC 0.00 0.25 5.7
7 SPC 0.25 0.50 6.0
8 SPC 0.50 1.00 6.5
9 SPC 1.00 1.50 7.0

为了获得产品成本,我需要评估,然后评估产品重量落入的最小和最大重量范围(对于该层)。

因此以示例 1 为例,层是 SPC,这使得 第 6 行到第 9 行有效。然后重量为 0.65,介于 第 8 行 中的最小和最大重量值 0.5kg 和 1.0kg 之间。因此产品成本为 6.5。

请注意,这两个标准都很重要,因为层级之间的权重范围重叠。

任何有关如何评估的帮助将不胜感激。

谢谢

【问题讨论】:

  • 你的真实数据集中有多少层变化?
  • 有 5 行。总共大约 45 行。不多。

标签: arrays google-sheets filter google-sheets-formula google-query-language


【解决方案1】:

尝试:

=INDEX(IFNA(VLOOKUP(VLOOKUP(F2:F, {UNIQUE(FILTER(A2:A, A2:A<>"")), 
 SEQUENCE(COUNTUNIQUE(A2:A))*10000}, 2, 0)+G2:G, {
 VLOOKUP(A2:A, {UNIQUE(FILTER(A2:A, A2:A<>"")), 
 SEQUENCE(COUNTUNIQUE(A2:A))*10000}, 2, 0)+B2:B, D2:D}, 2, 1)))


它是如何工作的:

demo spreadsheet

【讨论】:

  • 哇,首先感谢您闪电般的快速响应。多么了不起的社区。其次,这个公式绝对有效!我唯一的问题是,当我复制粘贴它时,它会给我一个错误,即下部单元格将被覆盖。所以它会在下面一行显示答案。抱歉,我对此有点菜鸟,因此对公式进行一些解包确实会有所帮助。所以Filter、MOD和Sequence对我来说都是新的。我已经查看了这些功能并试图理解它。现在我真的很想知道在哪里评估 weight min max :S.
  • @AdnanM 它的 ARRAYFORMULA 这意味着它会自动计算所有行,这意味着您需要清除整个列并在数据集开始的第一行中使用它。您可以删除最大列。它仅使用 MIN 列,公式查找完全匹配或更高的近似值。如果您愿意,很乐意解释整个公式...
  • @AdnanM 查看基础知识:webapps.stackexchange.com/a/123730/186471
  • 老实说,如果您能解释整个公式,我将非常感谢您。我一直在尝试部分复制它,但我无法掌握逻辑。非常感谢您的帮助。
  • 亲爱的@player0。你真是太好了。多么棒的逻辑和奇妙的一步一步的指导!我走的是一条完全不同的道路,这更有意义。感谢一百万您的支持。很抱歉,我的回复延迟是凌晨 1 点,所以无法睁大眼睛。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
相关资源
最近更新 更多