ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュの日数の取得

  • mixiチェック
  • このエントリーをはてなブックマークに追加
お世話になってます
教えてください。
エクセルで勤務表を作っています
A3〜AF3のセルに日付を入力していく横長のカレンダーで
最後に勤務日数を計算するための計算式をいれるのですが
この計算に使う期間が
月の前半と後半と全体の3種類あります
前半にあたる日数は
月ごとに1日〜12日までだったり
1日〜15日までだったりまちまちで
後半もその通りです
また月によって30日までのとき、31日までのときと
設定が変わるので
毎月この期間の指定を訂正する作業が大変です

指定した日数の範囲から指定した文字の数を数えるので
COUNTIF関数を組み込んでいますが

この日数の変動を簡単に反映する方法が何かないでしょうか?

コメント(13)

具体的に、現在どのようにしていて何が問題(何に困っている)なのが提示できますでしょうか。
>派遣切りさん
>よっちゃんさん

コメントありがとうございます

困っている点は
COUNTIF関数で指定する「範囲」が毎月変動することです
8月はA1:A12 9月はA1:A15というようにです

勤務表のため、全員分を書き換える作業になり
人数も多いので
間違いがおきます

この「範囲」をA1:A12 という書き方以外で指定する方法はないでしょうか

できれば
あるセルに8月1日 となりのセルに8月12日と入力してそれを参照して
範囲として使用できるようなものをイメージしています

INDIRECT関数とか?

たとえば1〜12日を対象としたい場合、
開始日 D1=1
終了日 E1=12
と入力して下記の式をどこか適当なところに入力すればできるはず。

COUNTIF(INDIRECT("A"&D1&":A"&E1),"検索したい文字")
>Yujinさん
ありがとうございます。
indirect関数を探してみたところ、参照文字列、参照形式の入力をするBOXが出てきました
開始日、終了日というのは・・・別の関数でしょうか?
すみません。もう少し教えていただけますか?

それから説明がわかりにくいと思いましたので
書き直します
すみません。よろしくお願いします。

作業の内容ですが
1週間の日付が1行目に入力されています
例えば1日 2日 3日・・・7日までです
その下の2行目に
休みだった日のところだけ"休"という文字が入力されています
"休"と書いていないセルは空白のままになっています
この休という文字の数を数えたいのですが
数える期間が月によって様々
8月は1週間が7日の設定になっているけれど
9月は1週間が5日間の設定になっている

という感じです

だから8月はA1〜A7を範囲に"休"を数える設定になっていた
COUNTIF関数をそのまま9月に適用できないので
またCOUNTIF関数を入力し直しています
これが結構複雑で直す箇所も多くて間違ってしまうのですが

何かいい方法はないでしょうか。


トピたてした
上の質問と比べると全く内容が違って見えますね・・・・
説明が下手でごめんなさい

回答お願いします!お待ちしてます!
>COUNTIF関数をそのまま9月に適用できないので
大は小を兼ねないのですか?
一行に一週間ということですので、7列の範囲を対象にCOUNTIF
で数えて、対象が5列になっても、残りの2列に余分に"休"がなければ
問題ないはずでは?

>上の質問と比べると全く内容が違って見えますね・・・・
この繰り返しにならなければよいのですが…
たーちゃんさんが使われている実際の式はどんな感じで、
どんなことが起こって困っているのでしょう。

>2
でもズバリ指摘されていることですが…
5 たーちゃん
書式を文章で説明するのは大変だし、読むのも大変ですよ。
作った書式のエクセルをハードコピーして、写真で貼り付けるのが判りやすいと思いますよ。

>>9月は1週間が5日間の設定になっている

それにコレ、全然判りません。
なぜ一般的な"1週間が7日間"が適用されないんですか?
その説明がなければ、今後4日間があるのかもと心配しなければなりませんよ。
他と違いのある例外があるのならば、その説明がなければアドバイスできませんよ。
 
みなさんすみません

数式を書いてみますが、どうでしょうか

AR9+countif(j9:u9,"公")

AS9+countif(j9:u9,"特")

AX11+countif(j9:AN9,"公")-AR9

こういった内容の数式が12種類くらいありまして
関数はcountifしか使用していないのですが

countif関数で使用している「範囲」のj9:u9の部分が
その月によって変ってしまいます
月31日の計算をするのですが、前半部分と後半部分にわけて数える必要があり
前半、後半の区切りが毎月違う日になるからです

8月は前半が1日〜12日まで後半が13日〜30日までですが
9月は前半が1日〜15日まで後半が16日〜31日になります
10月はまた違います・・・毎月変ります

これを毎月手作業で直しているのですが
間違ってしまいますので(直す箇所が多いため)
何かいい方法はないかと思いまして・・・


根本的に、(会社によらず)
8月は31日まであって、
9月は30日までしかないのですが…
>前半、後半の区切りが毎月違う日になるからです

それはどんなルール(条件)で決定されるのでしょうか?具体例ではなくて日本語レベルの条件式に表せない限り関数化もできません。

誰かの一存とかだったら(笑)毎回手作業で当然ですが。


毎月の末日が変わるのとか休日の計算とか、むしろ素直に日付関数で毎月毎のシートでも作った方が問題解決が早いようにも思いますけど。
>みなさん
すみません。表自体が大きすぎて
画像として貼ってもよくわからず・・・
どうしても説明しきれなかったのですが
OFFSET関数というのを見つけました
これで対応できそうな気がしますので、チャレンジしてみている最中です

 >るみんさん
 前半、後半の区切りは「誰かの一存」に近いレベルで
 パターンが不規則です・・・


 >ゆーーけさん
 すみません。統一して質問しないとダメですね
 勤務表なので、5のときには最初の1人目の枠を見ながら書き
 今回は2人目の枠を見ながら書いてしまいました。
 すみません・・・


混乱させるだけで、終わってしまったようで申し訳ありません。
後の人の参考にもならないかと思うので
しばらくしたらトピも削除しようかと思います
もっと上手に質問できるように
そこから勉強しなおしたいと思います
理解しようと努力してくださった皆さん、本当にありがとうございました
いろいろ提示していただいたおかげで
糸口がつかめました
ありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。