• ベストアンサー

2つのセルの内、どちらかg日数の計算

カレンダーで表を作成。 1行のセルには 1(A3)1(B3)2(c3)2(d3)3(E3)3(f3)と順に入力)。 その行下に AM(A5)PM(B6)AM(c7)PM(D8)AM(E9)PM(F10)を入力しています。 AM、PM、両方勤務の場合があり、2(時間)または3(時間)が入力されます。 AMPM両方勤務も1日カウント、AMまたはPMのどちらかでも、1日カウントできるようにしたい。 1行増やすことで作成はしております。 IF(AND(A6="",B6=""),"","○") A7 B7は結合して"○"を入力しています。 COUNTIF(C7:J7,"○") 1行増やさないでカウントする方法は可能でしょうか。 よろしくお願いします。

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

  • ベストアンサー
回答No.4

まずそのような関数はないと思いますので、関数を組み合わせるしかありません。 質問にあるCOUNTIFの範囲がC7:J7となっていますが、A7:J7の間違いでしょうか? A7:J7であれば、ひとつの枠の日数は5日分と判断しました。 また、入力値が2または3という点が今後変わらなければ次の関数でいけると思います。 =LEN(SUBSTITUTE(A6+B6 & C6+D6 & E6+F6 & G6+H6 & I6+J6,"0","")) それぞれのペアになっているAMとPMは普通に加算し、それらを文字列で結合します。すると5文字の数字だけでできた文字列が得られます。 (入力値は2か3なので、合計が二桁になることはありません。よって確実に5文字です。) セルが未入力の場合は0として加算されるので、AM/PM両方が未入力の場合の合計は0となり、文字列も"0"になります。 5文字の文字列から"0"を除外し、残った文字列の長さが、出勤日数となります。 数字以外の文字を入力したり、合計が二桁になるような場合はうまく動かなくなりますが、一応目的のものができたので回答を挙げておきます。 日数の違い等は適宜修正してください。

gorugo48
質問者

お礼

Wizard_Zero様 お返事遅くなりました。 早速のご回答ありがとうございます。 質問がいわれるように間違っておりました。 AM(A5)PM(B5)AM(c5)PM(D5)AM(E5)PM(F5) C7:J7となっていますが、A7:J7の間違いです。 申し訳ありませんでした。 回答の件ですが、文字列結合(&)はなるほど! 理想の表が出来そうです。 ありがとうございました。

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

その他の回答 (4)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

No.2です。 関数を組み合わせて強引に答えを出すよりも、作業セルを使用して簡単な関数で答えを出した方が間違いがなく、判り易いので後々のメンテナンス性も上がって便利な場合が多々あります。 今回はまさにそのパターンの様に思えます。 現在、作業行を使って実現できているのですからそのままが良いでしょう。 見た目がいやなら、作業行を非表示にすれば良いだけですから。 また、画像はプリントスクリーンした物をペイントで切り取ってJpegで保存した物です。 ↓をご参照ください http://vcl.vaio.sony.co.jp/glossary/links/S0409250018060/internet-jp.html

gorugo48
質問者

お礼

ご回答ありがとうございます。 行が多くなりますが、判り易いほうがいいですね。 いろいろまた、考えてみます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

No.2です。 画像の状態とは違うみたいですね。 できれば画像でもいいので実例が欲しいです。

全文を見る
すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

現在、画像の様な状態で、7行目を作りたくない……と理解しました。合っていますか? 作業行を使いたくない理由が良く判りません。 7行目を非表示にして隠すだけでは駄目なのですか?

gorugo48
質問者

補足

早速の回答ありがとうございます。 添付されました画像のとおりです。 1列に勤務者名があり、30名いますので、各1名で1行増えますと、行が多くなり、少ない行で作成を考えています。 ※このように質問欄にエクセル表を添付する方法もお教えください。

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

>1(A3)1(B3)2(c3)2(d3)3(E3)3(f3)と順に入力)。 は日付の日の部分か A5には同じ区日付が入るのか。 実例をもう少し詳しく書くこと。 下記のような例はかけないのか。 1 1 2 2 3 3 4 4 AM PM AM PM AM PM AM PM 2 ー 2 3 ー ー ー 3 ー 2 ー 3 ー 2 2 3 ーは空白セルを示す。 ーー 関数ではとりあえず複雑そうなのでVBAでユーザー関数を作って見た・ VBE画面の標準モジュールに Function ns(a) i = a.Row 'MsgBox i r = Range("IV3").End(xlToLeft).Column 'MsgBox r k = 0 For j = 1 To r Step 2 If Cells(i, j) <> "" Or Cells(i, j + 1) <> "" Then k = k + 1 End If Next j ns = k End Function を入れる。 シートで第5行の空き列に =ns(A5) と入れて下方向に式複写。 私が例に示した2人分で 結果 第5行 3 第6行 4

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

関連するQ&A

  • 2重条件付きセル数のカウントについて

    A1~D5セルに日付データが入力され、E1~E5セルにその行の担当者(a,b,c等重複あり)が記入されています。この場合、A1~D10セル全体で条件付き(当日以前の日付)セル数のカウントは=COUNTIF(A1:D5,&(TODAI()))で求めることができましたが担当者別(行毎)に求めることが可能でしょうか。なお表は下記のようになっています。 A   B   C   D  E 1 4/06 6/10 3/15 8/12 a 2 6/12 2/25 6/19 9/12 b 3 5/10 5/15 3/3 6/10 C 4 3/03 2/10 2/6 8/10 a 5 7/10 12/1 7/7 9/03 C 当日が4月20日の場合、 担当者aの場合カウント数5 担当者bの場合カウント数1を求めたいのですがよろしくお願い致します。OSはウインドウズ2000です。

  • エクセルでの行数カウント

    エクセルで A列 B列 1行 ●1 C ⇒カウント 2行 X1 D  3行 ●2 E 4行 X2 F 5行 ●3 C ⇒カウント 6行 ●4 D 7行 X3 E A列で「●」を含み、なおかつB列で「C」である行の数(例でいうと「2」)を求める 数式を教えてください。 ちなみに A列 B列 1行 ● C ⇒カウント 2行 X1 D  3行 ● E 4行 X2 F 5行 ● C ⇒カウント 6行 ● D 7行 X3 E であればA列が全く「●」に等しいものでカウントする場合は、下記の関数で計算できます。 {=SUM(IF(B1:B7="C",IF(A1:A7="●",1,0)))} COUNTIF関数では、"●*"のように「任意の文字」を指定することが可能ですが、IF関数の 中ではできないようです。

  • 勤務表の計算式で困っています

    勤務表で A列に日付 B列に曜日 ---------- Xさん C列 出勤は◎ 休みは空欄 D列 D1=IF(C1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- Yさん E列 出勤は◎ 休みは空欄  F列 F1=IF(E1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- Zさん G列 出勤は◎ 休みは空欄 H列 H1=IF(G1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") ---------- といった表での計算式につきまして 日付行の例えば1日(A1行)の出勤が 3名出勤の場合 C1◎E1◎G1◎となり D1F1H1にはそれぞれ「3」と出力 2日(A2行)の出勤が Xさん1名の場合 C2◎ 、E2と G2 は空白となり D2には「1」と出力 F2H2は空白 とさせる場合 D1セルの計算式を =IF(C1=0,"",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") としていますが計算式エラーとなり数字だけ残って表示されてしまう場合があります その場合には下記の式に書き換えると表示が消えることもあるのですが =IF(C1="","",COUNTIF(C1,"◎")+COUNTIF(E1,"◎")+COUNTIF(G1,"◎") 毎回手作業でエラーを見つけて式を入れなおしています 計算式が違うのか根本が間違っているのか改善策をご教授ください ◎自体は別シートの方から参照コピーしております

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • 空白セルを計算しないようにしたい

    エクセルで例えばB20のセルに「=COUNTIF(A1:A20,(A20))」と式を入力しました。 A20に入力した言葉が、A列に何回出てきたか、その数をB20に表示する式ですが、 A20が空白の場合もカウントしてしまいます。 A20が空白の場合はカウントしない(または表示しない・見えない)ようにするには どういう式を組み込めばよろしいのでしょうか。

  • 数式が入ったセルで値がないときは詰めたい

    いつもお世話になります。 WINDOWS7 EXCELL2010です。 今回ご指導を戴きたいのは赤枠内です。 A Bは手入力します。 その結果、C D E Fの各列には下記の数式で表示されます。 例えば、 E5 E8 E9 の各列のように空白が出るので「見易く」 したいため詰めるのにどんな関数を入れればできますか。 添付画像で各列の説明です A 手入力 B 手入力 C =IF($B2="","",VLOOKUP($B2,一覧表!$A$2:$B$20,2,FALSE)) D =IF(COUNTIF($B$2:B2,B2)=1,ROW(B1),"") E =IF(K2="","",C2) F =IF(L2="","",COUNTIF($C$2:$C$19,"*"&C2&"*")) どうかよろしくお願いします。

  • EXCELでの出勤日数の計算(統合セルを含む)

    EXCELで勤怠管理を行っております。 添付の画像の通り、E5,E6の合計をF5(統合セル)で集計しています。 C20の出勤日数の合計を自動計算したいと思っておりますが、オレンジ のセルにどのような数式を入れればよろしいでしょうか? 以下の数式を試しましたが、統合セルのためか正しく計算されませんでした。 =COUNTIF(F5:F17,"<>0:00") 各日に上段、下段と2つのセルがあり、上段のみに出勤、退勤を入力をすることもあれば、上段のみの場合もあります。F列の統合セルを集計すれば出勤日数をカウントできると思うのですが… お手数ですが、よろしくおねがいします。

  • この場合の関数を教えてください。IF関数とCOUNTIF関数?

      A      B    C  D  F  G 1 12300 2 9800 3 14500 上記の様な表($a$1:$d$3) がある時、 B1 ◎      D1 △   F1◎     C2◎         F2△ B3△      D3◎ F1 に◎を入れた時に、 もし、A列の値が10000より大きいなら(注)、範囲$a$1:$d$3の◎の数を数え結果をG1に2と表示させたいです。(F2に△と入れたら2と表示) (注) 1行目は、12300(A1)なので1行目はカウントの範囲。 2行目は、9800で10000より小さいのでカウントの範囲から外れる。 3行目は、14500はカウントの範囲。 2行目の◎(C2)はカウントされないようにするには、 G1にどのようなCOUNTIFの関数を入れればよいのでしょうか? いつも教えているので、考えたのですが? =IF(A1>10000,COUNTIF($B$1:$D$3,F1),"0")では、間違いとは気づいたのですが? (A1>10000が間違い)どの様にして良いか解りません。 どなたか教えてください。宜しくお願いいたします。 (見にくい表で申し訳ありません)

  • エクセルで計算が出来ません。

    エクセルで表を作成し平均値を出したいのですがどうしても出来ません。教えてください。   A    B   C   D   E   F(合計)     1280    25   4823  325   1   6128      362   2220 1890 466 1 4938 4736 1650 436 1234 1 8056 0 0   0 19122 平均値                             6374 というように平均値を出したいんですが、なん行かの表を作っておいて最後の行で計算をしたいのです。Eの列はFの列がスペースでないときには、1を立たせ入力がないつまり空白のときは、0になるようにしたいのです。最後に入力があった行(1)を足して合計を割れば出来ますが、F行= " ","0","1"とう式は成り立ちません。よい方法を教えてください。 

  • excelの計算式を教えてください

    初めて質問させていただきます。当方エクセルの初心者です。 シフト表を作るにあたって出勤人数や公休の数などを自動で出したいのですが、下記項目で困っています。わかる方がいらっしゃったらご教授くださるとありがたいです。 シフト種類は変則でセルには 通常勤務は空白でそれ以外には早番、遅番、会議、AM公休、PM公休 の何れかを入力します。 COUNTIF関数を使用してすべてを1としてカウントする事は出来たのですが、困っているのがAM公休、PM公休を0.5としてカウントしたい場合です。 例えば1日の勤務者が10名のうちAM公休の人が3人いたら勤務者数は8.5と自動で表示してほしいのです。 調べてやってみてはいるものの、どうにも計算できないので宜しくお願いいたします。 具体的な関数式で教えていただけるとありがたいです。