一些背景:我是一个中级的excel用户,我知道如何嵌套公式和使用宏,但我从来没有上过任何课或使用过VBA。对于工作,我只运行简单的分析,但我正在积极尝试学习更多关于VBA的知识,以便我可以进行更复杂的分析。
目标:我正在尝试压缩这个or语句。它工作得很好,但它很长,我觉得有一种方法可以让它变得更短/更少混乱。
或( G2=“贷项通知单-客户满意”,G2=“贷项通知单-已取消订单”,G2=“商业贷项通知单”,G2=“贷项通知单-制造商出库”,H2=“贷项通知单-客户满意度”,H2=“贷项通知单-已取消订单”,H2=“商业-贷项通知单”,H2=“贷项通知单-制造商出库”,I2=“贷项通知单-客户满意度”,I2=“贷项通知单-已取消订单”,I2=“商业-贷项通知单”,I2=“贷项通知单-已取消订单”,J2=“贷项备忘录-客户满意度”,J2=“贷项通知单-已取消订单”,J2=“商业-贷项通知单”,J2=“贷项通知单-制造商出库”,K2=“贷项通知单-客户满意”,K2=“贷项通知单-已取消订单”,K2=“商业-贷项通知单”,K2=“贷项通知单-制造商出库”,L2=“贷项通知单-客户满意”,L2=“贷项通知单-已取消订单”,L2=“商业-贷项通知单”,L2=“贷项通知单-制造商出库”)
我使用的原始数据在列A:G中有数据,列G有1-6个作业标签。我通常下载报告,并使用文本到列来分隔工作标签。在M列中,我想编写一个函数,告诉我G列中是否存在以下工作标记之一:l贷项通知单-已取消订单商业-贷项通知单贷项通知单- Mfr发放贷项通知单-客户满意度
发布于 2020-11-11 03:49:29
这是使用数组公式的一个很好的例子。从本质上讲,它们的工作方式与常规公式一样,只不过您使用的是通常在数组上处理标量的函数。更清楚地说,您可以使用IF(A1:G1='BLAH'...代替IF(A1='BLAH'...
在这里,我设置了一个小型示例工作表,其中数据在A1:C5中,公式位于E列中,查找值列表位于F1:F3中。然后,以下数组公式返回1,其中在当前Ax:Gx范围内的任何单元格中找到了任何查找值。
=MAX(IF(NOT(ISERROR(FIND($F$1:$F$3,A1:C1))), 1, 0))若要启用数组公式,需要在公式准备就绪时在公式栏中键入CTRL+SHIFT+ENTER。然后,它应该显示在大括号中,如下所示:
{=MAX(IF(NOT(ISERROR(FIND($F$1:$F$3,A1:C1))), 1, 0))}发布于 2020-11-11 10:41:17
由于您的OR函数返回TRUE/FALSE作为结果,因此对于等效的尝试:
=OR(ISNUMBER(SEARCH($P$1:$P$4,G2:L2)))其中,P1:P4 (或任何范围)包含作业标记的列表。
如果要在公式中对作业标记进行硬编码,可以使用:
=OR(ISNUMBER(SEARCH({"Credit Memo - Canceled Order";"Commercial- Credit Memo";"Credit Memo - Mfr Issue";"Credit Memo - Customer Satisfaction"},G2:L2)))但是为了便于维护,您最好将作业标记存储在一个范围内,如第一个示例所示。
https://stackoverflow.com/questions/64775662
复制相似问题