[[20250929205322]] 『勤務指定内容から日付を入力することで担当者を表』(Excel勉強中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『勤務指定内容から日付を入力することで担当者を表示させる』(Excel勉強中)

初めて質問します。
一つのシート上で「A2」から「A32」までに1か月分の日付、「B1」から「N1」までに社員名を入れた勤務表です。勤務符号は6種類ほどあります。例:日勤・早出・中勤・夜勤・公休・有休です。
この勤務表を利用して、「X2」から「X7」までに6個の勤務種類を入力しておいて、「Y1」に任意の日付(表の「A列」の日付)を入力したときに「Y2」から「Y7」に該当する社員名を表示させたいのですが、どのようにすればいいか教えていただけますでしょうか?
宜しくお願いします。

< 使用 Excel:Excel2021、使用 OS:Windows11 >


勤務符号の重複は無いということですか。
思い付きですので、未検証です。
Y2 =XLOOKUP($X2,FILTER($B$2:$N$32,$A$2:$A$32=Y$1,""),B$1:N$1,"")

(冷水) 2025/09/29(月) 22:01:00


該当する社員名を1セルに全て表示したい、と読み取る方が正しそう。
回答取り下げます。お目汚し失礼。
(冷水) 2025/09/29(月) 22:10:02

表のお手伝いです。

     |[A]    |[B] |[C] |[D] |[E] |[F] |[G] |[H] |[I] |[J] |[K] |[L] |[M] |[N] |[O]|[P]|[Q]|[R]|[S]|[T]|[U]|[V]|[W]|[X] |[Y]|[Z]
 [1] |       |山田|撫佐|水野|高橋|伊東|谷岡|安成|日名|小嶋|中瀬|深井|吉田|畠山|   |   |   |   |   |   |   |   |   |    |   |   
 [2] |9月1日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |日勤|   |   
 [3] |9月2日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |早出|   |   
 [4] |9月3日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |中勤|   |   
 [5] |9月4日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |夜勤|   |   
 [6] |9月5日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |公休|   |   
 [7] |9月6日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |有休|   |   
 [8] |9月7日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [9] |9月8日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [10]|9月9日 |    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [11]|9月10日|    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [12]|9月11日|    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [13]|9月12日|    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [14]|9月13日|    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [15]|9月14日|    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |   
 [16]|9月15日|    |    |    |    |    |    |    |    |    |    |    |    |    |   |   |   |   |   |   |   |   |   |    |   |  

勤務符号を入力してください。

(IT) 2025/09/29(月) 22:53:27


お手伝い有難うございます。

説明不足で申し訳ありません。勤務の重複はあります。なので、「Z2」「AA2」「AB2」と同じ勤務の方が表示されればいいのです。
宜しくお願いします。
(Excel勉強中) 2025/09/29(月) 23:02:44


 簡単なモデル例で回答します。適当に修正してください。

     A列         B列     C       D       E           X列     Y列
 1               Aさん   Bさん   Cさん   Dさん               2025/10/1
 2   2025/9/29   日勤    日勤    日勤    日勤        日勤    Bさん
 3   2025/9/30   有休    有休    日勤    日勤        有休    Cさん,Dさん
 4   2025/10/1   早出    日勤    有休    有休        早出    Aさん
 5   2025/10/2   日勤    有休    日勤    有休            
 6   2025/10/3   有休    日勤    有休    日勤            

 Y2セル
 =LET(
     a,FILTER($B$2:$E$6,$A$2:$A$6=$Y$1),
     b,FILTER($B$1:$E$1,a=X2,""),
     TEXTJOIN(",",TRUE,b)
 )
 下にコピー
(xyz) 2025/09/29(月) 23:15:34

 1セルに一人だけ表示するなら
 Y2セルに
 =LET(
     a,FILTER($B$2:$E$6,$A$2:$A$6=$Y$1),
     FILTER($B$1:$E$1,a=X2,"")
 )
 として、下にコピーです。(=の前の半角スペースは入れないようにしてください)

 また指定日付にデータが無いケースもありうるなら、
     a,FILTER($B$2:$E$6,$A$2:$A$6=$Y$1,""),
 とすることでエラー回避できます。
(xyz) 2025/09/30(火) 06:34:03

的確なご指導ありがとうございました。
早速、活用させていただきます。
(Excel勉強中) 2025/10/01(水) 07:50:55

先日は(xyz)さんに教えていただいた方法で見事に解決できました。
有難うございました。
そこでスプレッドシートで共有をしたところ、折角の教えていただいた内容が表示されず、「不明な関数」となります。
これは仕方のないことなのでしょうか?もし、対応策があるようであればご教授ください。
(Excel勉強中) 2025/10/02(木) 21:03:34

 FILTER関数は、スプレッドシートとExcelでは
第3引数以降が異なります
確認してください
(はてな) 2025/10/02(木) 21:38:31

 ご指摘のとおり仕様をよく確認してください。

 【Google Spreadsheet】
 Y2セルに下記を入れ、下にコピーします。
 =LET(
      a,FILTER($B$2:$E$6,$A$2:$A$6=$Y$1),
      IF(ISERROR(a),"",
         IFERROR(FILTER($B$1:$E$1,a=X2),"")
      )
 )

 【参考まで】
 なお、Excel2021では使えないBYROW関数(Excel365,2024で使用可)が、
 Google Spreadsheetでは使えます。

 Y2セルに次の式を入れることで、(コピーしなくても)複数の行の結果を表示できます。
 =BYROW(X2:X5,
    LAMBDA(shift,
        LET(
            a,FILTER(B2:E6,A2:A6=Y1),
            IF(ISERROR(a),"",
                IFERROR(FILTER(B1:E1,a=shift),"")
            )   
        )
    )
 )

(xyz) 2025/10/03(金) 06:26:20


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.