电子表格多个公式混搭
我试图自动化一些进程的任务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)),"")