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

1か月のシフト予定表から該当日のみを別シートに抽出したいのですがなかなかうまくいきません。エクセル関数に詳しい方いい方法教えてください。


元のシートは横に日付が並んでおり、縦は氏名が並んでいます。
予定シフトがあらかじめ組んであるのですが(班により決まっている)個別に希望休みをだしてもらい
他の出れる日と調整するために作成します。


              11/1                        11/2         11/3  ・・・・
氏名   /予定シフト/希望休み/勤務可能日か(の繰り返し)    勤務可能      勤務可能

秋山    A       ◇                            ○         ○
稲毛    A       □        
大森    休              ○
加藤    休              △   
久米    休
小山    休              
咲山    B       □                                       ○           

(※マークは有休か無休か、勤務確実にできるか場合によりできるか等の種別です)


<別シート>

11/1  ←日付を入力すると上記のマークが入っている氏名のデータのみをまとめて一覧表示

氏名 /予定シフト/ 種別/ 勤務可能日/

秋山   A       ◇     11/2        11/3
稲毛   A       □
咲山   B       □     11/3 
大森   休       ○
加藤   休       △     


休み希望でいつなら振替で勤務できるのかを表示させたいのです。
日付を入力して氏名、予定シフト、休暇種別の表示まではできるのかもしれませんが勤務可能日
のデータを表示することはできるのか、複雑で困っています。(>_<)
よろしくお願いします。





           

このQ&Aに関連する最新のQ&A

A 回答 (1件)

実際にセルに入力されている値が不明だけでなく、レイアウトが崩れているのでご希望の処理がわかりません。


また「予定シフト/希望休み/勤務可能日か(の繰り返し)」や記号の意味も全く理解できません。

本来は私が例示した添付画像のように、上のデータを下の表のように表示したいなどと例示したほうが良いのですが、追加で画像はアップできないので、実際に入力されているデータをそのまま(名前などの部分は変更して)コピー貼り付けして提示されたほうが回答者の皆さんが質問内容を把握しやすいと思います。

あるいは、この質問はいったん解決処理して、質問内容を整理して再質問されたほうがよいかもしれませんね。
「エクセル 該当日付のデータの抽出方法」の回答画像1
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

例えばこんなデータなのですが、

2002/07/01 99 25 36
2002/07/05 55 33 25
2002/08/01 80 20 51

日付の入っている列を検索して、2002/07/01から2002/07/31
の範囲ならば、その行のデータを別のシートに抽出したいのですが、
日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら
between 9999/99/99 and 9999/99/99って感じで簡単にできるの
ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って
>=2002/07/01
<=2002/07/31
と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して
くれると考えたのですが、なぜかダメでした。
(↓こういう入力をしました)
=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

Aベストアンサー

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

------------余談--------------------------
ご質問の条件例の場合特例で 2002/7でればOKなので

=IF(TEXT(Sheet2!A1,"yyyym")="20027",Sheet2!A1,"該当月ありません")

でも可能ですね!

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

--...続きを読む

Qエクセルで、勤務表から 日付別に勤務者と勤務形態を抽出して、別シートに抽出したい

Sheet 1 勤務表(4月)
    A     B     C      D…
        4/1      4/2    4/3 …

1 赤星     早1    夜勤入り  夜勤明け …
2 関本    遅1    早1    早1   …
3 新井    休     遅1    早2   …
4 金本    夜勤入り  夜勤明け  休    …
5 ブラぜル  夜勤明け 休     遅1   …
6 桜井    休     早2    遅2   …
7 鳥谷    早2    遅2    早3   …
8 狩野    遅2    早3    休    …
9 藤川    早3    休     夜勤入り …

以上のような、勤務表、(各列には、日付、各行には、従業員の名前が9人)が、あり、毎日、早番 3種類、遅番 2種類、夜勤入り 1人、夜勤明け 2人、休み、のデータが入っています。(ずれていたら、すいません)
これを、Sheet 2以降に、日付ごとに、出勤している従業員名と、そのとなりのセルに、その従業員の勤務種別を抽出して、表示したいのです。しかも、夜勤入り、夜勤明け、休みは表示させたくありません。)例えば、こんな感じです。

Sheet 2   Sheet 3    Sheet 4
(4月1日)    (4月2日)    (4月3日)
赤星 早1     関本 早1  関本  早1
関本 遅1     新井 遅1  新井  早2
鳥谷 早2     桜井 早2   ブラぜル 遅1
狩野 遅2     鳥谷 遅2   桜井  遅2
藤川 早3     狩野 早3    鳥谷  早3 

いろいろとムシのいい話を書いて申し訳ありませんが、当方vbaの初心者で、このような場合、何から手を付けて良いのか分からず、困っております。どうか、なにとぞ、ご教授下さい。

Sheet 1 勤務表(4月)
    A     B     C      D…
        4/1      4/2    4/3 …

1 赤星     早1    夜勤入り  夜勤明け …
2 関本    遅1    早1    早1   …
3 新井    休     遅1    早2   …
4 金本    夜勤入り  夜勤明け  休    …
5 ブラぜル  夜勤明け 休     遅1   …
6 桜井    休     早2    遅2   …
7 鳥谷...続きを読む

Aベストアンサー

回答No3です。
ごめんなさい。肝心の式の表示が抜けておりました。
A15セルには次の式を入力し、下方にオートフィルドラッグします。
=ROW(A3)
B15セルには次の式を入力し右方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。
=IF((IF(B3="早1",1,0)+IF(B3="早2",1,0)+IF(B3="早3",1,0)+IF(B3="遅1",1,0)+IF(B3="遅2",1,0))=0,"",MAX(B$14:B14)+1)

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

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

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

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

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

Aベストアンサー

日付をクリックした場合に実行する場合は以下のようなマクロを使用します。
使用した表と実行結果は画像の通りです。
このプログラムの場合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

日付をクリックした場合に実行する場合は以下のようなマクロを使用します。
使用した表と実行結果は画像の通りです。
このプログラムの場合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.Col...続きを読む

Qエクセル シフト勤務表から、シフト別に氏名を抽出。

エクセルで、マクロを使わずに、やってみたいのです。
シフトの勤務表があります。
B4~B18に氏名が入ってます。
Cが、1日で AGが、31日です。
C4~AG4
C18~AG18
ここに、勤務予定が入ってます。
日(日勤) 準(準夜勤) 深(深夜勤) とかです。

ここで、別シートに、
準夜勤の氏名一覧表を、作りたいのです。
1日は
C4 C5 C6
ここに、氏名が出るようにしたいのです。

2日は、
D4 D5 D6 です。

最初に書きましたが、マクロは使えないので、(能力不足)
使わずにできる方法を、教えてください。
よろしくお願いします。

Aベストアンサー

ご質問の内容を解決するには、以下の手順を行ってください。
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をクリックすれば自動的に挿入されます。 

ご質問の内容を解決するには、以下の手順を行ってください。
sheet2が準夜勤の氏名一覧表となります。
1 sheet1にご説明のシフトの勤務表様式を作成する。
2 sheet2にへ氏名のB列を除いて、全く同じ様式を複写します。
※便宜上、以降の説明の中で、sheet1を(1)、sheet2を(2)とします。
3 (1)のB4~B18を範囲指定しておき、ツールバーの「挿入(I)」を
 クリックします。
4 挿入のドロップダウンメニューから「名前」を選択します。
5 名前のドロップダウンメニューから「定義」を選択します。
6 ...続きを読む

Qエクセルで複数の条件を抽出し自動的に別シートに反映する方法を教えてください。

こんばんは。教えてください。

元データ(sheet1)を更新するたび
2つの条件にあったデータを
別シートに自動的に抽出したいので
適した関数がありましたら教えてください。



◇シート1◇ ※元データ
 A      B     C     D     F
1 氏名 役職 部署 年齢 移動時期     
2 山田 社員 開発 45  未調整
3 田中 社員 人事 42  4/1~
4 鈴木 派遣 企画 30  
5 高橋 役員 人事 50  未調整
6 坂野 社員 企画 33  未調整  
7 井上 派遣 企画 29  未調整

◇シート2◇ ※部署が人事で移動時期が未調整の人のみ抽出
 A      B     C     D    F
1 氏名 役職 部署 年齢 移動時期 
2 高橋 役員 人事 50  未調整


補足
・元データ(シート1)はこれからもデータを追加するので
 その度、シート2、シート3もそれぞれ自動で反映されるようにした いです。

・マクロ、VBAは知識がないので
 関数で作成したいです。

・できるだけエラー(#N/Aなど)表示されないようにしたいです。

説明が不十分で伝わりにくいかと思いますが
よろしくお願いします。

こんばんは。教えてください。

元データ(sheet1)を更新するたび
2つの条件にあったデータを
別シートに自動的に抽出したいので
適した関数がありましたら教えてください。



◇シート1◇ ※元データ
 A      B     C     D     F
1 氏名 役職 部署 年齢 移動時期     
2 山田 社員 開発 45  未調整
3 田中 社員 人事 42  4/1~
4 鈴木 派遣 企画 30  
5 高橋 役員 人事 50  未調整
6 坂野 社員 企画 33  未調整  
7 ...続きを読む

Aベストアンサー

> 部署を"人事"と"企画"の両方で抽出する条件を追加する

おはようございます、merlionXXです。
Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。
一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。)

Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行
With Sheets("Sheet1") 'Sheet1対して
.AutoFilterMode = False 'オートフィルタ終了(あればエラーになるため)
.Range("A1:E1").AutoFilter 'A1:E1にオートフィルタ設定
.Range("A1:E1").AutoFilter Field:=3, Criteria1:="=人事", Operator:=xlOr, Criteria2:="=企画" '左から3つ目のフィルタを"人事"と"企画"のOR条件で抽出
.Range("A1:E1").AutoFilter Field:=5, Criteria1:="未調整" '左から5つ目のフィルタを"未調整"で抽出
.Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") 'A1から最終セル範囲の可視セルをこのシートのA1以降に貼り付け
.AutoFilterMode = False 'オートフィルタ終了
End With 'Sheet1に対する記述おわり
End Sub

> 部署を"人事"と"企画"の両方で抽出する条件を追加する

おはようございます、merlionXXです。
Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。
一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。)

Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行
With Sheets("Sheet1") 'Sheet1対して
.AutoFilterMode = False 'オートフィルタ終了(あればエラーになるた...続きを読む

QExcelで日別に入力されたデータを月別に集計するにはどうしたらいいのでしょうか。

Excelで月別の集計をしたいのですが
例えば
  日付    数量
10月25日  200
10月27日  150
10月30日  120
11月 1日  200
11月 3日  150
のように、日付が飛び飛びで連続していなくい日々の数量を、上の行から順番に入力していった場合に(月が替わる行が決まっていない)月別の集計を取る方法はないでしょうか。


 

Aベストアンサー

どのように集計する月を指定するのかが書かれていませんが、例えば11月分の合計を出したいなら

1)11月までの合計から10月までの合計を引く方法
 =SUMIF(A:A,"<=11/30",B:B)-SUMIF(A:A,"<=10/31",B:B)

2)月が「11」のB列を合計する方法
 =SUMPRODUCT((MONTH(A2:A100)=11)*(B2:B100))

なども考えられます。

でもエクセルなら一番オーソドックスな方法はピボットテーブルでしょう。C列に
 =TEXT(A1,"YYYY/MM")
で「2008/11」のような文字列を生成しておいてピボットテーブルで集計すれば、シート上にある全ての月の合計が一発で求められます。
ピボットテーブルの使い方はGoogleなどで検索したらたくさん見つかります
http://www.viplt.ne.jp/tomy/pibot.html

Qエクセル空白以外の文字を抽出

よくある質問なのですが過去の質問をみてもどうも解決できません。
A列の10行から20行まで『名称』として数種類の文字があるとします。その間には空白もあります。
これを100行からある集計表には空白なしで表示したいのです。

A10  あ
A11  い
A12  
A13  う
A14  
A15  え
A16
A17
A18  
A19
A20  お



A100  あ
A101  い
A102  う
A103  え
A104  お

という感じなのですがどうすればできますか。
マクロはできなので関数でお願いします。

Aベストアンサー

A1とすべきところをA!のようにしてしまいました。下記が正解です。

=IF(ROW(A1)>MAX(B$9:B$99),"",INDEX(A$10:A$99,MATCH(ROW(A1),B$10:B$99,0)))


人気Q&Aランキング