在 B2 中使用以下数组公式并根据需要拖动/复制:
=IF(AND($A2<>"",B$1<>"")=TRUE,IF(ISNUMBER(MATCH($A2&B$1,Sheet1!$A:$A&Sheet1!$B:$B,0))=TRUE,"x",""),"")
要填充列标题,请在 B1 中使用以下数组公式并拖动/复制:
=IFERROR(INDEX(Sheet1!$B$2:$B$100,MATCH(0,COUNTIF($A$1:A1,Sheet1!$B$2:$B$100),0)),"")
要填充行标题,请在 A2 中使用以下数组公式并拖动/复制:
=IFERROR(INDEX(Sheet1!$A$2:$A$100,MATCH(0,COUNTIF($A$1:A1,Sheet1!$A$2:$A$100),0)),"")
输入上述所有公式 ctrl + shift + enter
我通过增加数据测试了上述公式,但它减慢了我的 excel 文件。原因很可能是第一个公式。
如果您在 sheet1 中添加辅助列,则可以在 C2 中添加此列(不是数组公式):
=A2&B2
然后在 sheet2, B2 中可以使用(不是数组公式):
=IF(ISNUMBER(MATCH($A2&B$1,Sheet1!$C:$C,0))=TRUE,"x","")
随着工作表中数组公式的数量大大减少,这将大大提高速度到正常水平。
或者
您可以简单地使用数据透视表。输入“服务”作为列标签和值,输入“责任”作为行标签。该值应显示服务计数。唯一的区别是它将显示 1 而不是“x”。您还必须在更新数据时刷新数据透视表。