『勤務指定内容から日付を入力することで担当者を表示させる』(Excel勉強中)
初めて質問します。
一つのシート上で「A2」から「A32」までに1か月分の日付、「B1」から「N1」までに社員名を入れた勤務表です。勤務符号は6種類ほどあります。例:日勤・早出・中勤・夜勤・公休・有休です。
この勤務表を利用して、「X2」から「X7」までに6個の勤務種類を入力しておいて、「Y1」に任意の日付(表の「A列」の日付)を入力したときに「Y2」から「Y7」に該当する社員名を表示させたいのですが、どのようにすればいいか教えていただけますでしょうか?
宜しくお願いします。
< 使用 Excel:Excel2021、使用 OS:Windows11 >
(冷水) 2025/09/29(月) 22:01:00
|[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
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.