重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

関数初心者です。
システムから吐き出されるデータ内から月別の予約表をエクセルで見える化して、最終的に各客室毎の稼働率を集計したいため、予約表を作りたいのですがそれすら作れずに悩んでます。

持ってるデータ↓
---
①B列:チェックイン日
②C列:チェックアウト日
③D列:泊数
③E列:予約された客室(101号、102号、103号…)
---
※C列には泊数も吐き出されるのですが、連泊で月を跨いだ時の処理などがよくわからなくて泊数のデータは使うべきか使わないべきか良い方法がわかりません。

実現したいこと
---
この部屋(103号室)の、この日(6/16)に予約(チェックイン日以上、チェックアウト日未満の範囲内)が入ってたら「●」を表示する。
※チェックアウト日は予約とは言えないので「●」は表示されません。

文章で伝えるのが難しくとてもわかりにくいと思いますが、画像のような形で作りたいです。
※こちらに画像を投稿する際に、見づらくなるので作りたい表を3分割(6/1-6/10、6/11-6/20、6/21-6/30)にしてます。

どなたか知恵を拝借させて下さい。
宜しくお願いします。

「(再)小さなホテルの予約表をエクセル関数」の質問画像

A 回答 (2件)

質問文中に書いてある列と画像中の列が違ったので、画像の方に合わせて書きます。


(ただし、「作りたい表」の方は、M1に「客室」、N1「6月1日」、M2「101」という感じにしてあります。)

101号室の6月1日に以下のように書いてください。

=IF(COUNTIFS($B:$B,"<="&N$1,$C:$C,">"&N$1,$K:$K,"="&$M2)>0,"●","")

これを103号室の6月10日までコピーします。
「COUNTIFS」関数で3つの条件に当てはまるセルの数を数えて、その件数が0じゃなかったら「●」を表示、と言う感じです。

6月11日以降は(もしこの通りのレイアウトで作成するなら)日付条件の「N$1」を「N$7」等のように列番号を変更してやる必要があります。

不明点がありましたら、質問してください。
すぐにお返事を出来るかわかりませんが、可能な限り説明します。
「(再)小さなホテルの予約表をエクセル関数」の回答画像1
    • good
    • 0
この回答へのお礼

rabbit_9999さんの貴重なお時間を割いて、丁寧に教えてくれて本当にありがとうございます(´;ω;`)
教えて頂いたやり方ですぐに出来ました(´;ω;`)ウッ…泣けるほど感動しました...
実際、関数の深追いまではできてないのですが、少しずつ時間かけて解読していきます。
少しの時間でできるなんて本当にすごいです。
また、本当にご親切にも質問も受付けてくれるということで、rabbit_9999さんみたいな上司をもった部下は幸せ者だと思います。
本当に貴重な時間と貴重な知識ありがとうございました。

お礼日時:2019/06/10 13:12

こんにちは!



やり方だけ・・・
↓の画像のように元データはSheet1にあり、Sheet2に表示するとします。

画像ではSheet2のB2セルに
=IF(COUNTIFS(Sheet1!$D$1:$D$100,Sheet2!$A2,Sheet1!$B$1:$B$100,">"&B$1,Sheet1!$A$1:$A$100,"<="&B$1),"●","")

という数式を入れフィルハンドルで列・行方向にコピーしています。

※ 同室の重複は考慮していません。m(_ _)m
「(再)小さなホテルの予約表をエクセル関数」の回答画像2
    • good
    • 0
この回答へのお礼

tom04さん!貴重なお時間をど素人用にちゃんとシート別参照まで迅速かつ丁寧に教えてくれてありがとうございます!
最初に回答頂けたアンサーさんのやり方で一旦は、見事成功したのですが、本番の実績ファイルに置き換えるとなかなか上手くいかず、
tom04さんのように追記することで本番まで出来ました( ;∀;)
私のレベルを考慮いただいて本当にありがとうございます、お陰様で助かりました!
tom04さんの貴重な時間と貴重な知識をありがとうございました。

お礼日時:2019/06/10 13:14

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