質問: エクセル シフト勤務表から、シフト別に氏名を抽出。 エクセルで、マクロを使わずに、やってみたいのです。 シフトの勤務表があります。 b4~b18に氏名が入ってます。 cが、1日で agが、31日です。 c4~ag4 c18~ag18 ここに、勤務予定が入ってます。 日(日勤) 準(準夜勤) 深(深夜勤) とかです。 ここで、別シートに、 準夜勤の氏名一覧表を、作りたいのです。 1日は c4 c5 c6 ここに、氏名が出るようにしたいのです。 2日は、 d4 d5 d6 です。 最初に書きましたが、マクロは使えないので、(能力不足) 使わずにできる方法を、教えてください。 よろしくお願いします。
回答: 3名の準夜勤者の氏名を、横に連続した3つのセルに表示したいとの 要望で良いですね? 一般に、excelのデータベース系関数(lookup系 dget etc.)はデータベースの 検査を行い、検査値が見つかった時点で、その検査を停止します。 ※データの個数をcountする場合は除く このため、準夜勤者の氏名を検索し、最初の1名の氏名を見つけた 時点で、検査は終了してしまいます。 以上のことから、excelのデータベース系関数を用いてご要望の 内容を実現する事は難しいです。 マクロを使用しないという前提で考えると、文字列操作系の関数を 複数+データ仮置用シート等を使用して機能を実現する事になると 思います。 不可能ではありませんが、相当に面倒な作業ですね。 20年位前に、basicで似たような事をやった覚えが有りますが、 excelの関数では、私も未経験です。 もう少し時間を頂いて、整理してみたいと思います。 回答の字数制限、800字以内で説明できるか、どうか... ところで補足質問の内容ですが、ご要望の様式は準夜勤者の氏名を 横に並べるということですね。 この場合1日から31日の日付は縦に並ぶという事ですか? sheet1やsheet2の様式から変更して、このシートだけ日付と氏名の 縦横が入れ替わると相当面倒になります... 縦に3名並べて横に日付の方が、よろしいかと思いますが。