アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になります。
WINDOWS XP EXCELL2003
月度別に出勤日数を求めたいのですが

;現在
シート「日報」に
B列 日付   
C列 個人別ID番号

件数を求めるのに
N列 個人別ID番号
O列 氏名
P列 件数

P1に=COUNTIF($C$2:$C$5000,N2)
で件数のみを求めていました。

これを別シート「月別日数」で月度別に件数が出るようにしたいのですがどういうようにすればいいかご教示いただけませんか。

シートを追加して
シート「月別日数」
A列     個人別ID番号
B列          個人氏名
C列(4月)~N列(3月) 件数

宜しく御願いします。

A 回答 (7件)

>B列に入力されたもの A2=B2 ユーザー定義=m


>月別が分かりやすくするため
> B2=11/20 A2=11

B列には「=A2」と入力しているのでしょうか?
少なくともB列のデータがシリアル値になっていれば(上記の場合なら11/20と入力されているなら)、表示形式は気にする必要がありません。

3 ユーザー定義で「m」ではなく、セルに4~3と入力してユーザー定義で「0"月"」にしないといけないと思いますが・・・
 ユーザー定義 m を m"月" に変更しました。j1=11月 

ユーザー定義で「0"月"」の間違いですよね?
(m"月"ではすべて1月と表示されると思います)。
問題はここでも、表示形式ではなく、実際に「11」などと数字を直接入力していることです。

>=SUMPRODUCT((MONTH(日報!$B$2:$B$5000)=J$1)*(日報!
>$C$2:$C$5000=$A2))
> 0と表示されます。

「J$1」のセルの意味がよくわからないのですが、条件に一致する該当データがないことを示しています。

これまでの補足回答(数式の解説など)をよく見て、入力値と数式を再度チェックしてください。

この回答への補足

私のミスで大変ご迷惑掛けました。
うまくいかなかったのが判明しました。

ユーザー定義で「0"月"」の間違いですよね?
(m"月"ではすべて1月と表示されると思います)。
問題はここでも、表示形式ではなく、実際に「11」などと数字を直接入力していることです。

この部分で C2 に2009/4/1と入力して、ユーザー定義で m"年" にしていました。
これを C2 にただ単に 4 とし ユーザー定義を 0"月" にしたらばばっちり良かったです。

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

補足日時:2009/11/20 23:56
    • good
    • 0
この回答へのお礼

一部訂正してお詫びします。
この部分で C2 に2009/4/1と入力して、ユーザー定義で
     m"月" 「ここのところ年を月に」
にしていました。

大変ご迷惑掛けて申し訳ありません。
ご協力感謝します。
今後とも宜しく御願いします。

お礼日時:2009/11/21 00:10

>詳細は下記にします。


>シート 「日報」
>A 月  ユーザー定義 m    11
>B 日付 ユーザー定義 m 11/20
>C ID  ユーザー定義 文字列 001
>G 氏名            赤尾

B列の日付は「11/20」のように入力しているのですね(ユーザー定義で「m」の意味とA列の意味がよくわからないのですが)。

>シート 「月別日数」
>A ID
>B 氏名

B列の名前はVLOOKUP関数で表示できることはわかりますね。

>C ~ N  4~3 ユーザー定義 m

ユーザー定義で「m」ではなく、セルに4~3と入力してユーザー定義で「0"月"」にしないといけないと思いますが・・・

>C2に
>=SUMPRODUCT((MONTH(日報!$B$2:$B$5000)=C$1)*(日報!>$C$2:$C$5000=$A2))
>C2には何も反応しません。

何も反応しないとは「0」となることでしょうか?

参考までに数式の意味を説明すると、日報シートの$B$2:$B$5000セル(11/20のようにシリアル値で入力されている)の月が一覧表のC1セル(4のように入力されている)と等しく、かつ日報シートの$C$2:$C$5000がA2セルのIDと一致する組み合わせの数をカウントしています。

この回答への補足

大変お世話になります。
ご指導を深く感謝しています。 ご質問に下記のようにお答えします。

1 B列の日付は「11/20」のように入力しているのですね(ユーザー定義で「m」の意味とA列の意味がよくわからないのですが)。
 B列に入力されたもの A2=B2 ユーザー定義=m
月別が分かりやすくするため
 B2=11/20 A2=11
2 B列の名前はVLOOKUP関数で表示できることはわかりますね
 =設定!B2 でシート「設定」から取得しています。
3 ユーザー定義で「m」ではなく、セルに4~3と入力してユーザー定義で「0"月"」にしないといけないと思いますが・・・
 ユーザー定義 m を m"月" に変更しました。j1=11月 に
=SUMPRODUCT((MONTH(日報!$B$2:$B$5000)=J$1)*(日報!$C$2:$C$5000=$A2))
 0と表示されます。

補足日時:2009/11/20 21:39
    • good
    • 0
この回答へのお礼

いつもいつもお世話になります。

大変ご迷惑掛けて申し訳ありません。
ご協力感謝します。
今後とも宜しく御願いします。

お礼日時:2009/11/21 00:15

>「月別日数」C2に


=SUMPRODUCT((MONTH(月別日報!$B$2:$B$5000)=C$1)*(月別日報!$C$2:$C$5000=$A2))
を入れました。
その結果 循環参照 と 0 が表示されます。

参照するシートが間違えていませんか?
「月別日報」シートではなく、元データの「日報」シートを参照してください。

また、「月別日数シートのC2セルから4,5,6と数字が入力されており」の部分は「C1セルから・・・」の誤りです(ご自分で例示されたデータなのでお分かりかと思います)。

セル位置やデータの種類が例示のデータと違うなら、数式の意味を考えて、数式を適宜変更してください(数式がわからなかったらそのままのデータを例示してください)。

この回答への補足

詳細は下記にします。
シート 「日報」
A 月  ユーザー定義 m    11
B 日付 ユーザー定義 m 11/20
C ID  ユーザー定義 文字列 001
G 氏名            赤尾

シート 「月別日数」
A ID
B 氏名
C ~ N  4~3 ユーザー定義 m
C2に
=SUMPRODUCT((MONTH(日報!$B$2:$B$5000)=C$1)*(日報!$C$2:$C$5000=$A2))
C2には何も反応しません。
何がいけないでしょうか。
宜しく御願いします。

補足日時:2009/11/20 19:00
    • good
    • 0

やりたいことだけ書いて、基のデータの情況の説明が無いのではないか。

こちらの方がすごく大事です。
それに質問に模擬実例を挙げて説明できないのですか。
回答者の理解を助け、回答に使えるように心遣いすること。
質問者の頭の整理にもなるはず。
ーー
多分、下記のようなことかな。
例 4月シート
個人別ID 氏名 件数
111  山田  2
113  木村  5
115  鈴木  8
ーー
5月シート
個人別ID 氏名 件数
111  山田  6
113  木村  3
115  鈴木  4
118山下  11

6月シート
個6人別ID 氏名 件数
111  山田  9
113  木村  7
115  鈴木  6
119大西19
・・
以下略(実際は数字は全部半角)
ーー
シート 月別日数
個人別ID 氏名 4月 5月 6月・・以右略
111  山田  2    6  ・・以右略
113  木村  5    3 
115  鈴木  8    4   
・・・以下略
==
もしこういうものなら、
関数での、表の組み換えは複雑になる。
VBAでも使うのが適当と思うが。VBAでも色々なロジック(処理法)が考えられる。
==
月別日数シートに
A列  B列 C列  D列 E列・・
個人別ID氏名 4月  5月  6月(->各月原データシート名と一致させる)
111山田
113木村
115鈴木
118山下
119大西
・・・
を作る(とりあえず手作業)

C2セルに
=INDIRECT(C$1&"!C"&MATCH($A2,INDIRECT(C$1&"!$A$1:$A$100"),0))
と入れて式を「横方向と、縦方向とに複写する。
$の付け所に最新の注意を払うこと。
ーーー
結果
個人別ID氏名4月5月6月
111山田269
113木村537
115鈴木846
118山下#N/A11#N/A
119大西#N/A#N/A19
#N/Aの表示防止は、IF文でエラーの場合は空白を返す、をかぶせる。
=IF(ISERROR(上記C2の式),"",(C2の式))

この回答への補足

=INDIRECT(C$1&"!C"&MATCH($A2,INDIRECT(C$1&"!$A$1:$A$100"),0))
の式をC2に入れました。
#REF! と出ます。
困りました。
再度ご指導いただけませんか。

#N/Aの表示防止は、IF文でエラーの場合は空白を返す、をかぶせる。
=IF(ISERROR(上記C2の式),"",(C2の式))
も色々してみましたが上手くゆきません。
#N/Aの表示防止は、IF文でエラーの場合は空白を返す、をかぶせる。
下記が1例です。
=IF(=IF"",",(INDIRECT(C$1&"!C"&MATCH),($A2,INDIRECT(C$1&"!$A$1:$A$100"),0)))

補足日時:2009/11/20 16:54
    • good
    • 0

シート「日報」のM列に式を設定した場合は


=CountIf(日報!$M$2:$M$5000, C$1 & "," & $A2)
になります。
また、シート「月別日数」のセルC1には「4」を入れてください。

この回答への補足

うまくできました。
有難うございました。

補足日時:2009/11/20 17:03
    • good
    • 0
この回答へのお礼

ご協力感謝します。
今後とも宜しく御願いします。

お礼日時:2009/11/21 00:11

元データがSheet1にあるなら、「月別日数」シートのC2セルから4,5,6と数字が入力されており(セルの表示形式で「0"月"」)A2セル以下に個人別ID番号が入力されているなら、C2セルに以下の式を入力して、右方向および下方向にオートフィルします。



=SUMPRODUCT((MONTH(Sheet1!$B$2:$B$5000)=C$1)*(Sheet1!$C$2:$C$5000=$A2))

この回答への補足

「月別日数」C2に
=SUMPRODUCT((MONTH(月別日報!$B$2:$B$5000)=C$1)*(月別日報!$C$2:$C$5000=$A2))
を入れました。
その結果 循環参照 と 0 が表示されます。

補足日時:2009/11/20 14:01
    • good
    • 0

シート「日報」のD列に


=Month(B2) & "," & N2
を追加。
シート「月別日数」のC列(4月)~N列(3月)に
=CountIf($D$2:$D$5000, C$1 & "," & $A2)
を設定する。

この回答への補足

一部アレンジで
シート「日報」 M2に
=Month(B2) & "," & C2
を入れる。
B2=4/01 C2=001
で 4,001 と出ました。

シート「月別日数」のC列(4月)
C2 に
=CountIf($D$2:$D$5000, C$1 & "," & $A2)
を入れましたが何も反応しません。

何か私に問題がありますか。
もし良ければ再度ご指導いただけませんか。

補足日時:2009/11/20 12:32
    • good
    • 0

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