gpt4 book ai didi

vba - 搜索完全相同的日期或过去最接近的日期的函数 + 一个额外条件

转载 作者:行者123 更新时间:2023-12-03 02:46:55 25 4
gpt4 key购买 nike

这是“Is it possible to write a VBA code that searches for the exact same data or the closest one in the past?”的延续

基本上,我想扩展@Jeeped 发布的功能,但由于某种原因,尽管我正在做他展示的相同内容,但它并没有按计划进行。

这种情况下的额外条件是用于生产果汁的机器必须与参数的机器相当。


(我正在做的事情的图像)

基本上,如果果汁是在 29/09 用机器 M0 制作的,那么我想要获得用于该果汁的参数。显然没有使用30/09的参数,而是使用了机器M0的25/09的参数。

我将@Jeeped 在上一个问题中发布的代码编辑为以下内容

=IFERROR(INDEX(C$2:C$10, MIN(INDEX(ROW($1:$10)+($A$2:$A$10>$F2)*1E+99+($B$2= $G$2),,))),"")

但是我收到一个错误,我不知道为什么,但我感觉它与我写的内容有关($B$2=$G$2),但我该如何修复它?

免责声明:所使用的百分比是虚构的,这只是我需要为多个工作簿工作的函数,该函数将自动执行我每月需要完成的一些工作。

最佳答案

您似乎想添加 B 列应与 G2 匹配的条件。这应该可以解决问题。


=IFERROR(INDEX(C$2:C$10, MIN(INDEX(ROW($1:$9)+(($A$2:$A$10>$F2)+($B$2:$B$10<>$G2))*1E+99,,))),"")

这种类型的公式不会直接匹配。它排除所有不匹配的内容,然后接受剩下的内容。就像 F2 中的日期与 A 列中的日期进行比较一样,任何较大的日期(即较晚的日期)都会乘以一个非常大的数字。我们对 G2 中的机器 ID 执行相同的操作。与 B 列中的机器不匹配的任何内容都会乘以相同的非常大的数字。通过从数学上排除任何不适合的东西,我们就剩下适合的东西。

还需要注意的是,ROW(1:9) 是 C2:C10 或 A2:A10 中的位置,而不是工作表上的实际行。

附录:由于日期现在未排序,我可以提供标准公式和数组公式来进行补偿。 I2 的数组公式为,

=SUMIFS(C$2:C$10,$A$2:$A$10,MAX(IF($A$2:$A$10<=$F2,IF($B$2:$B$10=$G2,$A$2:$A$10))),$B$2:$B$10,$G2)

必须使用 Ctrl+Shift+Enter 来完成此操作,而不是简单地按 Enter。输入正确后,可以向右或向下填写。接下来是一个标准公式,不需要 Ctrl+Shift+Enter 但可以完成相同的操作。您的结果应类似于下图。

=SUMIFS(C$2:C$10, $A$2:$A$10,MAX(INDEX(($A$2:$A$10<=$F2)*($B$2:$B$10=$G2)*($A$2:$A$10),,)),$B$2:$B$10,$G2)

     enter image description here

关于vba - 搜索完全相同的日期或过去最接近的日期的函数 + 一个额外条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26265861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com