
エクセルで、マクロを使わずに、やってみたいのです。
シフトの勤務表があります。
B4~B18に氏名が入ってます。
Cが、1日で AGが、31日です。
C4~AG4
C18~AG18
ここに、勤務予定が入ってます。
日(日勤) 準(準夜勤) 深(深夜勤) とかです。
ここで、別シートに、
準夜勤の氏名一覧表を、作りたいのです。
1日は
C4 C5 C6
ここに、氏名が出るようにしたいのです。
2日は、
D4 D5 D6 です。
最初に書きましたが、マクロは使えないので、(能力不足)
使わずにできる方法を、教えてください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ご質問の内容を解決するには、以下の手順を行ってください。
sheet2が準夜勤の氏名一覧表となります。
1 sheet1にご説明のシフトの勤務表様式を作成する。
2 sheet2にへ氏名のB列を除いて、全く同じ様式を複写します。
※便宜上、以降の説明の中で、sheet1を(1)、sheet2を(2)とします。
3 (1)のB4~B18を範囲指定しておき、ツールバーの「挿入(I)」を
クリックします。
4 挿入のドロップダウンメニューから「名前」を選択します。
5 名前のドロップダウンメニューから「定義」を選択します。
6 「名前の定義」というダイアログボックスが開きますので、
一番上の入力欄に「B4~B18」に付ける名前を入力し、OKを
クリックします。
※ここでは便宜的に、「氏名」と名付けます。
7 (2)を開きC4セルをクリックし、以下の計算式を入力します。
=IF(Sheet1!C4="準",氏名,"")
8 C4の計算式をクリック&ドラッグで、C4~AG18の範囲に複写します。
以上です。
注1 IF文の論理式が偽の場合ですが、後で表を改良して、セルの
値を調べる必要が出てくる場合もありますので、ZEROや空白
(スペース)でなく、null("")を指定しておく方がBetterと
思います。
注2 IF文中の(1)のシート名ですが、計算式作成後にシート名を
変更した場合、自動で計算式内のシート名も変更されます。
注3 計算式の入力時、(1)シート名の入力はキーボードからタイプ
しなくても、(1)のC4をクリックすれば自動的に挿入されます。
この回答への補足
早々のご教授ありがとうございます。
さっそく、やってみました。
氏名が表示できるようになりました。
勤務者の氏名のピックアップが、やりやすくなりました。
無理を言うようですが、
準夜勤者が、3名と決まっています。
C4~AG18の範囲内に名前が出るのでなく、
C4~E18
この3行に 3名の名が出るようになると、
ピックアップせずに済みます。
このようにバージョンアップすることは、可能でしょうか?
よろしくお願いいたします。
No.3
- 回答日時:
すみませんでした。
今、最初の質問を読み返したら、補足質問の内容が出てました。
最初から、このスペックだったんですね。
内容をよく確認せずに、簡単に回答してしまったようです。
失礼しました。
No.2
- 回答日時:
3名の準夜勤者の氏名を、横に連続した3つのセルに表示したいとの
要望で良いですね?
一般に、Excelのデータベース系関数(Lookup系 Dget etc.)はデータベースの
検査を行い、検査値が見つかった時点で、その検査を停止します。
※データの個数をCountする場合は除く
このため、準夜勤者の氏名を検索し、最初の1名の氏名を見つけた
時点で、検査は終了してしまいます。
以上のことから、Excelのデータベース系関数を用いてご要望の
内容を実現する事は難しいです。
マクロを使用しないという前提で考えると、文字列操作系の関数を
複数+データ仮置用シート等を使用して機能を実現する事になると
思います。
不可能ではありませんが、相当に面倒な作業ですね。
20年位前に、BASICで似たような事をやった覚えが有りますが、
Excelの関数では、私も未経験です。
もう少し時間を頂いて、整理してみたいと思います。
回答の字数制限、800字以内で説明できるか、どうか…
ところで補足質問の内容ですが、ご要望の様式は準夜勤者の氏名を
横に並べるということですね。
この場合1日から31日の日付は縦に並ぶという事ですか?
sheet1やsheet2の様式から変更して、このシートだけ日付と氏名の
縦横が入れ替わると相当面倒になります…
縦に3名並べて横に日付の方が、よろしいかと思いますが。
この回答への補足
丁寧なご説明ありがとうございます。
ご指摘とおり 縦に3名並べます。
エクセルの関数として、最初に見つかった時点で、
検索をやめるという性質もよくわかりました。
800字以内で、ご説明できないことに関して、
私も初心者ですので、あまり難しことは、できませんので、
一度に書きだすのでなく、最初にピックアップしたシートを、
縦3行に書き出すようにやってみたいと思います。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
複雑なシフト表から1日ごとの出勤者、シフトを抜き出したいです
Excel(エクセル)
-
エクセルで勤務表の出勤者を抜き出したい。 日付 名前 5/16 5/17 5/18 5/19 田中
Excel(エクセル)
-
月間勤務表から1日~31日までの各日付ごとに出勤している職員を書き出す方法
Excel(エクセル)
-
-
4
エクセルで、勤務表から 日付別に勤務者と勤務形態を抽出して、別シートに抽出したい
Word(ワード)
-
5
月のシフト表から当日のシフトを抽出したいです
Excel(エクセル)
-
6
シフト管理、月間のシフト表を別シートで日ごとの時間別で出勤者の名前を表示したい
Excel(エクセル)
-
7
エクセルで、勤務表から 日付別に勤務者と勤務形態を抽出して、別シートに抽出したい
Excel(エクセル)
-
8
関数を使用して、エクセルの勤務表から、勤務形態別に担当者を抽出したい
Excel(エクセル)
-
9
勤務シフト表から、当日の出番を抽出するには?
Excel(エクセル)
-
10
作業別のシフト表から職員別のシフト表へ反映させたい
Excel(エクセル)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで、指定したシートに...
-
エクセルで入力シートから別シ...
-
IF, ISNUMBER, INDIRECTの組み...
-
データを時系列で表示させたい
-
Excel 複数のシートからグラフ...
-
Excelの選択肢をポップアップリ...
-
【Excel】VLOOKUP関数で複数の...
-
excelでデータの集計
-
エクセルのワークシートが重く...
-
Excelマクロで毎月のデータ一覧...
-
EXCELでシートごとの合計を一つ...
-
Excel ハイパーリンク先のセル...
-
EXCEL-VBAで、別ファイルのシー...
-
エクセル:複数シートのデータ...
-
VBA セルの値と同じ名前のシー...
-
エクセルVBAで 指定のデーター...
-
EXCELで困ってます。今日中には...
-
エクセルにて別シートの値を参...
-
質問:特定文字列から空白行ま...
-
指定した日付の範囲内でデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA セルの値と同じ名前のシー...
-
エクセルのワークシートが重く...
-
Excelの中央値の複数条件について
-
Excel ハイパーリンク先のセル...
-
ExcelVBAで、指定したシートに...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルで入力シートから別シ...
-
エクセルについて質問です 日付...
-
エクセルVBA:表の内容を担当者...
-
指定した日付の範囲内でデータ...
-
VBAのoffsetの動き方について教...
-
EXCEL VBA 一致しないデータの...
-
エクセルで入力→日付を自動判別...
-
エクセル マクロを使って日々...
-
VBAを利用しオートフィルタで日...
-
エクセル 毎日更新する表のデ...
-
【Excel】VLOOKUP関数で複数の...
-
エクセル:複数シートのデータ...
-
Excel 複数のシートからグラフ...
-
質問:特定文字列から空白行ま...
おすすめ情報