人に聞けない痔の悩み、これでスッキリ >>

海外で働いているものです。
周りにエクセル上級者がいない為、質問できずに困っています。

添付の図のような表を作り、タスクの情報を表とカレンダーで管理したいと考えています。
下記に具体的な内容を記します。

1.上の表にCODEと、担当者、開始日と終了日を入力する
↓↓↓
2.カレンダーの担当者の列の該当日に色が付き、開始日にCODEが表示される

以上になります。
尚、エクセルのバージョンは2010になります。

どうぞ宜しくお願い致します。

「表に日付と担当者を入力すると、カレンダー」の質問画像

質問者からの補足コメント

  • tom04さん

    ご丁寧にありがとうございました。
    条件付き書式、奥が深いですね…。

    さて、教えて頂いた方法で、昨日質問させて頂いた内容はクリアできたのですが、
    下図のように担当が二つ以上ある場合、カレンダーに二つ目以降のタスクが表示されません。

    色々試してみたのですが、解決できず…
    二つ以上のタスクを表示する方法はあるのでしょうか。
    申し訳ありませんがお教え頂けますと幸いです。

    宜しくお願い致します。

    「表に日付と担当者を入力すると、カレンダー」の補足画像1
      補足日時:2015/12/30 16:57
  • うーん・・・

    moto_koukouseiさん
    tom04さん

    今私が作ろうとしているものは、ツアーの予約とそのツアーを担当するガイドを管理するための表になります。

    実際に作ろうとしている表のビジュアルは下図のようになります(2枚目は次の補足に添付)

    お客様の人数により複数のガイドが担当するものや、一つのツアーの日程中でガイドが入れ替わったりするものがあります。またツアーによっては月を跨いだ日程のものもあります。
    また、ガイドの休暇申請も同時にこの表中で管理したいと考えています。

    色々と考えていても、なかなか自分一人では解決できず質問させて頂きました。
    自分の力不足を痛感しており、もっと勉強が必要だと感じます。
    ヒントになるようなことでもよいので、教えて頂けますと幸いです。

    どうぞ宜しくお願い致します。

    「表に日付と担当者を入力すると、カレンダー」の補足画像2
      補足日時:2015/12/31 20:20
  • どう思う?

    カレンダー部分のビジュアルになります。

    「表に日付と担当者を入力すると、カレンダー」の補足画像3
      補足日時:2015/12/31 20:21

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

A 回答 (8件)

ここで説明して伝えるのは、難しく、困難だと思っているのですが、少しチャレンジしてみます。

もともと、自分でも関数だけで実現出来るとは思ってなかったのですが、関数を使いまわして、それっぽいのが出来たので、自分の覚えのつもりでもあります。
1)日付の入力は整数とし、startからfinishは一ヶ月は超えず、startの日付は当月、finishの日付は(startの日付と同日~月末日の日付なら当月中)(startの日付より若い日付なら翌月の日付)とみなす。
2)同じcode番号では、担当者は1名~5名まで指定可能。6名以上をアサインする場合はcode番号に添え字をつけて対応する。(例 ANA-004とANA-004-2のように)
3)一度あるCODE番号で担当をアポイントしたあとで、キャンセルに変更した場合は、当月中はそのcode番号と担当の指定状況は画面上残すが、翌月はリストから削除する。当月もカレンダには集計の対象としても扱わないし、担当者別の当月就業記録にも(なかったもの)として扱う。一度キャンセルにしたcode番号のCANCELLの文字を削除した場合は、そのCODE番号の担当を割り当ては復活する。
4)結果の表(シート名Result)には、担当者全員の就業と休業の記録がカレンダー上の日付で識別表示され、就業日が同じCODE番号で連続する場合は、最初の日付にのみCODE番号を表示する。ある就業日に複数のCODE番号で就業した場合は、その件数と1つのCODE番号を表示する。また結果の表(シート名Result)には、当月の暦日日数、就業した当月の日数、休業登録した当月の日数を表記する。
5)当月の入力や修正の結果で、翌月に引き継ぐべきCODE番号とその担当の指名状況はシート名NextMに反映させ、次月に値のコピー貼り付けの元データに出来るようにしておく。ただし、当月のスタート日付は継続させず、初日(ついたち)からスタートするような表記にする。
6)担当の名前は、別のシート(STAFF)にシストとして入れておく。
7)上記の処理を関数だけで行うために、入力や修正のために使うシート(CtrlPanel、STAFF)に作業領域を設ける他、作業用シート(PresentM、nextM、Pic、DAYOFF)を使用する。
8)関数の可読性を高めるため、名前定義をつかう。
9)対象行を抽出させるために、CtrlPanelのU~AC列に、対象行として認定するところに1,その1の個数集計(順位番号)、その行のROW位置を入れておく。そして、例えば、INDEX(RawDATA,VLOOKUP(ROW()-3,NextPosi,2,0),1)とか、INDEX(NextPosi,VLOOKUP(ROW()-3,NextPosi,2,0),11)などの関数を使用して、必要なデータを選択させている。
10)指定したstartとfinishの日付は、カレンダーのcolumnの番号と大小比較して、該当日を勤務日あるいは休暇申請日として扱う。例えば、Picシートでは、Pic1~Pic5を縦に並べ、各Pic毎にcode番号とそのPicでの担当名が入っていて(その自動反映の方法は別途記載する)、例えば、次の式 IF(AND(U$9>=$H905,U$9<=$I905),$E905,"") この場合9行目に月初を1としての日数が入っていて、H905にstart、I905にfinishがあれば、E905の担当者名を入れるようにしている。
11)Picシートでは、10)のようにpic1~5で、code番号×日付の交差セルに担当者を入れたものを、担当者別×日付の交差セルに、例えば、=IF($E15="","",IF(COUNTIFS(U$100:U$2090,$E15)=0,"",IF(COUNTIFS(U$100:U$2090,$E15)>1,COUNTIFS(U$100:U$2090,$E15)&":"&INDEX($A$100:$A$2090,MATCH($E15,U$100:U$2090,0)),INDEX($A$100:$A$2090,MATCH($E15,U$100:U$2090,0))))) のような式で、担当にとってその日付で就業するcode番号INDEX($A$100:$A$2090,MATCH($E15,U$100:U$2090,0))を表記させる。その場合、同じ日付で複数のCODE番号があれば、その件数COUNTIFS(U$100:U$2090,$E15)を先頭に付して表記させる。
12)結果の表(カレンダー表示)では、条件付き書式で、セルの背景を色分けをする際、ヒダに位置するセルと同じ文字列になっているセルの文字はセルの背景色と同じにすることで、見た目のわずらわしさを回避している。また結果の表(カレンダー表示)では、翌月の日付に該当する列の背景色も変更している。当月の個人別稼働日数や休暇申請日数、なんの指定でもない日数は、COUNTIFS(OFFSET($G5,0,0,1,$A$2),$A5)のように、$A$2の当月の月末日付=DAY(EOMONTH(A1,0))とOFFSET関数で集計対象を可変にして集計している。
「表に日付と担当者を入力すると、カレンダー」の回答画像8
    • good
    • 1

追加です。


⑧ 見本に示されているTOUR RESERVATIONのG列H列に自動で日付を反映させる式を使う場合、PIC2以降の指定である期間をG列H列自動除外させる方法が難しいです。複数のSTAFFが重なる指定もあるわけですし、全期間の途中の数日を別のSTAFFに代わるというのもあるのでしょう。 G列H列に式を入れてしまうと、そのセルに日付を手入力されると、もとの式が書き換えられてしまい、以降は自動で日付は反映出来ません。
⑨ 同一STAFFが同じ一日に複数のCODEを担当できるようにつくります。既に他のCODEを4つも5つもアサインしているのに、次々そのスタッフをアサインしても、この仕様では平然と受け付けます。
⑩ 予定を管理するという目的を考えると、1つのCODEは28日間より短いという前提でも、例えば、1月10日に、2月の予定CODEを入れておきたい、3月催行のCODEも登録したいというようなこともあるかもしれません。{➀ 日付はシリアル値でなく、1,2,3,………,28,29,30,31の整数入力と考えてイイ}とすると、翌月なのか、翌々月なのかが、日付の値では判定できなくなります。 日付入力をシリアル値(2016/1/14のように)すれば、それは解決出来るでしょうが、およそ入力が面倒くさくなります。 このような仕様で表を作るのが適当なのか、その辺りに、疑問を感じます。
    • good
    • 0
この回答へのお礼

ありがとう

ご回答いただき誠にありがとうございます。
No.8に書いたお礼が監視に消されてしまったようなので、再度書きます。
(No.8に再度書こうとするとエラーが出てしまいます…)

お送り頂いたビジュアルを見るところ、私の考えているものに限りなく近く、
またそれ以上に多様な可能性を持ったBookなのではないかと感じます。

教えて頂いた関数を用い、自分で同じBookを作成を試みているのですが、
今の私の力量では、およそ実現できそうもありません。汗

説明書またはBookサンプルをお送り頂きたいのですが、
どうもこのサイトには連絡先を記載したホームページのURLを記載すると、
監視に削除されてしまうようです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

さて、当質問について、回答者のお二方には大変お世話になりました。
ご親切かつ高度な内容のご回答を頂き、大変勉強になりました。

ベストアンサーはNo.8の回答を選ばさせて頂き、ひとまず当質問については解決とさせて頂きます。

この度はどうもありがとうございました。

お礼日時:2016/01/13 12:20

No.4 回答?者です。

 今回も回答ではないです。
マクロを使わずに、EXCELの関数機能だけを使用して実現させようとすると、私の知識技量だと、作業用シートや作業領域を思い切りたくさん使用することになります。マクロを使わないので、excelの通常のbookになります。セルの位置や関数を画像を使いながら説明するのにも、かなりの画像数が必要です。どうシートや関数を使い回したのかを、どうやってこのサイトで説明出来るのか、見当がつかない状態です。 
なお、追加で質問があります。
➀ 日付はシリアル値でなく、1,2,3,………,28,29,30,31の整数入力と考えてイイですか。
② 各CODEの最長期間は、28日間未満と考えてイイですか。
③ 月別の1BOOKを使い、一ヶ月使ったら、翌月からは別名でBOOKでイイですか。
④ 1月のBOOKから2月のBOOKにデータを引き継ぐ際、ある領域の値をコピーし、その都度データを追加修正する領域へ値のみ貼り付けの手作業をする仕様になります(一月中に終了するCODE-xxは自動でなくなる)が、その際、例えば、1月のあるCODE-xxで、スタート23日、フィニッシュ4日のものがあったとき、貼り付ける先の2月のCODE-xx-は、スタート1日、フィニッシュ4日になる(2月の日程だけになる)こと、一月中に分担が終了する分のSTAFFはNAMEも表示されない仕様でイイですか。
⑤ CANCELの入力がされたものは、1月のBOOKから2月のBOOKにデータを引き継ぐ際、2月のBOOKではそのCODEの行そのものが引き継がれない仕様でイイですか。
⑥ あるSTAFF(ガイド)のDAYOFFが12日~17日と入力されているのに、あるCODE-XXではそのSTAFFが9日~13日にアサインされているまま(実績も9日~13日でCODE-XXで従事)となっている場合、結果のカレンダーでは、9日~13日がCODE-XX勤務、14日~17日がHOLIDAYで表示されてイイですか。
➆ あるSTAFFが{3~6日はCODE-ab12、7~8日はCODE-ab12・CODE-ab32・CODE-ab52、9~10日はCODE-ab12・CODE-ab52、11日はCODE-ab52・CODE-cf62}のような場合、結果のカレンダーは、《3~11日までのセルに色を付ける》《3~11日の各日のセルにCODEを表示する。ただし、1日に複数のCODEがアサインされている場合は、その個数と最初のコード名を表示する(ある日が[CODE-ab12・CODE-ab32・CODE-ab52]の場合は[3:CODE-ab12])。エクセルの列幅を狭く表示させている場合には、最初の二~三文字程度が見えるだけの状態であり、全部を見たい場合は、一時的に列幅を広げる》。このような仕様でイイですか。

とにかく、やり方は、関数を使う方法にしても、多種多様な方法があると思うのですが、作業シートや作業列を組み合わせて使い回す方法ばかりになると思うので、4つや5つの関数を説明するのでは説明しきれません。関数の可読性を高めるために名前定義も使うし、どういう方法で回答出来るか、このサイトでやれるのかが見当がつきません。webサイトでwordで作った説明書を添付するようなことは出来るのでしょうか?EXCELのBOOKをサンプルで添付して、動作させてもらって、自分で適当に剽窃改変してもらった方が簡単ですが、、、
関数だけでも出来ないわけではないでしょうが、なんかわかりにくいものになっていく気がします。
    • good
    • 0
この回答へのお礼

moto_koukouseiさん

ご質問の返答が遅くなってしまい申し訳ありません。
下記に回答致します。

➀ はい。こちらについてはシリアル値の方が望ましいですが、整数入力でもかまいません。

② はい。28日以上のタスクはほとんどありません。

③ はい。基本的に月単位での管理を考えています。

④ はい。その仕様で問題ありません。

⑤ こちらに関しては、タスクのシートは月単位で管理を考えているため、翌月までまたいでいるタスク以外は引き継がないで使うことを考えています。

⑥ 基本的にCODEのアサインより、DAYOFFを優先表示する仕様だと良いと考えています。(誤ってアサインしてしまうことを防ぐため)

➆ はい。そのような仕様であれば非常に使いやすいと考えます。

⑧ そうなんですね。G列H列にかんしては関数で自動的に日付を拾ったら便利だと考えていたのですが、表自体の本質にかかわる問題だと思いますので、こちらは数値を入力する仕様でかまいません。

⑨ 実際複数コードを掛け持ちすることがありますので、その仕様で問題ありません。

⑩ 1月の時点で、2月3月のCODEを入力したいと考える場合、それぞれ2月3月のBookに入力するよな管理方法を考えていました。

どうぞ宜しくお願い致します。

お礼日時:2016/01/11 11:43

続けてお邪魔します。



今回は数式で処理できるようにしてみました。
>多い月では500件ほどのCODEが登録されます。
というコトですのでやり方だけ・・・
尚、月をまたぐことがあるというコトですので、年もまたぐ場合も考慮すると
日付セルはシリアル値が入るとしています。
(表示形式は好みの日付にしてください。)

少し手間がかかりますが↓の画像のように作業用の表を利用します。
前回同様作業列E2セルに
=B2&C2
という数式を入れ下へフィル&コピー!
F2セルには
=IF(COUNTBLANK($B2:$D2),"",IF($C2+COLUMN(A1)<=$D2,$B2&$C2+COLUMN(A1),""))
という数式を入れ、列・行方向にずぃ~~~!っとこれ以上データはない!
というくらいまでフィル&コピーしておきます。

そしてB9セルには前回と同じ数式の
=IFERROR(INDEX($A$2:$A$5,MATCH($A9&B$8,$E$2:$E$5,0)),"")

B9セルの条件付き書式の数式欄に
=COUNTIF($E$2:$IV$5,$A9&B$8)
とし → 書式 → 塗りつぶしから「黄色」を選択しています。

最後にB9セルのフィルハンドルで列・行方向にコピーすると
画像のような感じになります。

※ 作業用の表がかなりの量になりますので、
別シートに作業用の表を作成する方がよいかもしれません。
Excel2010だと条件付き書式の数式で別シートが直接参照できたはずです。

とりあえずはこの程度で・・・m(_ _)m
「表に日付と担当者を入力すると、カレンダー」の回答画像5
    • good
    • 1
この回答へのお礼

ありがとう

tom04さん

数式だけで処理できる方法を教えて頂きありがとうございます。
補足質問させて頂いた表の方でも応用できそうな感じがしますので、年明けに挑戦させて頂きます。

年の瀬でお忙しいところご回答いただき誠にありがとうございます。
どうぞよいお年をお迎えください。

お礼日時:2015/12/31 20:34

質問されている条件に関して、質問があります。


1)全部で、1~10までの横でいいのですか。もっと~31とか必要ですか。
2)15~30,1~14までの合計30になるようになることはないのですか。
3)入力後に数日経過したあとで、左の方は無用になって、右に日付を延長したいことはないですか。
4)(CODE××-3、担当C、開始日3,終了日7)と入力後に数日経過したあとで、例えば、4日目になったとき、EXCELを見た時に、前のママで良いのですか。開始日、終了日を2016/1/5、2016/1/9のように入力してあって、EXCELを開いたとき経過済みの2016/1/7までは表中には表示しないで、今日の日付である2016/1/8以降を表中に表示するし、表は10日間(右端が2016/1/17)のようにする方がイイのですか。そんなことはせず日付は1~10の数字を固定にして、EXCELを開いた都度、CODEの各開始日、終了日の数を変更するのですか。
5)ある担当が、ある日付に、複数のCODEを担当することはないのですか。 担当Bが、(CODE××-3、3、7)、(CODE××-5、5、9) のような割り振りのようなことがあるとした場合、担当別の表の日付5,6,7にはどう表示されたいのでしょうか。
6)CODEは合計6件まででいいのですか、もっと必要ですか。 CODE別の表が10行になる場合、担当別の表の位置はどうしますか。担当別の表は20行目からでも構わないとか、別のシートになっても良いとかあるのでしょうか。
7)同じCODEを、複数の2,3担当が行うことはないのですか。 CODExx-4について、担当B(開始日3,終了日7)、担当A(開始日5,終了日6)のように2日間だけ2名担当体制というような場合はないのでしょうか。 その場合、CODE別の表は、担当Bと担当Aでそれぞれ1行使うと考えてイイのでしょうか。 【担当別の表で日付が重ならない場合の表示方法は示されています】
8)担当は、A、B、Cに限定されているのですか。中牟田、中曽根、中島など漢字が入ったり、延べ8名に変わったりしませんか。CODE別の表に名前の出て来ない担当も、担当別の表には固定位置でAや中曽根と表示しておくことが大事でしょうか。
9)EXCELの関数だけで実現することが条件ですか。 マクロを使っても構わないのでしょうか。マクロで処理するのでないと、ちょっと大変そうな気がします。
    • good
    • 0
この回答へのお礼

moto_koukouseiさん

深いところまで読み込んでご質問頂き、ありがとうございます。

頂いたご質問に返答致します。(文字数の制限上、頂いた質問の文章は割愛させて頂きました)
加えて、実践で使う用途を補足コメントに記します。

【返答】
1)実際はひと月単位で日付を作成するつもりです。(月をまたぐタスクも存在ます)

2)各担当のタスク日数についてでしょうか。タスク日数についてであれば最大値を設ける予定はありません。各担当のひと月のタスク日数についてはCOUNT関数で数えられるようにするつもりです。

3)タスクが終了したものに関しては記録として残す必要があります。表(CODE、担当者、開始日終了日)は毎月で管理する予定なので、とくに右に日付を延長する必要があるとは考えていません。(ただ月をまたぐタスクがあるので、翌月の10日まではカレンダーに入れたいと考えています)

4)表はエクセルを開いた際、その月の最初のタスクから表示されるようにしたいと思います(日付は毎月の日付)。特に日付が経過したからと言って、開いた際のビジュアルは変わらなくてよいと考えています。

5)仰る通り、ある担当がある日付に複数のCODEを担当することがあります。その場合は下図のように表示出来たら最適だと考えています。

6)CODEについては使いまわしがされません。一度使われたCODEは二度と使われないのです。また、多い月では500件ほどのCODEが登録されます。実際は表とカレンダーは別のシートで管理したいと考えています。

7)仰る通り、実際にはひとつのCODEを複数の担当者が担当する場合があります。担当者が日付によって入れ替わるタスクもあれば、同じ日付に複数の担当がいるタスクもあります。【担当別の表で日付が重ならない場合の表示方法は示されています】既に過去に同様の質問があったということでしょうか。

8)実際には、担当者は外国人の名前が入ります(アルファベット)。担当別の表には固定位置で名前を入れた一覧を設ける予定です。

9実際私自身マクロやVBAでの作業に不慣れなため、可能な限り関数で処理したいと考えていますが、この内容を関数で処理するのは難しいのではないかと考えています。マクロやVBAを用いない方法が好ましいですが、用いた方法でも良いのでご教示いただけたらと思います。

お礼日時:2015/12/31 16:35

続けてお邪魔します。


補足を拝見しました。
担当行が重複しているとなるとかなり厄介ですね。
VLOOKUP関数やMATCH関数は最初にヒットしたデータしか検索できないので
別案です。

まず、開始日に「CODE」を表示させる数式ですが、
↓の画像のように作業用の列を設けてみてはどうでしょう?

作業列E2セルを
=B2&C2
としてフィルハンドルで下へコピーしています。

そしてB9セルに
=IFERROR(INDEX($A$2:$A$5,MATCH($A9&B$8,$E$2:$E$5,0)),"")
という数式を入れ列・行方向にフィル&コピー!

問題なのが色付けです!
条件付き書式で対応しようとするとかなり面倒ですので、VBAにしました。
大前提として↓の画像のような配置だとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
色々データを変更してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から//
Dim i As Long, r As Range, myStart As Range, myEnd As Range
'▼変化セルがB2:D5セル以外は何もしない
If Intersect(Target, Range("B2:D5")) Is Nothing Then Exit Sub
'▼9~11行のセル色消去
Rows(9 & ":" & 11).Interior.ColorIndex = xlNone
'▼2行目~5行目まで
For i = 2 To 5
'▼ i 行目のC・D列に数値データがある場合は・・・
If WorksheetFunction.Count(Cells(i, "C").Resize(, 2)) = 2 Then
'▼A9~A11セル内のA列i行目 のデータと一致する行を取得 ①
Set r = Range("A9:A11").Find(what:=Cells(i, "B"), LookIn:=xlValues, lookat:=xlWhole)
If Not r Is Nothing Then '←念のため//
'▼8行目での色付け開始セル列を取得
Set myStart = Rows(8).Find(what:=Cells(i, "C"), LookIn:=xlValues, lookat:=xlWhole)
'▼8行目でで色付け終了セル列を取得
Set myEnd = Rows(8).Find(what:=Cells(i, "D"), LookIn:=xlValues, lookat:=xlWhole)
'▼①で取得した行の色付け開始セル~色付け終了セル列を黄色に塗りつぶし
Range(Cells(r.Row, myStart.Column), Cells(r.Row, myEnd.Column)).Interior.ColorIndex = 6 '←「黄色」にしています。
End If
End If
'▼次の行(i)へ・・・
Next i
End Sub 'この行まで//

※ 条件付き書式が優先されてしまいますので、
9~11行目の条件付き書式は消去しておいてください。

※ 画像の配置通りのコードですので、
1行・1列でも異なる場合は意図しないセルに色が付きます。

まずはこの程度で・・・m(_ _)m
「表に日付と担当者を入力すると、カレンダー」の回答画像3
    • good
    • 1
この回答へのお礼

tom04さん

またまたご丁寧にありがとうございました。

上図のシートでの動作は成功しました!
ただ、マクロやVBAでの作業はまだまだ技量不足なので、
教えて頂いた方法で実践用のデータを作るのは難しいです。
もう少し勉強して再挑戦したいと思います。

ありがとうございました。

お礼日時:2015/12/31 14:09

No.1です。


前回の数式ではエラー処理をしていませんでしたので、
B9セルの数式を
=IFERROR(IF(B$8=VLOOKUP($A9,$B$2:$C$4,2,0),INDEX($A$2:$A$4,MATCH($A9,$B$2:$B$4,0)),""),"")
としてみてください。

※ 条件付き書式の数式はそのままで大丈夫です。

何度もごめんなさいね。m(_ _)m
    • good
    • 1
この回答へのお礼

tom04さん

ご親切に教えて頂きありがとうございます!
早速試したところうまく動作できました!

…が、新たな課題にぶつかっておりまして…、補足コメントの方に書かせて頂きました。
どうぞよろしくおねがいいたします。

お礼日時:2015/12/30 17:00

こんばんは!



画像の配置ですと、
B9セルに
=IF(B$8=VLOOKUP($A9,$B$2:$C$4,2,0),INDEX($A$2:$A$4,MATCH($A9,$B$2:$B$4,0)),"")
という数式を入れ、
B9セルを選択したまま → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に
=AND(B$8>=VLOOKUP($A9,$B$2:$C$4,2,0),B$8<=VLOOKUP($A9,$B$2:$D$4,3,0))
とし → 書式 → 塗りつぶしから好みの色を選択しOK
最後にB9セルを列・行方向にフィルハンドルでコピーしてみてください。

※ 条件付き書式の数式はいちいち手入力せずこの画面から
直接コピー&ペーストしても大丈夫です。m(_ _)m
    • good
    • 1

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

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

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

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

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

QExcel日程表:開始日~終了日を自動で色付けたい

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見してわかるようにしたいです。
複数案件の進行が重複し、稼働の重たくなる時期を確かめるためです。


※2003でも2007でも使える書式設定でお願いします。
※私はマクロの知識が乏しい&Excelスキルの低い同僚にも使ってもらうため、マクロは使いたくありません。
※のちのち数式が崩れたときにも修復が容易なように、シンプルな数式だとありがたいです。
※条件付き書式以外の方法で、上記が解決できるならそれも教えてください。



ご教授ください。よろしくお願いします。

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見...続きを読む

Aベストアンサー

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セルのフィルハンドルでAI列までコピーしておきます。
これで「年」・「月」を変更すればちゃんと大の月・小の月の対応ができます。

後は条件付書式で可能です。
Excel2003の場合
色を付けたいセル(E5セル以降)をすべて範囲指定
書式 → 条件付書式 → 「数式が」を選択 → 数式欄に
=OR(AND(E$3<>"",E$3=$B5),AND(E$3<>"",E$3=$D5))
として → 書式 → パターンから「赤」を選択

次に条件付書式 → 「追加」 → 上記と同様に数式欄に
=AND(E$3<>"",E$3>=$B5,E$3<=$D5)
として → ・・・ → パターンから「黄色」を選択
これで↓の画像のような感じになります。

※ Excel2007以降ですと、条件付書式 → 「数式を使用して・・・」という項目になると思います。
数式欄は同じ数式にします。

※ 条件が重複する場合は最初の条件付書式が優先されますので、
「受注日」・「納品日」の条件付書式を条件1にします。
Excel2007以降の場合は条件付書式の項目で上の行に表示されている方が優先されますので、
右側の▲▼で優先順位は自由に変更できます。

参考になりますかね?m(_ _)m

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セ...続きを読む

Q日付を入力しカレンダーの該当する日を塗りつぶしたい

添付の画像のように

(1)「開始日」と「終了日」に日付を入れる
(2)すぐ下にあるカレンダーの「該当の日付のセルが塗りつぶされる」

ということをやりたいと思っています。
条件付書式?や関数で対応できるものでしょうか。

Aベストアンサー

ご提示の画像どおりの配置なら
A6セルに条件付書式で
「数式が」を
=AND(A5>=$A$2,A5<=$B$2)
にします。
$の位置に注意してください。
そのまま右へフィルドラックして条件付書式をコピーします。

Qエクセルで作成したカレンダーに「当番の名前」を自動的に入力する方法をお

エクセルで作成したカレンダーに「当番の名前」を自動的に入力する方法をおしえてください。


毎月エクセルで朝礼当番表を作っています。
土、日、祝がお休みです。
たとえば、1日に最初の人の名前を入力すると休みの日はぬかして、
順番に当番が入力されるという関数があれば教えてください。

1行目に「日にち」
2行目に「曜日」
3行目に「当番者名」

と簡単な表です。

リストからコピペしたら間違えてしまいました。

オートフィルで入力しようかと思ったのですが、休みの日を抜かすのが面倒で。


よろしくお願いします。

Aベストアンサー

>6行目(B6セル)に =IF(B6=0,MOD($B2-2+DAY(B3)-SUM($B5:B5),$B1)+1,0)
式を分解してみるとわかりやすいです。
更に
7行目に作業列 =$B2-2+DAY(B3)
    日にちごとに 日にち事に連続した番号になります。
8行目に作業列 =MOD($B2-2+DAY(B3),$B1)
    その番号を 人数で割ったあまりがでます。
9行目に作業列 =SUM($B5:B5)
    休みの数の合計がでます。

と入れて右へコピィしてみてください。
式のセルを指定する $B2 とか$マークが付く場合と付かない場合がありますよね。
絶対参照と呼びますが、意味は右へコピィしてもセルの位置を変動させないということです。
例えば
9行目の=SUM($B5:B5)の式を右へコピィした場合
=SUM($B5:B5)
=SUM($B5:C5)
=SUM($B5:D5)
・・・
と合計する範囲が広くなっていくように設定してあります。

別件ですが
カレンダーの日付をコピィの作業をしなくても良いように関数をいれておくことも出来ます。
   A     B   C   D・・・
1 人数    5   年  2010
2 最初の人  1   月   1
3 日付    10/1 10/2
4 曜日    金曜  土曜・・・
とD1セルに 年 の数値 D2セルに 月 を数値で入れます。
日付のB2セルには =DATE($D1,$D2,COLUMN(A1)) と入れて右へコピィしておきます
ここも 年と月を決める D1とD2のセルを指定するときは右へコピィしても変動しないように
$マークをつけておきます。
COLUMN(A1)はA1セルの列の番号です。右へコピィした場合に
COLUMN(B1)
COLUMN(C1) と変動する様に $マークは付けません。
*COLUMN(A1)は COLUMN(A2)でもACOLUMN(3)でもかまいません。
曜日のB3セルには =B2 と入れます。書式=>セル で表示形式のタブ ユーザ定義 で aaa
と入れると その日の表示が曜日になります。
B3セルも右へコピィします。
毎月、月の部分を変更するだけで その月のカレンダーになります。
表示形式については
http://www.excel.studio-kazu.jp/lib/e3g/e3g.html
などを参考にしてください。

>6行目(B6セル)に =IF(B6=0,MOD($B2-2+DAY(B3)-SUM($B5:B5),$B1)+1,0)
式を分解してみるとわかりやすいです。
更に
7行目に作業列 =$B2-2+DAY(B3)
    日にちごとに 日にち事に連続した番号になります。
8行目に作業列 =MOD($B2-2+DAY(B3),$B1)
    その番号を 人数で割ったあまりがでます。
9行目に作業列 =SUM($B5:B5)
    休みの数の合計がでます。

と入れて右へコピィしてみてください。
式のセルを指定する $B2 とか$マークが付く場合と付かない場合がありますよね。
絶対参照と呼び...続きを読む

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

Qエクセル:特定のセルに入力するとセルが塗りつぶされるには?

エクセルで、ある特定のセルに日付を入力した時に、そのセルを含む行に色をつけたい場合はどのような設定をしたらいいのでしょうか?

例えば、C1に日付を入力するとA1~F1までのセルが全て黄色になるといった感じです。

Aベストアンサー

次の方法は如何でしょうか。
(1)A1:F1を選択
(2)書式→条件付き書式→数式がを選択、数式欄に=$C1<>""を入力→書式→パターンタブで黄色を選択→OK
因みに日付の条件が不明でしたので安直ですがC1に何か入力されていれば色付けできるようにしています。

Qエクセルで日付を入力したらカレンダーに色を塗る

添付ファイルを参照してください。
・架設工事の横の開始日に日付を入力したらその日から決められた期間分セルに色を塗る
・それぞれの工事によって期間はちがう。
・塗ったマーカーは手直しができるようにしたい。
・できれば日曜・祭日は抜いて期間分色を塗りたいが、無理なら手直しで塗りなおします。

よろしくお願い押します。

Aベストアンサー

日経PC21が得意とするテーマで、
●Excelでガントチャートをつくる方法 | Excelを制する者は人生を制す ~No Excel No Life~
http://excel-master.net/graph/gantt-chart/
●関数で工程管理、ガントチャートを作れ《続・Excel関数は60個だけ覚えなさい》
http://pc.nikkeibp.co.jp/article/column/20120515/1049472/
などいくつかの手法が公開されています。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.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エクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

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

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エクセル 特定の文字を入れると他のセルの色が変わる

例えばセルA1に[りんご]と入力したらB2からB5までの文字の色が赤に変わる・・・などということは、関数や書式の設定なので出来るのでしょうか?
おわかりの方教えてくださーい!

Aベストアンサー

B2からB5のセルを選択し
書式メニューの条件付書式設定を選択し
数式が
=$A$1="りんご"
と入力し、書式で色を赤に変更してください。


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

人気Q&Aランキング