• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:指定文字を除く曜日別のカウント)

除外曜日以外の曜日別カウント

このQ&Aのポイント
  • WIN7 EXCELL2010を使用して、指定文字を除く曜日別のカウントを行いたいです。
  • 対象範囲はI13からAM12までで、A~Fの文字を手入力します。
  • 特定の曜日の就業日数を計算し、有休や公休の休みを除外した純粋な就業数を求めたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>この関数に対して、少なすぎる引数入力されています。 失礼しました。かっこが余計な部分がありました。 =SUM(COUNTIFS($I13:$AM13,{"A","B","C","D"},$I$12:$AM$12,AR$12)) 数式の意味は、{"A","B","C","D"}の配列定数で4つの値をそれぞれ検索して最後に合計する数式になっていますが、それ以外は通常のCOUNTIFS関数と同じです(AR12はセル参照しているだけです)。

dorasuke
質問者

お礼

再度の御指導をありがとうございました。 上手くできました。 感謝感激です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

参考までに、Excel2007以降のバージョンなら使用できる計算負荷の少ないお勧めの方法です。 I13:AM13にA ~ D の文字が入力されていて、その12行目の曜日がAR12セルと同じ場合の数をカウントをしたいなら、単純に以下の数式をAR13セルに入力して右方向および下方向にオートフィルしてください。 =SUM(COUNTIFS($I13:$AM13,{"A","B","C","D"},($I$12:$AM$12,AR$12))

dorasuke
質問者

補足

御指導ありがとうございます。 期待を込めて試させていただきましたが =SUM(COUNTIFS($I13:$AM13,{"A","B","C","D"},($I$12:$AM$12,AR$12)) 下記のようなコーションが出ました。 私なりに考えましたが駄目でした。 この関数に対して、少なすぎる引数入力されています。 AR12 = 日 です 再度御指導いただけませんか。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

>AR13 には *AV13は「2」となります。 =SUMPRODUCT(($I$12:$AM$12="日")*(I13:AM13<>"")) 上記の数式は12行目に「日」と入力されていて、13行目が空白以外の(A~Fが入力された)セルの個数を集計しています。 この部分をE,F以外のA~Dが入力されたセルに限定したいということなら、以下のように数式を変更してください。 =SUMPRODUCT(($I$12:$AM$12="日")*(I13:AM13<>"")*(I13:AM13>"E")) #上記の数式は、提示されている計算負荷の高い数式(参照形式も複合参照にする必要があるのでは?)をそのまま修正したものですので、実際の運用上からはあまり合理的な数式ではないかもしれません。 このようなケースでは、COUNTIFS関数を使えば、計算負荷も少ない効率的な数式ができそうです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBAで結合セルなどの色が一部消えません

    色を付けてある結合セルセルが一部消えません。下のはマクロ記録してそのまま使っているものですが、なぜ消えないのか分かりません。 ちょっとたくさんありすぎてゴチャゴチャしていて恐縮ですが、消えない部分は。 AM42:AO43,AR42:AX43,BD42:BJ43,F45:T46,V45:AJ46の部分です。 使用上のクセとかなんかあるんでしょうか? Union(Range( _ "F57:T58,V57:AJ58,AM57:AO58,AR57:AX58,BD57:BJ58,F60:T61,V60:AJ61,AM60:AO61,AR60:AX61,BD60:BJ61,AV7:BC8,AU9:BC10,D16:AC17,G18:H19,O22:P23,W24:AE25,R32:AV34,F42:T43,V42:AJ43,AM42:AO43,AR42:AX43,BD42:BJ43,F45:T46,V45:AJ46,AM45:AO46,AR45:AX46,BD45:BJ46,F48:T49" _ ), Range( _ "F51:T52,V51:AJ52,AM51:AO52,AR51:AX52,BD51:BJ52,F54:T55,V54:AJ55,AM54:AO55,AR54:AX55,BD54:BJ55" _ )).Select Range("BD60").Activate Union(Range( _ "F57:T58,V57:AJ58,AM57:AO58,AR57:AX58,BD57:BJ58,F60:T61,V60:AJ61,AM60:AO61,AR60:AX61,BD60:BJ61,G65:T66,AM65:AO66,BD65:BJ66,G69:T70,AM69:AO70,BD69:BJ70,BB76:BJ78,AI80:AM81,AV7:BC8,AU9:BC10,D16:AC17,G18:H19,O22:P23,W24:AE25,R32:AV34,F42:T43,V42:AJ43" _ ), Range( _ "AM45:AO46,AR45:AX46,BD45:BJ46,F48:T49,V48:AJ49,AM48:AO49,AR48:AX49,BD48:BJ49,F51:T52,V51:AJ52,AM51:AO52,AR51:AX52,BD51:BJ52,F54:T55,V54:AJ55,AM54:AO55,AR54:AX55,BD54:BJ55" _ )).Select Range("AI80").Activate Selection.Interior.ColorIndex = xlNone

  • 文字列を時刻に変換

    先日、下記のリンク先で作業時間の関数を教えていただきました。 <http://okwave.jp/qa/q9023764.html> ただ、A列、B列が文字列のため、下記の関数をC6(ユーザー定義の[h]:mm:ss)に入れると空白なってしまいました。 試にA列、B列を時刻に変換すると作業時間が表示されたのですが、 一括で文字列から時刻に変換する方法はありますでしょうか? 行が5,000行くらいあって、書式設定で変更後、F2を押下するのはつらいので。。。 また、他にも良い方法があれば教えていただければと思います。 どうぞよろしくお願いいたします。 【作業時間を計算する関数】 =IF(COUNT($AQ$2:$AS$3,$AO11,$AP11)=8,IF(AND($AO11>1,$AP11>$AO11,COUNTIF($AQ$2:$AS$2,">0")=3,COUNTIF($AQ$2:$AS$2,"<=1")=3,$AQ$2<$AQ$3,$AR$2<$AR$3,$AS$2<$AS$3),(MIN($AP11-INT($AO11),$AQ$2)-$AO11+INT($AO11))*($AO11-INT($AO11)<$AQ$2)+(MIN($AP11-INT($AO11),$AR$2)-MAX($AO11-INT($AO11),$AQ$3))*($AO11-INT($AO11)<$AR$2)*($AP11-INT($AO11)>$AQ$3)+(MIN($AP11-INT($AO11),$AS$2)-MAX($AO11-INT($AO11),$AR$3))*($AO11-INT($AO11)<$AS$2)*($AP11-INT($AO11)>$AR$3)+($AP11-INT($AO11)-MAX($AO11-INT($AO11),$AS$3))*($AP11-INT($AO11)>$AS$3),""),"")

  • Rangeマクロのオブジェクトの記載について

    初歩的な質問で恥ずかしいですが、Rangeのオブジェクトが長いので3行ぐらいにしたいのですが、 Range("AA5:AD5,AP25:BC25,AD26:BC26,AM28:AX28,AM30:AX30,AO50:AY50,AK52:AX53,T56:AB56,N62:U62,I64:U64,K71:U71,AB71:AM71,I72:M72,T80").Select

  • この関数の意味を教えてください

    「AO8」のセルに下記の数式が入っています。 「K8」のセルに「1000」と入力、「AM8」のセルと「AR8」のセルに「50」と入力すると「AO8」の数式の結果は私が求めている値になるのですが、「K8」のセルに「482.9」と入力、「AM8」のセルに「50」と入力、「AR8」のセルに「238」と入力すると、私が求めている値になりません。 結果は「247.5」と表示されます。 私が求めている値は「194.9」です。 「K8」-「AM8」-「AR8」の値が300未満の時はそのままその数値を表示して欲しいのです。 どう直せばいいのでしょうか? =IF((SUM(AM8+AR8)=0)," ",(IF(400<=K8,(IF(((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)<=150,((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2)+150,((K8-AM8-AR8-(ROUNDUP(((K8-AM8-AR8)/300-1),0)*300))/2))),K8-AM8-AR8)))

  • 退職時有休消化の際の公休について

    私の会社は土曜休みではなくその分をほかの平日(←これを公休と呼んでいます)に取っています。(就業規則に「休日:日曜、祝日、その他週1日」と記載あり) 今回退職するにあたり、有休消化を一ヶ月ほどすることになります。その際、その計算のなかに公休を含んだのですが、総務から「こういう場合(まとめて消化)は、公休は発生しません。公休というものはきちんと出勤した場合(週5日働いた者)に発生するものだ!したがって、日曜を除く週6日は有休で計算してください。」と言われました。就業規則から読み取れなかったので「どうしてそうなるのですか?」と聞いたところの回答が「記載はありませんが、通例でそうなってます。」という釈然としないものでした。 私はどうしても納得できないのですが、会社の言ってることが正しいのでしょうか?

  • 別のシートにデータを分けて並べるには

    このような訪問予定表をつくっています。 [D]は営業所で[E]は顧客IDです。 [A] [B] [C]  [D] [E] 1]1/1 AM     渋谷 a 2]1/2 AM 10:00 新宿 b 3]1/1 AM 11:00 銀座 c 4]1/2 PM    銀座 d 5]1/1 PM 13:00 新宿 e 6]1/1 PM    新宿 f 7]1/2 AM  9:00 渋谷 g 8]1/2 AM    新宿 h 9]1/2 AM  9:00 新宿 i これを今までは手作業で、以下のSheet2に移行していました。 [I]列までしかありませんが、15日分が右方向にに連続しています。 見苦しいですが、A列は営業所名、B・D列は時刻、C・E列は顧客IDです。 __[A]_[B]_[C]_[D]_[E]_[F]_[G]_[H]_[I]_ 1]__|__ 12/1 ___|_ 12/2_|____ 2]__| AM _|PM___|AM____|PM___ 3]新宿|____|13:00_e|___ h |____ 4]__|____|___ f|10:00  b |____ 5]__|____|____| 9:00  i |____ 6]__|____|____|_____|____ 8]銀座|11:00 c|____|_____|__ d_ 9]__|____|____|_____|____ 10]__|____|____|_____|____ 11]__|____|____|_____| 14]渋谷|__ a |____| 9:00  g | (以下省略) これを関数や、VBAで簡単にする方法はないでしょうか? 環境はExcel2000です。わたしはVBAはまだ初心者です。

  • excel vba 2000 rangeの範囲指定でGlobalエラー

    はじめて質問させていただきます。 excel 2000のvbaでRange("B:C,D:E,F:G,H:I,J:K,L:M,P:Q,T:U,V:W,Z:AA,AB:AC,AD:AE,AF:AG,AL:AM,AN:AO,AP:AQ,AR:AS,AT:AU,AV:AW,AX:AY,AZ:BA,BB:BC,BD:BE,BF:BG,BH:BI,BL:BM,BN:BO,BP:BQ,BR:BS,BT:BU,BV:BW,BX:BY,BZ:CA,CB:CC,CD:CE,CF:CG,CH:CI,CJ:CK,CL:CM,CN:CO,CP:CQ,CR:CS,CT:CU,CV:CW,DB:DC,DD:DE").Select のように非常に長い文字列で範囲を指定した場合、「Rangeメソッド失敗'_Global'オブジェクト」というようなメッセージが出ます。 最後のDD:DEをやめたり、連続する列をまとめるとエラーになりません。 どうも文字列に制限があるように思いますが、回避方法をご存知の方ご教示ください。

  • COUNTIF 関数について

    エクセル関数(COUNTIF)を教えてください    例題   勤務  氏名 1 日勤   A 2 日勤   B 3 公休   C 4 特休   D 5 日勤   E 6 年休   F 7 日勤   G 8 公休   H 9 日勤   I 10 特休   J A列に勤務、B列に氏名が入力されています 質問の関数でCOUNTIF(A5:A10、"日勤”)ですが ”E”さんの位置より後に”日勤”が何人いるかをカウントしたい 計算式のA5の値を自動的に判別した計算式にしたい(Eさんの位置が変動するためにA5が固定できないためです) 以上よろしくお願いいたします

  • C++の打切り誤差についてお聞きしたいのですが・・

    ↓のプログラムが、なぜ実行結果のsumが1ではなく1.000054や9.99999999999906e-001、9.9999999999990619e-001といった答えにになってしまうのでしょうか? 10000のところを512でやった場合は普通に1と出力されたのに・・・ #include <stdio.h> int main(void){ int i; float f; double d; f = 0.0; for(i = 0; i<10000; i++) { f += 1.0/10000; } printf("float: n=%d sum=%f\n", 10000, f); d = 0.0; for(i = 0; i<10000; i++) { d += 1.0/10000; }// end for printf("double:16.14e: n=%d sum=%16.14e\n", 10000, d); printf("double:18.16e: n=%d sum=%18.16e\n", 10000, d); return 0; } 実行結果 float: n=10000 sum=1.000054 double:16.14e: n=10000 sum=9.99999999999906e-001 double:18.16e: n=10000 sum=9.9999999999990619e-001 続行するには何かキーを押してください . . .

  • 他Bookへの抽出

    お世話になります。 開いているBook1からデータを抽出し、Book2へコピーしたいのですが、AdvancedFilterでエラーが出てしまいます。 何がまずいのかよくわかりません。 お分かりになる方、ご教授願います。 Private Sub Worksheet_Activate() Set myTbl = Workbooks("Book1.xls").Worksheets("Sheet1").Range("myTbl") Set myQry = Workbooks("Book2.xls").Worksheets("抽出条件").Range("A_抽出条件") Set sakiRng = Workbooks("Book2.xls").Worksheets("A").Range("A3:AR3") myTbl.AdvancedFilter xlFilterCopy, myQry, sakiRng ←ここでエラーになります。 Dim rw As Long '入力最終行 rw = Range("I65536").End(xlUp).Row With Application Range("I" & rw + 1) = .Sum(Range("I1:I" & rw)) Range("AO" & rw + 1) = .SumIf(Range("AP1:AP" & rw), "済", Range("AO1:AO" & rw)) Range("AQ" & rw + 1) = .Sum(Range("AQ1:AQ" & rw)) End With End Sub

このQ&Aのポイント
  • ブラザー製品のbrother dcp-j925nを無線でインストールしようとするもできない悩みです。
  • Windows10を使用している環境で、無線LANで接続しようとしています。
  • 関連するソフト・アプリは特にありません。ひかり回線を使用しています。
回答を見る

専門家に質問してみよう