[英]I need ARRAYFORMULA() to use conditions in another row to decide what to calculate
Here is my formula in G5 =ARRAYFORMULA(IF(AND(J5:J17=true,H5:H17=false),E5:E17*F5:F17*1.075,IF(AND(J5:J17=true,H5:H17=TRUE),0,IF(and(J5:J17=false,H5:H17=false),E5:E17*F5:F17,IF(and(J5:J17=false,H5:H17=true),0)))))
这是我在 G5 中的公式=ARRAYFORMULA(IF(AND(J5:J17=true,H5:H17=false),E5:E17*F5:F17*1.075,IF(AND(J5:J17=true,H5:H17=TRUE),0,IF(and(J5:J17=false,H5:H17=false),E5:E17*F5:F17,IF(and(J5:J17=false,H5:H17=true),0)))))
This works if Cols H,I, and J are all false, however once I start setting anything in H,I,or J to true, the formula stops working.如果列 H、I 和 J 全部为假,则此方法有效,但是一旦我开始将 H、I 或 J 中的任何内容设置为真,公式就会停止工作。
Thanks for any help, Im really stumped on this one.感谢您的帮助,我真的被这个难住了。
I think you can simplify your formula all the way down to:我认为您可以将公式一直简化为:
=arrayformula(E5:E17*F5:F17*not(H5:H17)*if(J5:J17,1.075,1))
A few pointers:几点建议:
use:利用:
=ARRAYFORMULA(IF((J5:J17=true)*(H5:H17=false), E5:E17*F5:F17*1.075,
IF((J5:J17=true)*(H5:H17=TRUE), 0,
IF((J5:J17=false)*(H5:H17=false), E5:E17*F5:F17,
IF((J5:J17=false)*(H5:H17=true), 0)))))
You can try to do this with MAP:您可以尝试使用 MAP 进行此操作:
=MAP(J5:J17,H5:H17,E5:E17,F5:F17,LAMBDA(j,h,e,f,
IF(AND(j=true,h=false),e*f*1.075,IF(AND(j=true,h=TRUE),0,IF(and(j=false,h=false),e*f,IF(and(j=false,h=true),0))))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.