アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで出勤表から出勤者の名前を出したいのですが。

介護施設に勤務しています。A~E(職員名とする)までの5人が勤務しているとします。今ここに、縦がA~E、横が月日のエクセルの表(表1とする)があるとします。
仮に6月1日はA,B,Cの3人が出勤で表の該当セルに○が入力されています。6月2日はB,D,Eが出勤で同様に○が入力されています。こんな感じで月末までの勤務表が出来ているとします。

ここで別のシートに「今日の出勤者」として当日の出勤者を表(表2)に出したいと思っています。
私が望んでいるのは、表1の希望の月日をクリック、もしくは入力すると、自動で表2のセルにその日の出勤者だけの名前が返せればいいのですが・・・。
本日の出勤者として本部に名前入りの表をあげないといけなく、これまでは表1から該当日の○を数えては、その職員名を手書きで書いて送っていました。この煩雑な作業を効率化したいと思っています。
よろしくご教授お願いいたします。

A 回答 (4件)

日付をクリックした場合に実行する場合は以下のようなマクロを使用します。


使用した表と実行結果は画像の通りです。
このプログラムの場合1行目をクリックした場合に実行されます。
もしマクロで行うのであれば試してみてください。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
Dim iRowNo As Integer
iRowNo = 1
If Target.Row = 1 And Target.Column <> 1 Then
Worksheets("Sheet2").Columns(2).Clear
For i = 2 To 6
If Cells(i, Target.Column).Value = "○" Then
Worksheets("Sheet2").Cells(iRowNo, 2).Value = Cells(i, 1).Value
iRowNo = iRowNo + 1
End If
Next
End If
End Sub
「エクセルで出勤表から出勤者の名前を出した」の回答画像4
    • good
    • 1
この回答へのお礼

大変詳しい方法ありがとうございます。私にとっては大変難解なものですが、
すばらしいですね、エクセルって奥が深いです。
もっと勉強いたします。

お礼日時:2010/06/10 09:35

こんばんは!


色々方法はあるかと思いますが・・・
一例です。
↓の画像で説明させていただきます。
Sheet1のデータの中で、Sheet2のA1セルに日付を入力すると
その日の出勤者を表示するようにしてみました。
日付はシリアル値で入っているものとします。

Sheet2のD2セルに
=IF($A$1="","",IF(COUNTA(OFFSET(Sheet1!$A$5:$A$9,,MATCH($A$1,Sheet1!$B$4:$AF$4,0),,1))<ROW(A1),"",INDEX(Sheet1!$A$5:$A$9,SMALL(IF(OFFSET(Sheet1!$A$5:$A$9,,MATCH($A$1,Sheet1!$B$4:$AF$4,0),,1)="○",ROW($A$1:$A$5)),ROW(A1)))))

これは配列数式になってしまいますので、
この画面から直接コピー&ペーストしただけではエラーになると思います。
D2セルに貼り付け後、F2キーを押す、またはD2セルをダブルクリック、または数式バー内で一度クリックします。
編集可能になりますので
Shift+Ctrlキーを押しながらEnterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。
このD2セルを下へオートフィルでコピーすると画像のような感じになります。

この程度しか思いつかなかったのですが
他に簡単で良い方法があれば読み流してくださいね。m(__)m
「エクセルで出勤表から出勤者の名前を出した」の回答画像3
    • good
    • 7
この回答へのお礼

大変詳しい方法ありがとうございます。さっそく使わせていただきました。

お礼日時:2010/06/10 09:33

手書きで送っていたということは、マクロで組んだとしても、それを印刷するわけですよね。



であれば、オートフィルタでその月日の列から○だけを抽出すると、結果的に、その月日に出勤する人の名前だけが抽出される形になるので、それをコピペするなり、その範囲だけをそのまま印刷するなりすれば良いと思います。

それだけで、用は足りますよね。
    • good
    • 0
この回答へのお礼

お答えいただき、ありがとうございました。
感謝いたします。

お礼日時:2010/06/10 09:45

マクロを使えば出来ないことはありませんが、実際に使用している場面を想像すると、無駄なように思えます。



エクセルのフィルタ機能を使って丸印のみ表示するようにすれば良いと思いますがいかがでしょうか。

何のために、本日の出勤者として本部に名前入りの表をあげるのか疑問です。

一度本部に実際の目的を聞いて見ることをお奨めします。

実は本部でそれをまた手書きで集計しているとか。
    • good
    • 3
この回答へのお礼

ご回答 ありがとうございました。
感謝いたします。

お礼日時:2010/06/10 09:46

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

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


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