excel 根据表中两列的数据查找单元格值

dgjrabp2  于 2023-01-21  发布在  其他
关注(0)|答案(4)|浏览(223)

使用Excel公式,我想根据表B中的数据完成下表A的最后三列。如果表B中特定ID的任何一行在某一年中包含“是”,则在表A中同一年的列上填写“是”。例如,ID=11在col=2015的一行中包含“是”,在col=2016的三行中包含“是”。在col=2017中没有行。因此,在表A中ID=11的2015和2016列中填写“是
表A
| 识别号|二〇一五年|二〇一六年|二〇一七年|
| - ------|- ------|- ------|- ------|
| 十一||||
| 十三||||
| 十五||||
表B
| 识别号|二〇一五年|二〇一六年|二〇一七年|
| - ------|- ------|- ------|- ------|
| 十一||是的||
| 十一||是的||
| 十一|是的|是的||
| 十三|是的|||
| 十三|是的|是的||
| 十三||||
| 十三||是的||
| 十五|||是的|
| 十五|是的|||
| 十五|是的|是的||
| 十五|是的|是的||
我试过了,

=VLOOKUP(A2,$A$2:$D$12,2,FALSE)
=VLOOKUP(A2,$A$2:$D$12,3,FALSE)
=VLOOKUP(A2,$A$2:$D$12,4,FALSE)
7rfyedvj

7rfyedvj1#

尝试使用IF()函数执行SUMPRODUCT()

=IF(SUMPRODUCT(($H$2:$J$12="Yes")*($G$2:$G$12=$A2)*($H$1:$J$1=B$1))>0,"Yes","")

1yjd4xko

1yjd4xko2#

VLOOKUP只查找第一个值,因此在您的数据中它通常为空。您可以使用COUNTIFS
G2中的公式(并拖动到I4):

=IF(COUNTIFS($A:$A,$F2,B:B,"yes")>0,"yes","")

结果:

qojgxg4l

qojgxg4l3#

如果你想使用VLOOKUP,那么它将需要以下方法.

突出显示的单元格中的公式,可以向下和横向复制(在O365以外的版本中可能需要CTRL+SHIFT+ENTER
=IF(ISNA(VLOOKUP($A2&"yes",$G$2:$G$12&H$2:H$12,1,0)),"","Yes")

3hvapo4f

3hvapo4f4#

这里是一个一次溢出所有结果(包括表头)的数组版本。在单元格F1中输入以下公式:

=LET(id, A2:A12, data, B2:D12, ux, UNIQUE(id), yr, B1:D1,
 out, IF(MMULT(TRANSPOSE(N(id = TOROW(ux))), N(data="yes")) > 0, "yes", ""),
 VSTACK(HSTACK("", yr), HSTACK(ux, out))
)

LET是为了便于阅读和合成,这里的公式不使用它:

=VSTACK(HSTACK("", B1:D1), HSTACK(UNIQUE(A2:A12), IF(MMULT(TRANSPOSE(N(A2:A12 
  = TOROW(UNIQUE(A2:A12)))), N(B2:D12="yes")) > 0, "yes", "")))

它使用MMULTID和年份(out)进行计数,其余部分只是通过VSTACK/HSTACK提供输出。

相关问题