You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在M365 Excel中用公式实现多工作表设备在线状态核查

解法说明

前提假设

  • 每个工作表的表格(Table1、Table2、Table3)均包含设备唯一标识列(如设备名称/ID)和状态列(分别对应PC1Output、PC2Output、IP3 Output)
  • 我们在一个汇总工作表中统一校验设备状态,或在任意表中交叉校验

优先使用VLOOKUP的解法

1. 单设备状态校验(判断是否离线)

在汇总表的设备列表(假设A列为设备名)旁的单元格(如B2)输入以下公式,下拉即可批量判断:

=IF(OR(
    VLOOKUP(A2, Table1[#All], MATCH("PC1Output", Table1[#Headers], 0), FALSE)="Off",
    VLOOKUP(A2, Table2[#All], MATCH("PC2Output", Table2[#Headers], 0), FALSE)="Off",
    VLOOKUP(A2, Table3[#All], MATCH("IP3 Output", Table3[#Headers], 0), FALSE)="Off"
), "离线", "在线")
  • 公式说明:
    • MATCH函数动态定位各表中状态列的位置,避免硬编码列号(适配表格结构变化)
    • VLOOKUP根据设备标识匹配对应状态
    • OR函数判断任意一个表中设备状态为Off时,标记为离线

2. 提取所有离线设备(动态数组,M365支持)

如果需要直接生成所有离线设备的列表,可结合UNIQUE、FILTER和上述判断逻辑:

=FILTER(
    UNIQUE(VSTACK(Table1[设备标识列], Table2[设备标识列], Table3[设备标识列])),
    BYROW(UNIQUE(VSTACK(Table1[设备标识列], Table2[设备标识列], Table3[设备标识列])), 
        LAMBDA(x, OR(
            VLOOKUP(x, Table1[#All], MATCH("PC1Output", Table1[#Headers], 0), FALSE)="Off",
            VLOOKUP(x, Table2[#All], MATCH("PC2Output", Table2[#Headers], 0), FALSE)="Off",
            VLOOKUP(x, Table3[#All], MATCH("IP3 Output", Table3[#Headers], 0), FALSE)="Off"
        ))
    )
)
  • 替换公式中的设备标识列为各表中实际的设备名称/ID列标题(如Table1[设备名])

使用COUNTIF的补充解法

如果仅需统计各表中Off状态的设备数量,或判断设备是否在任意表中离线,可使用以下公式(汇总表B2):

=IF(
    COUNTIF(INDEX(Table1[#All],,MATCH("PC1Output", Table1[#Headers], 0)), "Off") +
    COUNTIF(INDEX(Table2[#All],,MATCH("PC2Output", Table2[#Headers], 0)), "Off") +
    COUNTIF(INDEX(Table3[#All],,MATCH("IP3 Output", Table3[#Headers], 0)), "Off") > 0,
    "离线", "在线"
)
  • 公式说明:INDEX函数定位各表的状态列,COUNTIF统计该列中Off的数量,总和大于0则标记为离线

原公式问题纠正

你之前的COUNTIF写法存在两个错误:

  1. COUNTIF仅支持2个参数(范围+条件),你传入了3个范围参数,不符合语法
  2. 选择的范围是表头区域(Table1[[#Headers],[PC1Output]]),而非整个状态列数据,无法统计有效内容

内容的提问来源于stack exchange,提问作者Seth Keddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:52:40