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

Excel表格按人员游戏偏好条件分组的实现方法咨询

实现方案(基于Excel常规人员游戏偏好表结构:A列存姓名,首行B列及往后存游戏名称,对应单元格标记「√」代表喜爱对应游戏)

方案1:Excel函数实现(无代码,适合普通用户)

核心用IF条件判断筛选符合要求的人员,再拼接成列表:

  • 适用版本:Excel 365/2021及以上
    在需要展示分组的单元格输入公式即可:
    =TEXTJOIN("、",TRUE,FILTER(Sheet1!$A:$A,Sheet1!B:B="√","暂无人员"))
    说明:Sheet1!B:B="√"就是条件判断规则,你可以根据自己的表内标记替换成Sheet1!B:B="喜爱"这类匹配逻辑,公式会自动返回所有喜爱对应游戏的人员姓名,用顿号拼接。
  • 适用版本:Excel 2019及更早
    输入完公式后按Ctrl+Shift+Enter触发数组计算生效:
    =TEXTJOIN("、",TRUE,IF(Sheet1!B2:B100="√",Sheet1!A2:A100,""))

方案2:VBA脚本实现(一键批量生成全部分组,适合数据量较大的场景)

如果需要每次更新原始表后自动生成所有游戏的分组,可直接用脚本实现:

  1. 按Alt+F11打开VBA编辑器,插入新模块
  2. 粘贴如下代码,修改条件匹配规则后运行即可:
Sub 按游戏生成分组()
    Dim 原始表 As Worksheet, 结果表 As Worksheet
    Dim 最后行 As Long, 最后列 As Long, i As Long, j As Long
    Dim 人员列表 As String
    Set 原始表 = ThisWorkbook.Sheets("Sheet1") '替换为你的原始数据表名称
    '自动创建结果表
    On Error Resume Next
    Set 结果表 = ThisWorkbook.Sheets("分组结果")
    If Err.Number <> 0 Then
        Set 结果表 = ThisWorkbook.Sheets.Add(after:=原始表)
        结果表.Name = "分组结果"
    End If
    结果表.Cells.Clear
    最后行 = 原始表.Cells(Rows.Count, 1).End(xlUp).Row
    最后列 = 原始表.Cells(1, Columns.Count).End(xlToLeft).Column
    '遍历所有游戏类别
    For j = 2 To 最后列
        人员列表 = ""
        结果表.Cells(j - 1, 1) = 原始表.Cells(1, j) & "组"
        '条件判断筛选喜爱当前游戏的人员
        For i = 2 To 最后行
            If 原始表.Cells(i, j) = "√" Then '此处可修改为你实际的喜爱标记
                人员列表 = 人员列表 & "、" & 原始表.Cells(i, 1)
            End If
        Next i
        结果表.Cells(j - 1, 2) = IIf(人员列表 <> "", Mid(人员列表, 2), "暂无人员")
    Next j
    MsgBox "全部分组生成完成"
End Sub

内容的提问来源于stack exchange,提问作者Tommy Tom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:45:03