プロが教えるわが家の防犯対策術!

エクセルのセルでシフト表を作っているのですが、それを別のシートに反映させたいのですが、どのようにすればよろしいのでしょうか?
A2〜A20まで人の名前が入っています。
B1から横に日付が入っています。
その日の担当で朝、昼、空白の人がいます。
休みの人は○、◎と有給と入っています。

シフト表だと一ヶ月分の表記なので見にくい為、貼り出し用に1日分だけを抽出したいのです。(1日分の朝担当の人の名前。空白の人の名前。休みの人の名前)

パソコンあまり詳しくないのですが、詳しい方回答お願いします。

A 回答 (5件)

添付図参照


I1セルに日付
J2セルに
=IF(COUNTIF(INDEX($B$2:$G$20,,MATCH($I$1,$B$1:$G$1,0)),J$1&"")<ROW(A1),"",
INDEX($A$2:$A$20,SMALL(IF(INDEX($B$2:$G$20,,MATCH($I$1,$B$1:$G$1,0))=J$1,ROW($A$2:$A$20)-1),ROW(A1))))
[Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
右へ下へオートフィル
I:O列を切り取って貼り付け
適宜、範囲を変更してください
改行まではエラー処理なのでXL2007以降ならIFERROR関数使ってください
参考まで
「エクセルのセルでシフト表を作っているので」の回答画像5
    • good
    • 0
この回答へのお礼

無事に反映されるようになりました。本当にありがとうございます。

お礼日時:2016/06/03 12:21

こんばんは!



一例です。
↓の画像のように元データはSheet1にあり、Sheet2のA1セルに日付を入力すると表示されるようにします。

画像ではSheet2のB4セルに
=IFERROR(INDEX(Sheet1!$A$1:$A$20,SMALL(IF(OFFSET(Sheet1!$A$1:$A$20,,MATCH($A$1,Sheet1!$1:$1,0)-1)=$A4,ROW($A$1:$A$20)),COLUMN(A1))),"")
配列数式ですので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → B4セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
最後にB4セルのフィルハンドルで列・行方向にコピーすると
画像のような感じになります。

※ Sheet2のA列「シフト」欄は表示したいデータを追加入力してみてください。m(_ _)m
「エクセルのセルでシフト表を作っているので」の回答画像4
    • good
    • 0

今回の場合日付と氏名が一致する値を反映させるということになるのでやろうとすると少し手が込んでしまうのかなと思います。


単純にシフト表とは別に1日分印刷用のシートを作っておき、毎日印刷用シートに1日分データ(列)を貼り付けて印刷するというのが最も簡単な気がします。
ちなみにパソコンがお詳しくないとのことなので念のため書いておきますが貼り付ける際は[形式を選択して貼り付け]---[値]を選んで貼り付けると罫線や書式などが貼り付け先の状態が保持されラクちんです。

多少難しくてもシステマチックにしたいと思われているようでしたら補足ください。
「エクセルのセルでシフト表を作っているので」の回答画像3
    • good
    • 0

簡単にするのならば、不要な列の幅を表示しないにしてしまうのはいかがですか?

    • good
    • 0
この回答へのお礼

早々のアドバイスありがとうございます。
別な表に大きく表示させたいのです。

お礼日時:2016/05/24 14:48

エクセル関数で可能かと思います。


が、おそらく関数もあまり詳しくはないんですよね?
となると、「数式教えて」となると思いますが、ちょっと情報が少ないですね。

シフトってことはバイトの子を雇ってるんですよね。そのバイトの子に、エクセル得意な子いません?
いたら、すぐ解決するんじゃないかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング