• ベストアンサー

エクセルで悩んでいます

Sheet1のA1に西暦(2008)B1に月(9月) B3~AF3まで日付(固定)その下の行に曜日表示(月を変えると自動で変わります)A5~A22まで個人名(固定)が入っています、そして B5~B22迄(出勤・欠勤)などその日の出勤状況が入ります(手入力) CDE~同じようにその日の出勤状況が入ります この(出勤・欠勤)等の状況を他のシートに移したいです。 Sheet3に通常のカレンダー(壁に掛かってるような)のような表示があります A33(日曜日)B33が空白セルでC33が(月曜日)D33が空白セルの様に空白を挟み土曜日まで続いています、そして34行目~38行目までは曜日の下に日付けが表示されています。シート1の(月)を変更すると日付けが自動で変わります(曜日は固定) その日にちの脇にある空白セルにシート1の(出勤・欠勤)等の表示を 自動で表示させたです(カレンダーは個人別に人数分作ってあります)月を変えると日にちがずれてしまいますので(カレンダーとして使うなら問題ないのですが、月別の出勤状況を解るようにしたいので どうしていいか解りません。 ちなみにシート1は出勤簿でシート3は個人別の給料明細です。 給料明細の中に小さなカレンダーを作り出勤状況を解るように出来ないか考えています。空白セルに手入力も出来るのですが、時間が掛かり過ぎるので・・・VBAなどは解らないので簡単な関数などで出来ればと思います。 解りにくい説明で申し訳ありませんが、お願いします。

  • ban4
  • お礼率74% (41/55)

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

  • ベストアンサー
noname#70958
noname#70958
回答No.3

Sheet3のB34セルを  =IF(A34="","",VLOOKUP("鈴木一郎",Sheet1!$A$3:$AF$22,A34+1,0)) として、下方にフィル、D,E,G,I,K,M列にコピーすればOKかと。 ・左隣のセルが空白なら空白。 ・左隣のセルが空白でなければ、  "鈴木一郎"をSheet1のA3:A22の範囲から探して、  その行の【左隣のセルの値(日付)】+1列目(3日なら4列目=D列)の値を返す。 ご参考まで。

ban4
質問者

お礼

回答ありがとう御座いました 自分の説明が悪かったようでどうしてもエラーになってしまいます もう一度説明を書き直してみます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問文を文章だけで説明しようとするから読者にわかりにくい。 ーー 質問の表現を 私なりの流儀でやってみるから、良いとこは学んでください。 エクセルのシートの見た目と似せて例を書くと判り易い。 ーーー 私の思うには (1)Sheet3にSheet1の氏名行+日付列から データを採ってくる方法の質問か (2)Sheet3の月別・週別カレンダを、月が変わっても 正しく日付を配置する問題の質問か (3)それ以外の質問か よく判ら無い。 ーーー 質問の (1) Sheet1 A1:G6 2008 9 日付  1      2 3 4 5 6 曜日 月 火 水 木 金 土 山田 1勤務 3欠勤 1勤務 2勤務 3勤務 3欠勤 田中 1勤務 1勤務 3欠勤 1勤務 2勤務 3欠勤 ・・・ 対象は30人以内 ーー 上記の右の H1:N6 7 8 9 10 11 12 13 日 月 火 水 木 金 土 1勤務 1勤務 3欠勤 1勤務 2勤務 3欠勤 3欠勤 1勤務 1勤務 3欠勤 1勤務 2勤務 3欠勤 ・・・ 以右省略 曜日欄は=DATE($A$1,$B$1,B2)の式をAF列まで式複写して、表示形式をaaa 日付欄を1,2・・と数値で入れるか、日付シリアル値を入れるか悩ましい。 本例では数値をストレートに入れる例。 ==== Sheet3 A1:G6 2009 9 田中 ー 日 月 火 水 木 金 土 ー 1 2 3 4 5 6 ー #N/A 1勤務 1勤務 3欠勤 1勤務 2勤務 3欠勤 ー 7 8 9 10 11 12 13 ー 3欠勤 1勤務 1勤務 3欠勤 1勤務 2勤務 3欠勤 年、月、氏名、曜日は手入力 日付数字は関数でやるのがよいが、今回はカレンダを見て手入力した。 勤務状態をSheet1から取ってくることに付いて B5(日曜日)に =INDEX(Sheet1!$A$1:$AF$100,MATCH($A$2,Sheet1!$A$1:$A$100,0), MATCH(B4,Sheet1!$A$2:$AF$2,0)) と入れて、横方向に式を複写。結果上記の通り。 B5:H5の式をB7:H7までに式を複写。結果上記の通り。 以下の日付分略。 #N/Aを出ないようにするのも略。 ーーー Sheet3のカレンダー作成(月数字が変わるだけで、正しい カレンダー日付に変わるようにする方法)。 前にカレンダーを作った経験からおもいだして、 やはり日付はSheet1で日付シリアル値にする。Sheet3でも カレンダーの日付セルは日付シリアル値を(関数で)入れる。表示は 表示形式「d」を設定して、見た目で日だけ見せる。 日付は最初の日曜の(前月が多い)の日付を計算して入れて、 土曜まで式を複写する。 1行置いて式を複写しても次週日曜ー土曜の日付が正しく出るように式を 考える。 当月外の日付のセル(前月、次月の日)はフォントを白色にして、 見た目見えないようにする。それには条件付き書式を使う。 ー 手作業を入れないとすると、こういうやり方になるかと思う。

ban4
質問者

補足

ありがとう御座いました 頑張ってみます。

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.1

問題となっている部分は、具体的に言うとどこなのでしょうか? Sheet3のカレンダーに、一カ月分だけなら思ったように表示させられるのですか(手入力ではなく式/関数式で)? そこまでできているなら、どういう式/関数式を入れているのかも書いておくと、解決につながる回答が貰いやすくなりますよ。 問題なのは、Shht3のカレンダーのセル配置が曜日基準なので、日付は式で表示させてやっても月ごとに変る。 従ってその日付分の表示させるセルの参照先(Sheet1)をその都度変えなくては正しく反映されない。 それならば、Hlookup関数を使って検索値をsheet3のそれぞれの日付、範囲をSheet1のB3からAF22、行番号をそれぞれの個人が表示されている行をしてしてやってみてはいかがでしょうか? Hlookup関数については、Excelのヘルプファイルを参照するか、WEB検索するなどして情報を集めてみてください。

ban4
質問者

お礼

ありがとう御座いました シート3のカレンダーの今月(9月)1日の所の式は =IF(MONTH(DATE($A$1,$B$1,COLUMN(B1)+(ROW(B1)-1)*7+1-WEEKDAY(DATE($A$1,$B$1,1))))=$B$1,DATE($A$1,$B$1,COLUMN(B1)+(ROW(B1)-1)*7+1-WEEKDAY(DATE($A$1,$B$1,1))),"") です、2日はB1の所がD1になります(C1)は空白のセルを設けてます この空白部分にシート1の特定の人の出勤状況を表示したいです 1出勤 2出勤 3欠勤 の様にです、日にちが固定ならシート1の状態を表示出来るのですが、月ごとに日にちの位置がずれてしまうので 困っています。

関連するQ&A

  • エクセル関数の式

    sheet1       A   B    C     D    E    F   1    2008  6月 2 3    日付   1     2     3     4    5       4    曜日   sun    mon    Tue    wed 5山田太郎   出勤  出勤  欠勤 6山田次郎   出勤  欠勤  出勤 ・ ・ 22山田一郎   出勤 欠勤  出勤 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ B1の月を変えると曜日も変わります(日付は固定です)B5、6等の 出勤・欠勤はリスト表示から選択して入力しています。 sheet3    A  B C D E F G H I J K L M N 33  日    月   火    水    木    金    土 34   1    2   3    4   5    6   7 35   8    9   10   11   12   13   14 36  15   16   17   18   19   20   21 以下省略  行は33行目から始まっています ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 曜日は固定でsheet1の月を変えると日にちの位置が月ごとに変わります 日月火水木金土の間に空白のセルがあります(B列D列、FHJL列) この日にちの隣の空白セルにsheet1の出勤・欠勤などを各日にち事に表示したいです 上記のカレンダーには一人分の出欠を表示したいです(同じカレンダーが人数分あります) 月ごとにsheet3の日にちの位置がずれてしまうので、うまく表示出来ません。 いい方法はないでしょうか?よろしくお願いします。

  • エクセルで特定のセルをマクロで色づけする

    お世話になります。 出勤チェックを集計するためのファイルを作っています。 説明がわかりにくいかもしれず申し訳ありません。 添付画像のカレンダーシートから年月を選択。 集計シートの日付は、カレンダーシートから取得した年月日を リンク貼り付けし、表示形式を日付と曜日にしています。 例えば、2011年9月と選択した場合、 日付の1日のところは、(画像でセル番号が抜けましたが、B4です) =DATE(カレンダーシート!C4,カレンダーシート!C5,1) 曜日のところは、=B4 となっています。 この状態で、土日の休日は、集計シートの朝、帰りのセルを空欄にしたいのです。 (出勤日計算を、”朝”の数でcount関数で出しているため) 単純に、IF文で曜日が土日なら空欄にする方法は、 中に入っている数式が日付なので、できません。 何か良い方法をアドバイスいただければありがたいです。 なお、できるだけ、マクロやVBAなしで関数のみで実現できると助かります。 よろしくお願い申し上げます。

  • エクセルで各シートに日付・曜日一括表示するには

    (1)エクセルで7月31日分のシートをつくり、今年のカレンダーどおりの日付・曜日を(各シートのA1セルに、いちいち入力するのではなく)一括で各シートのA1セルに表示できる方法があれば、教えて下さい。 (2)エクセルで昨年7月の平日の数だけシートがあるファイルがあります。各シートのA1セルには、「平成19年7月○日(○曜日)」と入力されています。 このファイルを、今年の7月の平日カレンダーに一括置換するには、どうすればいいでしょうか? 昨年と今年は平日の日付はもちろん、同じ日でも曜日が違いますので、各シートを開き、いちいち日付・曜日を直さなければいけないのでしょうか。教えて下さい。宜しくお願いします。

  • エクセルで、曜日から日付を呼び出す関数について

    こんにちは。 現在、カレンダーを作成しており、困っていることがあります。 添付しております画像のように曜日を固定で入れておりますがこの状態から、日付を呼び出すことは可能でしょうか? 例 1月1日=金曜日の場合 カレンダー内の金曜日部分に「1日」と表示、且つ、それ以前の曜日(日~木)は空白表示。以降2日、3日と・・・ 又、月末30日及びそれ以下で終わる場合は空白。 以上、条件が多いのですが満たせる数式は存在しますでしょうか? ネットでいろいろと調べてはみたものの、日付から曜日を表示する方法しか見つかりません。 どうか、ご教授いただけますようお願い申し上げます。

  • EXCELで作成するカレンダーについて

    EXCEL2002での質問です。 シート1に31日分のカレンダーを作成し、セルA1(年)とセルB1(月)に記載された年月を変更することで 曜日固定の日付変動で毎月のカレンダーが表示するように作成しています。 (A3セルに、=DATE(A1,B1,1)-(WEEKDAY(DATE(A1,B1,1),1)-1)で作成しています) ~以下、シート1の各セルの役割~ ・第1行に A1 B1 年 月 ・A列に A2~G2 日曜~土曜(変動無し固定型) A3~G3 第1週の日付(変動有り) A4~G4 第1週のスケジュール表示領域 A5~G5 第2週の日付(変動有り) A6~G6 第2週のスケジュール表示領域 A7~G7 第3週の日付(変動有り) A8~G8 第3週のスケジュール表示領域 A9~G9 第4週の日付(変動有り) A10~G10 第4週のスケジュール表示領域 A11~G11 第5週の日付(変動有り) A12~G12 第5週のスケジュール表示領域 ~~~~~~~~~~~~~~~ これに付加をつけて、スケジュール機能を作成しようとしているのですが、 シート2以降、200806、200807、200808~というようにシート名を付け、 各シートに31日分の”行”を作成し(A3~A33までに1日~31日と記載)、 そこにスケジュール(B3~B33)を記載していきます。 この時、シート1側の年月(A1とB1)を2008年8月と変更した際に、別シート200808に記載された スケジュール(B3~B33)がシート1側の各日スケジュール領域に反映するようにするには、 どのように設定すればいいんでしょうか・・・? シートが固定してる場合は、シート1の各日のスケジュール表示領域に、 =200808!B3 などと200808のシートに記載されてあるスケジュールに通常参照を設定すればいいんですが、 シート1のA1とB1に記載された年月を2008年9月と変更した際に、 =200809!B3を参照するように作成したいのですが・・・。 基本的に、シート1側は年月を変更するだけの参照シートとしたいんです。 分かりにくい説明で申し訳ございませんが、ご教示頂ける方いらっしゃいましたら、 よろしくお願いいたします。

  • Excelで違うシートから日付を引っ張ってきたい

    すいませんが教えてください。 EXCELでAのシートとBのシートがあって、 Aのシートに日付を入力していきます。 その日付をBシートに引っ張ってきたいのですが、 ='Aシート'!A2 とBシートのA2に入れると Aシートの空白セルでは 「1月0日」となってしまいます。 空白セルは同じように空白セルにしたいのですが、 やり方がわかりません。 よろしくお願いします。

  • エクセル2007でのカレンダー作成

    エクセルでカレンダーを作成したいのですが、関数がわからず悩んでいます。 カレンダーといっても七曜日のものではなく、月曜日から金曜日までの五日間を繰り返すものです。(勤務体系の資料に使うものです) セルC3に年・月を入力し、その後D3~Z3~AB3の合計25セルに「日付」が、D4~Z4~AB4の合計25セルに「曜日(月~金の繰り返し」を出すことは可能でしょうか? 25セルあるのは、平日五日間×五週間=25セルとなっています。週に合わせて日付が反映されるようにしたいのです。 たとえば、今年の11月の場合だと、3日・月曜日は二週目になるので、二週目月曜日の位置(I3)の位置に3と表示されるように、12月の場合だと、一週目月曜日の位置(D3)の位置に1と表示されるようにしたいです。 加えて、日付が埋まらないセルは、下段の曜日と一緒に空白のセルになるようにしたいです。 ご指導よろしくお願いします。

  • エクセルで出勤表をつくる

    エクセルで、月別でシートに分けて1年分の出勤表を作っています。 印刷して勤務時間を手書きしてもらうためのものです。 下記のことで困ってますので助けてください。 考えている作り方としては、 (1)セルA1に年を設定し、A2に月を設定する (2)=DATE($A$1,$A&2,1~31)で、日付を出す (3) (2)の日付のセルの、書式設定をユーザー定義「d」にして日のみを表示 (4) (2)の日付の横のセルに=TEXT(WEEKDAY((2)のセル,1),"aaa")で曜日を表示 なのですが、(2)で、31まで入れると、2月シートの29の下に、(3月の)1と2が表示されてしまいます。30日までしかない月も同様です。 これを、その月の月末の日付までしか表示しないようにしたいです。 どうしたらいいでしょうか。

  • エクセルカレンダーの作り方

    エクセル2003でカレンダーを作成したいです。 作成方法を教えていただきたく投稿いたしました。 祝日カレンダーというシートを作成し、 A5~A50まで日付(2013/01/01と表記) B5~B50まで祝日の名前が入った表を作成しました。           A       B      6  2013/01/01   元旦 7  2013/01/14   成人の日 8  2013/02/11   建国記念の日 9  2013/03/20   春分の日 10 2013/04/29   昭和の日 といった感じです。 別シート「シート1」のE2のセルに 2013/01/01 と日付をいれてあります。 この日付は毎日変わるのですが、そのすぐしたのセルE3のセルに 祝日カレンダーシートに対応している日付がきたら、祝日の名前を表示させたいのです。 1/1なら元旦。1/14なら成人の日。 といった感じです。 このやり方を教えていただけないでしょうか。 よろしくお願い致します。

  • Exel

    仮にB1を月曜日・B2を火曜日・・・と曜日を固定し、A3~A36に毎月日付けを入力する形態の月別表を作成しています。 このとき、日付入力のセルが空白ならばその行のセル(たとえばA3の日付入力セルだとすれば数式入力済みのC4~J4)も空白になるようにしたいのですが、どうすればいいのかわかりません。 わかりにくい質問かもしれませんが、ご助言いただけると大変助かります。

専門家に質問してみよう