Excel - 在正确的工作时间内安排人员


圈圈红
2025-03-12 10:14:57 (19天前)


我是一群学生组织活动的负责人。在图片中你看到3个表格:
首先,与人员及其工作时间的活动将在活动中完成工作
其次是人数……

2 条回复
  1. 0# NetworkAttachedStorage | 2019-08-31 10-32



    如果您对Office 365 Excel有一个子写入,那么像这个数组公式:




    1. =TEXTJOIN(“,”,TRUE,IF($B2:$D2=I1,$B$1:$D$1,””))

    2. </code>


    作为数组公式,需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter来确认。如果正确完成,那么Excel将放置

    {}

    围绕公式。







    如果您没有订阅Office 365 Excel

    </强>



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




    1. 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

    2. If t >= 0 And y >= 0 Then
    3.     For c = LBound(arr2, 1) To UBound(arr2, 1)
    4.         For d = LBound(arr2, 1) To UBound(arr2, 2)
    5.             If arr2(c, d) <> "" Or Not skipblank Then
    6.                 TEXTJOIN = TEXTJOIN & arr2(c, d) & delim
    7.             End If
    8.         Next d
    9.     Next c
    10. Else
    11.     For c = LBound(arr2) To UBound(arr2)
    12.         If arr2(c) <> "" Or Not skipblank Then
    13.             TEXTJOIN = TEXTJOIN & arr2(c) & delim
    14.         End If
    15.     Next c
    16. End If
    17. TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim))
    18. End Function

    19. </code>




    链接的IF():




    1. =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)

    2. </code>

登录 后才能参与评论