私はイベントを組織する学生のグループの長です。彼らは第二イベント Excel - 作業時間の正しいセルに人をスケジュール
- 最初のイベント:絵では、3つのテーブルを参照してください。
- 3番目(私の質問について)、16-18で作業するように選択した人がセルI2 の1つの文字列(Person 1、Person 3)で表示されるようにしたいと思います
これを実行するためにExcelの公式をどの順番で使用するのかわかりません。事前に
おかげ
私はイベントを組織する学生のグループの長です。彼らは第二イベント Excel - 作業時間の正しいセルに人をスケジュール
これを実行するためにExcelの公式をどの順番で使用するのかわかりません。事前に
おかげ
あなたは、この配列数式のようなものの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)
textjoinを使用すると、Office 16にもこの式があります。私はこの事実の存在を知らなかった。私はあなたに感謝します、これは私をたくさん助けました。 – urtkiller
これは、TEXTJOIN()を導入したOffice 365 Excelのサブスクリプションがある場合はネイティブの数式でのみ可能です。そうでない場合は、複雑なネストされたIFが必要になります。しかし、私は3つ以上のものがあると仮定します。または、VBAを使用することもできます。 –
私たちは10人ですが、3人のために使用するすべてのIFステートメントの例を表示できれば、その例を続けることができます@ScottCraner – urtkiller