2017-06-11 4 views
0

私はイベントを組織する学生のグループの長です。彼らは第二イベント Excel - 作業時間の正しいセルに人をスケジュール

  • 私はその特定の時間間隔を持っている者の額に自分の仕事をする人やその時間と

    • 最初のイベント:絵では、3つのテーブルを参照してください。
    • 3番目(私の質問について)、16-18で作業するように選択した人がセルI2
    • の1つの文字列(Person 1、Person 3)で表示されるようにしたいと思います

    これを実行するためにExcelの公式をどの順番で使用するのかわかりません。事前に

    おかげ

    Image

  • +0

    これは、TEXTJOIN()を導入したOffice 365 Excelのサブスクリプションがある場合はネイティブの数式でのみ可能です。そうでない場合は、複雑なネストされたIFが必要になります。しかし、私は3つ以上のものがあると仮定します。または、VBAを使用することもできます。 –

    +0

    私たちは10人ですが、3人のために使用するすべてのIFステートメントの例を表示できれば、その例を続けることができます@ScottCraner – urtkiller

    答えて

    0

    あなたは、この配列数式のようなもののOffice 365 Excelにsubscritptionをお持ちの場合:

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

    textjoinを使用すると、Office 16にもこの式があります。私はこの事実の存在を知らなかった。私はあなたに感謝します、これは私をたくさん助けました。 – urtkiller

    関連する問題