『シフト表 抽出』(0000000000012121212121212121)
1ヶ月分のシフト表から「宿直」のみ抽出したいのですが
関数やエクセル機能でのやり方を教えていただきたいです。
職員人数→50人
例
1日 2日 3日
職員 宿直 日勤 早番
職員 日勤 宿直 遅番
上記の様な形の勤務表で日付はB2セルから、職員名はA3セルから、勤務はB3セルから入力されています。
1日 2日 3日
職員 職員 職員
の様に抽出したいです宜しくお願い致します
< 使用 Excel:Excel2019、使用 OS:Windows11 >
宿直が日に1人なら =CONCAT(REPT($A$3:$A$52,B3:B52="宿直")) →コピペ (はてな) 2025/06/23(月) 14:07:44
Match関数とIndex関数を組み合わせてもできそうです。 (xyz) 2025/06/23(月) 14:16:07
=INDEX($A$3:$A$52,MATCH("宿直",B3:B52,0),1) 右にコピーペイスト
VLOOKUP関数で参照列が検索列より左にある場合が典型的な利用機会ですが、MATCH+INDEXは結構出てきます。 XLOOKUPの登場で使用機会は減っているかもしれませんが、 覚えておいて損はしない視点ではないかと思います。 (xyz) 2025/06/23(月) 15:26:49
はてなさんの回答参考になりました。使ったことなかったですね。 これは仮に複数人いてもOKですね。(文字列がつながらないように、REPTの第一引数に&" "をつけるなどすれば) (xyz) 2025/06/23(月) 15:58:33
他にもご回答いただいた皆様ご協力ありがとうございます
また機会がありましたら宜しくお願い致します
(0000000000012121212121212121) 2025/06/24(火) 12:20:53
"他の回答"は読んでいただいたのでしょうか? もちろん質問者さんのお好きなものを選んでいただいて結構なんですが、 学習の機会を損なっているとしたら残念かなと思いメモしました。
私見では、INDEX/MATCHのほうがより基本的で使用される頻度も高く、学習価値も少なからずあるように思いました。 問題の都度アドホックな対応で切り抜けるよりも、基本により近い手法にも目を向けていただきたいですね。
もちろんREPTを使った回答を批判している訳ではありません。 誤解のないようにお願いします。 有益な方法ではありますが、幾分難しいかな、INDEX/MATCHほどに一般的に使われていない個人的印象でした。
そこで、自己学習のために、=CONCAT(REPT(...)) 式について、ChatGPTに問い合わせてみました。 閲覧者の参考になれば幸いです。 (AIによる回答なので、必ずしも正しいものである保証はありません。)
============以下、回答の引用です。=================== Excelの =CONCAT(REPT(...)) 式による表引きは、クリエイティブかつ柔軟性の高い手法ですが、 一般的には以下のような 肯定的・否定的意見 が見られます。
✅ 肯定的な見解 1.配列数式の柔軟な応用例として有用 ・REPT を使うことで、条件に一致する値を抽出・結合できるため、 「単一セルに複数結果を結合したい」ような特殊なニーズに応えられる。 ・FILTER関数やTEXTJOINなどが使えない環境(例:Excel 2016以前)でも工夫して似た機能を実現可能。
2.非標準な手法だが、非対応関数を補完できる ・VLOOKUP や INDEX/MATCH ではできない「複数ヒットの連結」も可能。 ・VBAを使わずに条件一致のデータ連結を実現する「裏技」的に価値がある。
❌ 否定的な見解・注意点 1.パフォーマンスが悪い ・REPT による計算は内部的に大量の文字列操作を行うため、大量データに対して使用すると 処理が重くなる。 ・特に動的に変化する大きな表では、Excel全体が遅くなる原因に。 2.構文が分かりづらい・可読性が低い ・一見して何をしているか理解しにくいため、他人にとって「可読性」が悪い。 ・保守性やチームでの利用には不向き。 3.型の扱いに注意が必要 ・REPT によって「文字列としての処理」が強制されるため、数値が文字列化されるなど 型変換の副作用 が起こる可能性がある。 4.複数該当があった場合に想定外の動作 ・複数マッチするとそれらを結合してしまうため、「1つだけ欲しい」というときには逆に不適切。 ・VLOOKUP は最初にマッチしたものだけ返すので、明確な仕様の違いがある。
✅ 結論・実務上のおすすめ 条件 推奨手法 --------------------------- --------------------------------------- 一致する1件だけ取得したい VLOOKUP, XLOOKUP, INDEX/MATCH 複数一致を連結したい TEXTJOIN(FILTER(...))(Excel 365以降) 古いExcel環境、または式で工夫したい CONCAT(REPT(...)) も選択肢だが慎重に使う
要点: REPT を使った手法は、Excelの配列処理の知識がある人にとっては面白く、有効な使い道もあるが、 一般的・長期的な運用には注意が必要とされることが多いです。 小規模での用途やマクロ代替の工夫としては評価されますが、大規模・業務用途では避けるべきとする意見が主流です。 === 引用終わり =============== (xyz) 2025/06/25(水) 11:11:29
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.