将两个 Excel 公式放在一起

将两个 Excel 公式放在一起

我在 sheet1 中有一些特定数据,在 sheet2 中有一些其他数据。

我需要比较 sheet1 中的特定值 (Var1) 并从 sheet2 返回特定值,并返回相同的输出。我成功地用这个公式做到了

=IF(COUNTIF(Sheet2!A:A, A2), "Yes", "No")

工作表1

+------+------+---------+---------+
| var1 | var2 | result1 | result2 |
+------+------+---------+---------+
|      |      |         |         |
| abc  |  123 | yes     | yes     |
|      |      |         |         |
| bcd  |  234 | yes     | no      |
|      |      |         |         |
| cde  |  456 | no      | blank   |
+------+------+---------+---------+

工作表2

+-------+-------+-------+
| List1 | List2 | List3 |
+-------+-------+-------+
| abc   |   123 |       |
| bcd   |       | 123   |
| def   |       |       |
+-------+-------+-------+

我需要在 list1 中查找 var1,在 list2 和 list3 中查找 var2

我想比较 Sheet2 中的另一个值(Var2),仅当前一个结果为“是”时,这可以通过 IF 函数轻松实现;但问题是它应该只比较 Sheet2 中特定行的值,这些行应该是 Sheet2 中找到 Var1 的正(+)和负(-)2 行。

我并不熟练掌握 VBA,但我一直在尝试使用 Excel 公式。

答案1

解答这个问题很有趣 :)

使用您的示例,我将这个函数放在C2('result1'下),并用数组填充它:

=IF(COUNTIF(Sheet2!A:A,A2),"Yes","No")

对于D2‘result2’:

=IF(C2="No","No",IF(COUNTIF(INDIRECT("Sheet2!C"&MAX((MATCH(A2,Sheet2!A:A)-2),1)&":C"&(MATCH(A2,Sheet2!A:A)+2)),B2),"Yes","No"))

再次,数组填充它,它应该可以工作:)

答案2

您可以使用 OR() 并比较是否有正数和负数。如下所示:

=IF(OR(A1="+";A1="-");"Ok";"")

然后您可以将“Ok”更改为您的公式。

=IF(OR(A1="+";A1="-");=IF(COUNTIF(Sheet1!C:C, A2), "Yes", "No");"")

这就是你需要的吗?

答案3

尝试: =IF(C2<>"Yes","",IF(COUNTIF(OFFSET(Sheet2!$B$1:$C$5,MAX(0,MATCH(A2,Sheet2!A:A,0)-3),0),B2)>0,"Yes","No"))

我假设:

  • var1就像您说的,是一个唯一键。否则,这将仅匹配第一次出现的情况。
  • 你想var2匹配两个都 list1list2。否则,您应该将搜索窗口缩小至$B$1:$B$5。如果右侧有更多列表,只需将列添加到搜索窗口即可。

如果您对其工作原理有任何疑问,请告诉我。

相关内容