• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで勤務期間表の作成について)

エクセルで勤務期間表の作成について

このQ&Aのポイント
  • 会社の事務でエクセルで勤務期間表を作成していますが、VBA初心者で効率の良い入力方法を知りたい。
  • 発令年月日と退職年月日を入力すると、在職期間中の特定の数値を入力するようにしたい。
  • 質問画像を添付しており、具体的な方法を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

何だかよく分かりませんが、シート上部の 4 行の行列を入れ替えて、シート下部に転載しようとしているのですか?そして、どういう規則で定まっている値なのか分かりませんが「特定の数値」というのを、該当期間内の日付の行に記入する? 何だかよく分かりませんが、次式では、「15 ×列番号 1、2、…」という値を、「特定の数値」だということにしてみました。違うようであれば、そちらでテキトーに修正してください。 B8 =15*B$7*((count(offset($B$2:$D$2,B$7-1,0))=2)*($A8=median($A8,offset($B$2:$D$2,B$7-1,0)))+(count(offset($E$2:$G$2,B$7-1,0))=2)*($A8=median($A8,offset($E$2:$G$2,B$7-1,0)))+(count(offset($H$2:$J$2,B$7-1,0))=2)*($A8=median($A8,offset($H$2:$J$2,B$7-1,0)))+(count(offset($K$2:$M$2,B$7-1,0))=2)*($A8=median($A8,offset($K$2:$M$2,B$7-1,0)))) B8 セルをコピーし B8:E31 のセル範囲に貼り付け。ゼロが算出されるセルがありますが、セルの書式により非表示にするなど。 今後、「そもそもこういう複雑な表は作らない」ということから覚えていっていただきたいと思いますが、とりあえず何だかよく分からないので、今回は上式を載せておくだけにします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>やりたいことは、発令年月日と退職年月日に入力するとA8から始まる2000/4/1から2013/3/39の中から在職期間中のみ特定の数値を入力するようにしたい との事ですが、説明不足が酷過ぎて、必要な情報が不足しているため、このままでは質問者様が欲しておられる方法を回答する事が出来る人間は現れないと思われます。  まず、御質問文や添付された画像の中には、「発令年月日」の日付を入力する欄が存在しておりません。  「発令年月日」なる日付のデータは、一体どこに入力されているのでしょうか?  それに、「特定の数値を入力するようにしたい」と言われましても、その「特定の数値」とは一体どの様な数値の事なのかという事に関する説明が一切無いのでは、どの様な数値を入力すれば良いのか、他人である回答者には判る筈も御座いません。  「特定の数値」とは、一体どの様な決まりで求められた数値の事なのでしょうか?  ついでに言わせて頂きますと、回答No.1様の御回答に対する質問者様のお礼文の中に、 >やってみたのですが、自分の意図したのとはちょっと違っていました。 とありましたが、どの部分がどの様に「違っていた」のかという事を御説明頂けなければ、「何が違うのか」という事を判断する事が出来ませんので、回答者にはどうすれば良いのか判る筈も御座いません。  ですから、「回答No.1様の方法を試してみられた結果はどの様なものであったのかという事と、それに対して質問者様がやりたかった事はどの様な事であったので、何処がどの様に違っていたのか」という事を御説明頂く様御願い致します。

thincl
質問者

お礼

回答ありがとうございます。 文章で説明するのが下手で申し訳ありません。 もう一度説明しますと まず、A8(2000/4/1)からA372(2001/3/31)にかけて日付表を作っておきます。 次に、B2に採用年月日(2000/4/1)、D2に退職年月日(2000/4/9)を入力すると 日付表の在職期間中全てに15を入力させる。 休職の場合も考えて、採用年月日1・退職年月日1~採用年月日3・退職年月日3まで 作ろうと思っています。 No.1さんの回答をやってみたのですが、採用年月日にしか入力されませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>やりたいことは、発令年月日と退職年月日に入力するとA8から始まる2000/4/1から2013/3/39の中から在職期間中のみ特定の数値を入力するようにしたいのですが、いろいろ調べてはみたものの、分からなく質問しました。 やりたいことが分かりません。 「2013/3/39」はタイプミスでしょうが「2013/3/31」ですか? ご提示のシート(添付画像)は解像度が悪く読めません。 また、A9からの日付は分かりますが、B8からE8までの1から4が何の意味か分かりません。 B9からB17とB25以降の値が15で、C18からC24までの値が30であることの説明もありませんので処理の論理が読み取れません。 上司や先輩なら何をしたいかを理解できると思いますので身近な方々と相談されると良いでしょう。 社内で対応できない場合は出入りのソフト関連の業者に有償で依頼するのが筋です。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

エラー処理など全く入れていませんが、簡単に。 1. 採用年月日・退職年月日の日付のセルを選択してから実行します。 2. A列に日付が見つかったら、入力欄が出てくるので数字を入れてOKを押すと、B列に表示されます。 3. あとはコピペして下さい。 コレ以上は勘弁してくださいw Sub sample() Dim a As Date, b As Range, c As String a = ActiveCell.Value Set b = ActiveSheet.Range("A:A").Find(a) If Not b Is Nothing Then c = Application.InputBox("数値を入力して下さい。") If Not c = "False" And Not c = "" Then b.Offset(0, 1).Value = c End If End If End Sub VBAだと表をちょっと変えるだけで動かなくなります。 つまり、表をきちんと整備した上で作らないといけません。 VBAを組む段階だと、採用年月日・退職年月日だけを入力するシート、日付の羅列されているシートの最低2つ、見やすさを考えるなら両方を表示できる出力シートの計3つを作ります。 今回の場合ですと、何をされたいのかよく見えませんが、関数を使ったほうが柔軟な気がします。 if,vlookup,match,offsetあたりでできそうな気がします。

thincl
質問者

お礼

回答ありがとうございます。 やってみたのですが、自分の意図したのとはちょっと違っていました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで勤務表を作成しています(再)。

    (前回までの投稿において質問の意図が分かりづらかったため、質問文と添付図を一部修正の上、再投稿させて頂いております) Excelで勤務表を作成しています。添付図のように、設定シートには社員表と勤務区分の表を作成しており、勤務表シートには社員名と日付毎の勤務区分を入力できる様式です。 今回の目的は、1日毎の女性用勤務(F勤務)における特定の区分(A、A研、B、B研、C、C研)をカウントしたいというものです。 例では7人程度のものですが、実際は数十人規模になるため、カウントセルが必要になりました。 例えば、F勤務が適用されているのは小野寺、高橋、山田、小林で、1日においてA、A研、B、B研、C、C研が入力されているのは小野寺、山田、小林の3人なのでE9セルには3とカウントされるようにしたいです (2以下OKという表記は無視してください)。 つきましては、E9~G9セルにはどのような関数を組み合わせればこの仕組みができますでしょうか?なお、勤務表は印刷して配布する都合上、この体裁を崩さないでやりたいです。ただ、どうしても必要な部分があればご指摘下さい。 以前に教えて頂いたSUMPRODUCTや、COUNTIF等の組み合わせを考えてみたのですが発想が出てこずに困っております。お分かりの方ご教授下さい。よろしくお願い致します。

  • Excelで勤務表を作成しています。

    Excelで勤務表を作成しています。 1行おきにある文字をカウントしたいのです。 色々検索したり本を読んで、空白セルのカウント方法はわかりましたが、 数値ではなく、特定の文字をカウントする方法が見つかりません。   A   B 1 あ 2  3 か 4 あ 5 え 6 7 あ 略式の表ですが、たとえばこの奇数行にある”あ”だけをカウントしたいのです。 お判りの方がおられましたら、どうぞ宜しくお願い致します m(__)m

  • Excelで勤務表を作っていますが・・・

    Excelで添付のような勤務表を作っています。 1.勤務表は15日締め 2.年:$B$2に書式形式「#"年"」にして「2017」と入力 3.月:$A$4に「11」、$A$20に「12」と入力 4.日:B4~B18に「16~30」、B20~B34に「1~15」と入力 5.曜日:=IF($B4<>"",TEXT(DATE($B$2,$A$10,$B4),"aaa"),"")を   C4に入力し、C34までコピペ 日の入力を手入力で行なっているため2/28、4/30、6/30、9/30、11/30以降の 日を削除してやらないと正しい勤務表が出来ません。 日の入力を手入力ではなく自動的にできる方法をご存知の方、 是非お教え願います。

  • Excelで勤務表を作成しています。

    Excelで勤務表を作成しています。本来は別シートで作っているものですが、添付図では便宜的に、左側には男性用女性用の勤務区分テーブルを、右側に勤務表を作成しています。 今回の主たる目的は、1日毎の女性用勤務(F勤務)における特定の区分(太字にしているA~C研まで)が指定された数(図では2としています)以下であるかの判定をしたいのです。 Fの付いている社員は必然的にF勤務のテーブルから選べるように、それ以外の社員はM勤務から選べる設定にしています。 例では7人程度のものですが、実際は数十人規模になるため、判定セルが必要になりました。 つきましては、E9~G9セルにはどのような関数を当てはめればこの仕組みができますでしょうか? 以前に教えて頂いたSUMPRODUCTや、COUNTIF等でできるんだと思いますが、発想が出てこずに困っております。ご教授下さい。よろしくお願い致します。

  • Excelで勤務管理と座席表作成をしたい。

    仕事で勤務管理と座席表作成を行っています。 勤務はシフト勤務で勤務に応じた座席表も作っています。 現在座席表はほぼ手入力でやっており非常に手間がかかっています。 1か月分まとめて作っていますが非常に面倒なので勤務表を貼り付けると座席表ができるようにしたいのですがなかなか制限があり苦慮しています。 よい方法があればご教示願います。 シフト表 1列目に日付(1日~末日) A列に名前があり、A~Gの勤務シフトがある。(全部で20人) 座席表 全部で10席。固定の席はなく出勤者に応じて決めています。 シフト表に応じて座席表に人を埋めたい。 使用ソフト:Excel2003(ただしセキュリティー制限でマクロ、VBAが使えません。もちろん制限解除はできません。) なので関数を駆使しないといけないです。 シートは別になってもOKです。 仮にSheet2のA1~A10に名前が埋まるようにしたいです。

  • 勤務表の作成で困ってます・・。

    早速ですがエクセルで知恵をお貸しください。 添付画像でお見せしているように勤務表で勤怠を入力した際に 別の形式の勤務表へ自動的に反映を行えないか模索しております。 関数や並び替えなど色々と試行錯誤しましたが、、 どうしても上手く行かずご質問させて頂きました。 分かりづらくて申し訳ありませんが御回答のほど宜しくお願い致します。

  • エクセルの勤務表で勤務者がいないセルに色をつけたい

    エクセルの勤務表で勤務者がいないセルに色をつけたい 勤務表で各勤務地に人員を配置するのですが、配置する人員が手当てできないことがあります。 配置できていないセルを一目でわかるように、セルに色をつけたいのですが、できるでしょうか。 表はA1に勤務地、B1に日勤者名、C1に夜勤者名、A2とA3は結合して勤務地の渋谷、A4とA5は結合して勤務地の上野と以下続きます。 B2に勤務者名、C2に勤務者名と以下続きます。 添付の表の赤枠のところが勤務者を手配できないセルです。 勤務者を手配できていないセルに色をつけたいのですが。 また、できればでいいのですが、空白のセルに勤務者を入力したらセルの色が無にする。 それからセルの色を残すの両方教えていただきたいのですが。 よろしくお願いします。

  • エクセルで勤務表の作成

    いつもお世話になっております。 今回は、エクセルの勤務表の作り方について質問させて頂きました。 写真にも添付しているのですが、ベースはこのような形でしていきたいと考えています。 そこで、出勤と退社の時刻を社員自身に入力して貰う事になりました。 入力方法は (1)社員のIDを入力すると自分の欄に飛ぶ (2)その日の出勤と退社の時刻しか更新出来ない (3)その日までの1週間のデータを常に表示 を考えています。 しかし、この3つの設定の仕方が分かりません。 どれかでも方法を知っている方、是非ご教授お願いします。 ちなみにエクセルは2007を使用しています。 どうぞ宜しくお願いします。

  • Excelでの期間計算の方法について

    お世話になります。 今、職員の退職金の計算表を作成中です。 その中で、各職員の定年60歳における退職金の額を求めたくて思考錯誤しておりますので、次の内容について教えてください。    A      B      C      D 1 生年月日 60歳の年月日 採用年月日 勤続期間(年月日)  2 S30.6.4   ????     S50.6.1  ???? 上記、B2のセルには、60歳の誕生日を、D2のセルには、C2とB2の差額である勤続期間(年/月/日)を導く関数(数式)を教えてください。よろしくお願いします。

  • エクセルでの表(関数)について

    いつもお世話になっております。 また、お力添えをお願いします。 例えですが下記添付画像のような表を作りたいと思っています。 A表には、果物の種類(りんご、みかん、スイカ、ぶどう)、個数、購入年月日を入力します。 A表で入力したデータをB表に表示させるにはどうしたらいいのでしょうか。 よろしくお願いします。

専門家に質問してみよう