【问题标题】:Excel - Scheduling persons in the correct cell of working hoursExcel - 在正确的工作时间单元格中安排人员
【发布时间】:2017-06-11 16:17:31
【问题描述】:

我是一群学生组织活动的负责人。在图片中,您可以看到 3 个表格:

  • 首先是活动的人员及其工作时间
  • 其次是我在特定时间间隔内拥有的人数。
  • 第三点(我的问题是关于什么的),我希望看到我选择在 16-18 年工作的人将在单元格 I2 中显示在一个字符串中(第 1 个人,第 3 个人)

我无法弄清楚我将使用 Excel 的公式执行此操作的顺序。

提前致谢

Image

【问题讨论】:

  • 这仅适用于原生公式,如果您订阅了引入 TEXTJOIN() 的 Office 365 Excel,否则它将需要一个长而复杂的嵌套 IF,如果您只有 3 个还不错,但我认为会有很多超过三个。或者您可以使用 VBA。
  • 我们是 10 岁,但如果您可以展示用于 3 个人的所有 IF 语句的示例,我将能够继续使用该示例@ScottCraner

标签: excel scheduling rostering


【解决方案1】:

如果您订阅了 Office 365 Excel,则类似于以下数组公式:

=TEXTJOIN(",",TRUE,IF($B2:$D2=I1,$B$1:$D$1,""))

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 确认,而不是 Enter。如果操作正确,Excel 会在公式周围加上{}


如果您没有订阅 Office 365 Excel

然后将此代码放入工作簿附加的模块中,并使用上述公式:

Function TEXTJOIN(delim As String, skipblank As Boolean, arr)
    Dim d As Long
    Dim c As Long
    Dim arr2()
    Dim t As Long, y As Long
    t = -1
    y = -1
    If TypeName(arr) = "Range" Then
        arr2 = arr.Value
    Else
        arr2 = arr
    End If
    On Error Resume Next
    t = UBound(arr2, 2)
    y = UBound(arr2, 1)
    On Error GoTo 0

    If t >= 0 And y >= 0 Then
        For c = LBound(arr2, 1) To UBound(arr2, 1)
            For d = LBound(arr2, 1) To UBound(arr2, 2)
                If arr2(c, d) <> "" Or Not skipblank Then
                    TEXTJOIN = TEXTJOIN & arr2(c, d) & delim
                End If
            Next d
        Next c
    Else
        For c = LBound(arr2) To UBound(arr2)
            If arr2(c) <> "" Or Not skipblank Then
                TEXTJOIN = TEXTJOIN & arr2(c) & delim
            End If
        Next c
    End If
    TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim))
End Function

链接的 IF():

=LEFT(IF($B2=I1,$B$1 & ",","") & IF($C2=I1,$C$1 & ",","") & IF($D2=I1,$D$1 & ",",""),LEN(IF($B2=I1,$B$1 & ",","") & IF($C2=I1,$C$1 & ",","") & IF($D2=I1,$D$1 & ",",""))-1)

【讨论】:

  • 使用 textjoin 使其工作,Office 16 也有这个公式。我不知道这个的存在。谢谢你,这对我帮助很大。
猜你喜欢
  • 2017-12-21
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多