dポイントプレゼントキャンペーン実施中!

エクセル2003にて,宿泊予約のリストを作成しております.
ワークシートに添付画像のような表を作成し,動かしております.

各部屋番号の行を2行ずつとし,上段にチェックイン/アウトの日を記入,下段に宿泊者名を記入します.宿泊日が連泊となる場合は,宿泊者名のセルを宿泊期間分だけ結合させて使用しております.

また,最終行に該当日のチェックイン数,チェックアウト数をカウントさせ,集計しております.
ここはCOUNTIF関数にて解決しております.本来は該当セルのみとしたいのですが,範囲指定のため,宿泊者名のセルも含んでおります.


ここでさらに発展させるため,当日の宿泊者総数(チェックアウトも含む)を算出させようと思うのですが,COUNTA関数の場合,結合セルについては,入力したセルのみを有効として計算するため,他の結合された部分については,空白として算出されてしまいます.

空白と扱われるセルについても,有効となるようにカウントするには,どのようにしたらよろしいでしょうか?
また,別法でも可能でしたら,あわせて教えていただけるとありがたいです.

よろしくおねがいします.

「エクセルで結合したセルにおいて,結合した」の質問画像

A 回答 (4件)

結合セルを数えることはできないでしょう。

表自体を改良してINとOUTの間のセルにはーの記号を入れてはどうでしょう。これなら表も見やすくなるのではと思いますね。
そのようにすることでIN数、OUT数を求めているわけですから、それにさらにCOUNTIF(B4:B8,"-")のような式で求めた数をプラスすればよいでしょう。
    • good
    • 1
この回答へのお礼

回答ありがとうございます.
なるほど,連泊中には「-」を用いることで,空欄は空室とすることができますね.
居室の上段でカウントするという発想は今まで考えつきませんでした.スッキリと解決できそうです.ありがとうございました.

お礼日時:2009/12/14 01:02

No.2です。



No.1の回答の、INとOUTの間のセルに「-」を入れるに1票。
作業行、作業列を使えば、今の見た目のままでも対応可能ですが、「-」を入れる方法はシンプルで良いです。

B12には、=SUMPRODUCT((MOD(ROW(B4:B8),2)=0)*(B4:B8<>""))
と、入れて4・6・8と2行おきのセルの空白では無い数をカウントすればよいかと。
    • good
    • 0

結合したセルを数えるのではありませんがINがあってOUTが必ずあることを利用すれば計算できますね。


1日目はスタートのときで例えば太郎でしたら前の月にINがありましたね。しかし、1日目だけはB4セルに太郎と入力することになります。1日目ではそれを利用して計算し、その後は別の計算をします。
したがってB12セルには次の式を入力します。
=COUNTA(B4:B9)-(B10+B11)
C12セルには次の式を入力し右横方向にオートフィルドラッグします。
=IF(C2="","",B12+C10-B11)
    • good
    • 0

同一日に同じ部屋にチェックアウト/チェックインが有った場合どうするんですか?


朝、太郎がチェックアウト。夜、花子がチェックインの様な場合です。
宿泊者総数は1?2?

この回答への補足

言葉足らずでした.
同日の重複はありません.1日1人限定となりますので,チェックアウト後のチェックインは翌日まで無いものとして考えます.

補足日時:2009/12/10 22:35
    • good
    • 0

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

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