电子表格多个公式混搭

我试图自动化一些进程的任务pipe理,但我没有成功。 我不能使用macros或类似的,只是公式,我不擅长电子表格黑客。

无论如何,这是我的工作簿,其** **

**Form** TASK LI DE X Test 1 3 Test2 2 **LI** WEEK TASK COMPLETED 1 Test 2 Test 2 Test * 4 Test2 * **DE** WEEK TASK COMPLETED 1 Test * 

我一直在试图做的是:

  • 在表单上,​​检查来自LI或DE的哪个列> 0。
  • 对于每一个> 0,检查其相应工作表(LI或DE)上是否存在TASK。
  • 如果有,请检查它是否有*。
  • 如果有一个*,则取该行的WEEK编号,将它与另一个工作表中的WEEK进行比较,取较大的数字,并将其加载到Form上的TASK的X列中。 这里的顺序并不重要。 我只需要一个带*的周。

对于这个例子,为了让X改变,TASK必须在它所在的工作表中使用*。 例如,如果在表单上,​​testing在LI和DE中有数字,并且testing在LI表单中有*,但在DE表单中没有,则X必须保持为空。 但是,如果两者都带有*,则X必须在LI和DE之间加载更大的WEEK。

如果我要用macros来做,我会简单地用循环来检查每一列,但是对于公式,我想嵌套的IF就足够了。

我已经尝试过使用VLOOKUP,但它只需要数组中的第一个项目,虽然顺序无关紧要,但通常(我认为我会制定这个策略)是最后一个值。

任何疑问,只要让我知道! 我希望我明确提出我的问题。

提前非常感谢!

我认为你可以用公式来做,但是你必须循环,你需要SUMPRODUCT或者数组公式。

以下是您可以尝试的公式(使用Ctrl Shift Enter进行validation):

 =MAX((LI!$C$2:$C$5="*")*(LI!$A$2:$A$5)*(LI!$B$2:$B$5=Form!A2),(DE!$C$2:$C$5="*")*(DE!$A$2:$A$5)*(DE!$B$2:$B$5=Form!A2)) 

一些解释:

  • MAX公式将find两个arrays中两个arrays公式之间的最大值
  • 数组公式像多重循环testing一样工作:
    • (LI!$C$2:$C$5="*")检查第三列是否有星号
    • (LI!$A$2:$A$5)将返回周数
    • (LI!$B$2:$B$5=Form!A2)将检查任务是否相同

我希望我能很好地理解你打算做什么:)

[编辑]另一个尝试感谢你的评论(这两个任务应该完成出现)

 =IF(AND((LI!$C$2:$C$5="*")*(LI!$A$2:$A$5)*(LI!$B$2:$B$5=Form!A2),(DE!$C$2:$C$5="*")*(DE!$A$2:$A$5)*(DE!$B$2:$B$5=Form!A2))),MAX((LI!$C$2:$C$5="*")*(LI!$A$2:$A$5)*(LI!$B$2:$B$5=Form!A2),(DE!$C$2:$C$5="*")*(DE!$A$2:$A$5)*(DE!$B$2:$B$5=Form!A2)),"")