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

エクセルについて伺いたいです。学生食堂にて食事注文表を作っています。
食事の有無や内容を記録するもので、エクセルの表に随時入力するようになっているのですが、下に向かって入力順に並んでおり、日付が前後するため確認が大変です。
別のシートにカレンダーを用意してこの表から該当の日付に割り振ることは可能ですか?

表には
開始日 終了日 氏名 内容
と並んでいます。
開始日と終了日があるのは外泊などのため日付をまたぐことがあり、長期的な注文があるからです。この場合、開始日から終了日まで該当する日付すべてに同じ内容が表示されるようにしたいです。
また同じ日に別々の何人かの注文が入ることもあります。

カレンダーの方は氏名と内容が表示されて
4/1 ○○ 食事なし
×× 食事なし
4/2 ○○ 食事なし
4/3

みたいな感じで見れるようにしたいです。

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

  • エクセルでの作成を考えています。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/03/29 09:01

A 回答 (5件)

元データーの形と、結果の形が示されてないので分からないし、中間処理でどのようなアルゴリズムにするのかも書いてないし、「みたいな感じ」なんてあやふやな仕様ではやりたいことが分かりませんよ。


それに、開始日っか終了日なんてなぜいるのか?
内容って何の内容なのか? 希望のおかず? 好き/嫌い? ご飯の大/中/小?
○○とか☓☓が何を意味するのか?
「食事なし」はどこかに書いてあるのか?
それらが分からないけど、必要かとうかとか準備する数量が知りたいだけなら、ピボットテーブルでいいんじないですか?
    • good
    • 1

こんにちは!



具体的な配置が判らないのでやり方だけ・・・
質問文にあるような配置ではなく、こちらで勝手にやってみました。

↓の画像のように入力するのはSheet1でSheet2に表示するとします。
尚、Sheet1のA・B列はシリアル値で、同じ人で重複する日付はない(重なっている日はない)という前提です。

まず、Sheet1に作業用の列を設けています。
(これはSheet2の3行目に重複なしに氏名を表示させるため)
Sheet2の3行目が固定であれば、作業列は不要です。

まず、Sheet2のA・B列をシリアル値で表示します。
A1セルに西暦年の数値・C1セルに表示したい月の数値を入力。
そして、A4セル(セルの表示形式はユーザー定義から d としています)に
=IF(MONTH(DATE(A$1,C$1,ROW(A1)))=C$1,DATE(A$1,C$1,ROW(A1)),"")

B4セル(セルの表示形式はユーザー定義から aaa としている)に
=A4

とし、A4・B4セルを範囲指定 → B4セルのフィルハンドルで31日分の34行目までコピーしておきます。

次にSheet1の作業列E2セルに
=IF(COUNTIF(C$2:C2,C2)=1,ROW(),"")
という数式を入れフィルハンドルで下へずぃ~~~!っとコピー!

Sheet2のC3セルに
=IFERROR(INDEX(Sheet1!$C:$C,SMALL(Sheet1!$E:$E,COLUMN(A1))),"")

という数式を入れフィルハンドルで右へコピー!
(氏名が固定なら作業列と3行目の数式は不要です)

最後にSheet2のC4セルに
=IF(COUNTIFS(Sheet1!$A$2:$A$100,"<="&$A4,Sheet1!$B$2:$B$100,">="&$A4,Sheet1!$C$2:$C$100,C$3),INDEX(Sheet1!$D$2:$D$100,SUMPRODUCT((Sheet1!$A$2:$A$100<=$A4)*(Sheet1!$B$2:$B$100>=$A4)*(Sheet1!$C$2:$C$100=C$3),ROW($A$2:$A$100)-1))&"","")

という数式を入れフィルハンドルで列・行方向にコピーすると
画像のような感じになりなす。m(_ _)m
「エクセル、スケジュールをカレンダーに反映」の回答画像4
    • good
    • 2

んーと。

質問者さんはExcelの基本機能や関数、マクロが人並みに使えますか?
使えないのであれば、専門業者に委託することをお勧めします。
(ここは「代わりに作ってください」と ”作業委託” する場所ではありません)

・・・
正直、「日付」で「並べ替え」をすれば解決する話と自分は感じました。
「エクセル、スケジュールをカレンダーに反映」の回答画像3
    • good
    • 1

エクセルの通常の関数だけで行うのは無理でしょう。


VBAでやれば可能です。

ただ、VBAでやったら保守がたいへんですよ。
    • good
    • 1

グーグルカレンダーが便利ですがエクセルでされるんでしょうか?スタッフでグループを作れば複数からの随時入力が可能で、一目で何日から何日まで誰の食事が要る、など文字、色分けで分かって便利ですよ。

あとは、年間費9000円くらいですがキントーンでアプリを作ればカスタマイズがエクセルよりはるかに簡単です。エクセルでやろうと思えばマクロに詳しい方に頼むといいと思います。
この回答への補足あり
    • good
    • 1

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

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