[[20140909054546]] 『条件に一致すれば空白以外をカウント』(ちぃさん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件に一致すれば空白以外をカウント』(ちぃさん)

お世話になります。

条件に一致すればカウントをするようにしたいのですが私の知識では全くできませんのでお助けいただけないでしょうか。

条件
C3:C3004までの間で入力した値が小さければF13:F3004のカウントされないようにしたいのですが計算式でできますでしょうか?
※入力する値はC3:C3004までの中から場所を撰ぶような形になります。
カウントするものは文字列のカウントとなります。

私のイメージでは仮に条件を設定しますと

C780の場所より小さければカウントをせず大きい所はカウント対象

あたりまえなのですが現在
COUNTIF(F3:F3004,″=?*″)

としているのですが全く条件が入っていませんのでF列の空白以外をカウントしているだけです。

質問内容の説明が不十分でしたら御指摘下さい。

どうかよろしくお願い致します。

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 >C3:C3004までの間で入力した値が小さければF13:F3004のカウントされないように
 「何と比べて」小さい値ですか?
 もし↓がその「小さい値」ならば

 >C780の場所より小さければカウントをせず大きい所はカウント対象
 このC780はどのような基準で選んでいるのですか?

(稲葉) 2014/09/09(火) 08:55


 =COUNTIF(F3:F3004,">"&C780) 
 
(GobGob) 2014/09/09(火) 10:15

(稲葉)さん、(GobGob)さん回答ありがとうございます。

質問内容の説明が十分でなく申し訳ありません。

(GobGob)さんが提示していただきました計算式、試させていただきました。
すみませんが動作内容が求めているものと違うようです。
私の説明ふ不足で二度手間となり申し訳ございません。

以前に似た質問をした事がありましたので探していて遅くなりました。

[[20130527205138]] 

こちらでの内容とににているのですが文字列がどうしてもカウントされないのです。
> =SUMPRODUCT(($A$1:$A$10>=F1)*($B$1:$B$10=D1),$C$1:$C$10)
↑こちらの処理と同じような動きをしてもらいたいですが私の頭ではいい方法がみつかりません。
ただ、同じではなく「同じような」です。

  ----I------C------I------D-----I-----E-----I-----F-----          
.
13            9:00                                エクセル
14            9:15                           エクセル
15            9:30                           エクセル
16            9:45
17            10:00                    エクセル改                 
.
.
.
250            20:15                   エクセル改
251            20:30                   エクセル
252            20:45
.
.
.
3004  

C列には時間が入ってまして例えばC13が 10:45:00 でしたらC250は 1900/1/2 22:00:00 などと数式バーに出ているとおもうのですがそれを元に計算式が動けばと思っています。
空白以外をカウントしたいのですが、これはF列に入っている文字列をカウントし時間になおし時間の統計を出したいのです。

ココより小さければカウントせず大きければカウントするというのはある程度の時間で交換しなければならないものを見落とさないためのカウント方法案です。

例えば
始まりのF3からカウントを始めてF250で交換時期の時間がきた時に見落とさず、そこで必ず交換しまた交換した所でゼロからカウントを始め次の交換時期を見落とさないようにカウントをしたいのです。

この下手な説明でわかりますでしょうか?
まだわかりにくいようしたらご指摘ください。

どうぞよろしくお願いいたします。
(ちぃさん) 2014/09/09(火) 11:40


 >C列には時間が入ってまして例えばC13が 10:45:00 でしたら
 >C250は 1900/1/2 22:00:00 などと数式バーに出ている
 これは1行15分という事が言いたいのかな???
 これは計算して分かりました。

 >空白以外をカウントしたいのですが、これはF列に入っている文字列をカウントし時間になおし時間の統計を出したいのです。 
 これが分からない。
 F列に入っている文字列をカウントすることは出来ますよね?
 それを「どのように」時間に直すのですか?

 例えばF13:F15に「エクセル」と入力されているので、その間の時間は3セルなので
 =3*"00:15"
 で00:45の値が取得できます。

 >交換時期の時間
 というのは、↑の計算結果が「100時間を超えたら」G列に「交換してください」と表示して、
 次の行から再度0からカウントし、また「100時間超えたら・・・」、なら出来ると思います。

 後は何言ってるか分かりません。
 説明が苦手でしたら、箇条書きで条件をまとめられたらよろしいのではないでしょうか?

(稲葉) 2014/09/09(火) 14:37


(稲葉)さん、度々説明不足で申し訳ありません(汗)

> それを「どのように」時間に直すのですか?
はい。これは (稲葉)さんが言われてます内容とほぼ同じことを考えています。
=3*15/60/24 でシリアル値?でした(汗)言葉が間違っていたらすみません。(汗)で0.03125がでるので小式設定で 〔h〕:mm にしようと考えておりました。
=3*"00:15"でもいけるのですね。(照)
知りませんでした。
もっと勉強します。

>というのは、↑の計算結果が「100時間を超えたら」G列に「交換してください」と表示して、
>次の行から再度0からカウントし、また「100時間超えたら・・・」、なら出来ると思います。
はい。多分(稲葉)さん のおもっているままだと思います。
最終、時間のTOTALは1000時間を目安に考えております。
というののもエクセルシート1枚で1ヶ月と考えておりますので繰越し時間が発生すると思っています。
1ヶ月分で3000行ぐらいまでいきますので、ご教授いただければ最後にプラス繰越しみたいに考えています。
例えば、
=(COUNTIF(F3:F3004,″=?*″)*15/60/24)+繰越し
↑このような感じです。
ど素人的な考えで恥ずかしいです。(汗)

あッ(汗)
申し訳ありません。
肝心な事を説明していませんでした。
> =SUMPRODUCT(($A$1:$A$10>=F1)*($B$1:$B$10=D1),$C$1:$C$10)
で例えると F1 の部分でカウントがリセットされているのですが F1 に入力した際に時間と交換した時の時間の記録を残すためマクロが入っております。
ですので、できればリセット時はセル入力するタイプが希望です。

時間と交換した時の時間・・・・(汗)
日本語が変ですね・・・
転記される時間とそれまでの統計といったほうが正しいのですかね。(汗)

説明が歯抜け状態でご迷惑をおかけします。

(ちぃさん) 2014/09/09(火) 15:54


 下記のように何時間毎にサインを出すか決める表を作成します。

 例はG1:H5で、2時間ごとに交換のサインを出す設定で、前月繰越は3セル分です。
	[G]	[H]
[1]	2	時間
[2]	60	分
[3]	15	分/セル
[4]	8	セル毎
[5]	3	繰越セル
 G1:G3、及びG5は手入力です。

 G4=G1*G2/G3

 G13=IF($G$5+COUNTA($F$13:F13)-COUNTIF($G$12:G12,"交換")*$G$4=$G$4,"交換","") 
 これを下方向にコピーでいかがですか?

 出力結果はこんなかんじです。
	[C]	[D]	[E]	[F]	[G]
[13]	9:00			エクセル	
[14]	9:15			エクセル	
[15]	9:30				
[16]	9:45			エクセル	
[17]	10:00			エクセル	
[18]	10:15			エクセル	交換
[19]	10:30			エクセル	
[20]	10:45			エクセル	
[21]	11:00				
[22]	11:15			エクセル	
[23]	11:30			エクセル	
[24]	11:45				
[25]	12:00				
[26]	12:15				
[27]	12:30			エクセル	
[28]	12:45			エクセル	
[29]	13:00			エクセル	
[30]	13:15			エクセル	交換
[31]	13:30			エクセル	
[32]	13:45			エクセル	
[33]	14:00			エクセル	
[34]	14:15			エクセル	
[35]	14:30			エクセル	
[36]	14:45			エクセル	
[37]	15:00			エクセル	
[38]	15:15			エクセル	交換
[39]	15:30			エクセル	
[40]	15:45			エクセル	

 一定の時間なら時間を計算しなくても、セルの数をカウントすればよいだけなので・・・
(稲葉) 2014/09/09(火) 17:12

(稲葉)さん 回答ありがとうございます。
外出していまして遅くなりました。

ご教授いただいた計算式を試させて頂きました。
たしかに提案いただいている内容もいいと思います。

ですがやはりF列のカウントをしたいです。
実際に使用する所ではエクセル2003しかありませんが、今はエクセル2010がありますので COUNTIFS で試してみたのですがやはり駄目でした。
・G2をリセットセルとしH2に集計とします。
・C13が9:00でセル1つを15分づつずらしC168で23:45とします。
・文字列をカウントしたいのでF13からF168までエクセルと入力します。
・C32が数式バーでは13:45:00となっていましたので

H2=COUNTIFS(F3:F3004,"=?*",C3:C3004,">13:45:00")

としてみました。
検索結果は 136
毎回計算式の中に今回のように 13:45:00 と入力し計算式をさわりたくないので 13:45:00 を入れていた部分に G2 のセルをセットしてみました。
G2 に C32をコピペし G2 の数式バーは 13:45:00 となってます。
検索結果は 0 でした。(泣)

H2=COUNTIFS(F3:F3004,"=?*",C3:C3004,">13:45:00") ででた結果を表示させたいのですがこれはエクセルでは無理な話しなのでしょうか?

どうか宜しくお願いいたします。

(ちぃさん) 2014/09/09(火) 19:51


 求める結果がさっぱり分からない
 経過はどうでもいいから、結果だけ表にして提示してください
 最初からF列の文字列しかカウントしてないのに、F列がカウントしたいって言われてもなんのことやら
(稲葉) 2014/09/09(火) 21:24

(稲葉)さん、本当にごめんなさい。
私が悪いです。
説明をどのようにしていいのか。。。。
結果の表は(稲葉)さんが書いてるままなのですが。。。。。

	[C]	[D]	[E]	[F]	[G]
[13]	9:00			エクセル	
[14]	9:15			エクセル	
[15]	9:30				
[16]	9:45			エクセル	
[17]	10:00			エクセル	
[18]	10:15			エクセル	
[19]	10:30			エクセル	
[20]	10:45			エクセル	
[21]	11:00				
[22]	11:15			エクセル	
[23]	11:30			エクセル	
[24]	11:45				
[25]	12:00				
[26]	12:15				
[27]	12:30			エクセル	
[28]	12:45			エクセル	
[29]	13:00			エクセル	
[30]	13:15			エクセル	
[31]	13:30			エクセル	
[32]	13:45			エクセル	
[33]	14:00			エクセル	
[34]	14:15			エクセル	
[35]	14:30			エクセル	
[36]	14:45			エクセル	
[37]	15:00			エクセル	
[38]	15:15			エクセル	
[39]	15:30			エクセル	
[40]	15:45			エクセル

(稲葉)さんが書いてくれた表で説明すると エクセル が23個あります。
電気の使用量で例えると、この表は1ヶ月分の電気消費表です。
C13の9:00から電気を点灯しC14の9:15で一旦消灯
C16の9:45から再び電気を点灯しC20の10:45で一旦消灯
というような見かたです。
エクセル と表示のあるセルは電気を点灯している時で エクセル と表示のない時は電気を消灯中です。
セル1つが15分単位で電気を点灯していい上限時間がありますので超える前に交換するために時間を表示するのです。
なので (稲葉)さんがご教授くださいました案でも上限に到達すると "交換"とG列に表示されますので問題はないのですが、上限が1000時間ですので多分1ヶ月では上限に到達できないとおもうのです。
月に1度は設備関係のメンテナンスをするので使用量によっては上限までいってなくても交換するときもあるかもしれないので、そのメンテナンスの時に突然慌てて付属品の準備をしなければいけないようにならないため随時、使用している時間を把握しておきたいたいです。
そのために稼働したセルを数えたいのです。

計算式を入れておいて
「今日まで535:45使用している」
みたいな感じにしておきたいです。

計算結果は13行より上に表時してウインドウは固定しておき13行から下はスクロールしていくような使いかたをします。
月の後半にもなると2000行を超えているので。

       --D--         --E--        --F--        --G--       --H--
2   上限      繰り越し  リセット日    集計            
3      10000         75.45h       13:45:00       535.45h
.

このような感じです。
ご不明な点がございましたら、ご指摘ください。

どうぞ宜しくお願いいたします。
(ちぃさん) 2014/09/09(火) 22:40


 F3もはや日付ですらないんですけど・・・

 交換した記録がそれだといつの13:45かさっぱりわかりません。
 どの列でもいいので、リセットした行にマークを付けてください。
 そこで0になるわけですから。

 G3の集計は一度に計算するのは面倒なので、H列に作業列を設けます

 H3=COUNTA(F13:F3000)*"0:15"*24
 整数部が時間、小数部が1を4で割った倍数(0:15単位)になります。
 G3=TIME(INT(H3),(H3-INT(H3))*60,0)+INT(H3/24)
 でセルの表示形式を[h]:mmにすれば希望通りの表示になります。

 リセット日に関しては、H列に◎でも交換でもなんでもいいので、マークします。
 H2=MAX(IF(H13:H3000<>"",ROW(H13:H3000),0)-13,0)
 と入力して、Ctrl+Shift+Enterで配列数式にします。
 これで空白以外が入力されている最終行-13が取得できます。

 H2をもとにH3の式を組み立てなおします。
 H3=COUNTA(OFFSET(A13:A3000,H2,))*"0:15"*24
 COUNTAの参照を先ほど取得した最終行-13分オフセットすれば、リセット日以降のデータ蓄積が取得できます。

 E3のデータはどうなっているでしょうか?[h]:mm 
 繰り越しがある場合、H2が0なら繰り越しを加算する、H2が0より大きければ加算しないで集計できると
 思います。
 G3=TIME(INT(H3),(H3-INT(H3))*60,0)+INT(H3/24)+IF(H2=0,E3,0)

 これでもなお私が勘違いしているようであれば、申し訳ありませんがお手上げです。

(稲葉) 2014/09/09(火) 23:49


(稲葉)さん おはようございます。
何度もありがとうございます。

>F3もはや日付ですらないんですけど・・・
これは最初にC列に9:00と手動入力した時に数式バーに表示されるものです。
場所はC32になります。

>どの列でもいいので、リセットした行にマークを付けてください。
これはF3でリセットとなります。

(稲葉)さん にご教授いただいたもの試しました。
>これでもなお私が勘違いしているようであれば、申し訳ありませんがお手上げです。
計算結果は前に教えてもらったものと同じく私が言っていることが表示されてます。
もう一つの新しい案という感じです。
勉強になります。
ありがとうございます。

       --D--         --E--        --F--        --G--       --H--
2   上限      繰り越し  リセット日    集計            
3      10000         75.45h       13:45:00       535.45h
.                              ~~~~~~~~~
                                    ↑↑
                 ココでリセット ※C32コピペしたのも

       --D--         --E--        --F--        --G--       --H--
2   上限      繰り越し  リセット日    集計            
3      10000         75.45h       13:45:00       535.45h
.                        ~~~~~~~
                                                  ↑↑
                        ココで時間集計

       --D--         --E--        --F--        --G--       --H--
2   上限      繰り越し  リセット日    集計            
3      10000         75.45h       13:45:00       535.45h
.                ~~~~~~~~~
                     ↑↑
         ココは繰り越しを手動入力

       --D--         --E--        --F--        --G--       --H--
2   上限      繰り越し  リセット日    集計            
3      10000         75.45h       13:45:00       535.45h
.   ~~~~~~~
      ↑↑
  ココはG3の集計が超えないように
  書式設定の上限値を入力

このような感じでございます。

元はF13:F3000までが文字列なのでSUM関数などで計算できないのでCOUNT、COUNTIF、COUNTAなどで試していたのですが思うような結果が出ませんでした。
G列にF列の文字列を数字に返すようにしてみました。

G13=IF(F13="","",(COUNTIF(F13:F13,F13)))
としてG列にF列に文字列があれば1が返るようにしました。
G3=SUMIF(C13:C3000,">=F3",G13:G3000)
としましたが結果また 0 でした。(泣)
G3{=SUM(IF(C13:C3000>=F3,G13:G3000))}
とすればカウントしました。ので
G3={SUM(IF(C13:C3000>=F3,G13:G3000))*15/60/24}

もしできればG列にF列の文字列を数字に返すような事を除き、計算式も2段階でなく1つで終わらせたいのですができますでしょうか?

どうか宜しくお願いいたします。

(ちぃさん) 2014/09/10(水) 08:28


 >>F3もはや日付ですらないんですけど・・・ 
 >※C32コピペしたのも
 例題が悪すぎる。
 コピーなら最初からそう書いて、24時を超える値をサンプルとして提示する方がいいでしょう?
 通常考えたら、リセット日は手打ちされたと考えるから、時刻を手打ちされたなら、
 内部データは0.13:45となり、一番最初の32行目しか検索出来ないし、128行目の1.13:45を検索したく
 ても出来ないでしょう?

 まず書式設定はすべて[h]:mmに統一してください。
 上限と繰越も10000:00と75:45に設定にしてください。
 D3の
 >ココはG3の集計が超えないように
 >書式設定の上限値を入力
 意味が分かりません。
 具体的に10000時間を超えたら、G3をどのように表示させたいのか提示してください。

 G3=SUMPRODUCT((C13:C3000>F3)*(F13:F3000<>""))*"0:15"+IF(F3>0,0,E3)
 

 サンプル設定
	[D]		[E]		[F]		[G]
[2]	上限		繰り越し	リセット時	集計
[3]	10000:00	75:45		40:00		50:00

 サンプル表 F列は141行目から340行目までの200セル分入力されていると仮定します。
	[C]	[F]
[130]	38:15	エクセル
[131]	38:30	エクセル
[132]	38:45	エクセル
[133]	39:00	エクセル
[134]	39:15	エクセル
[135]	39:30	エクセル
[136]	39:45	エクセル
[137]	40:00	エクセル
[138]	40:15	
[139]	40:30	
[140]	40:45	
[141]	41:00	エクセル
[142]	41:15	エクセル
[143]	41:30	エクセル
[144]	41:45	エクセル
[145]	42:00	エクセル
[146]	42:15	エクセル
[147]	42:30	エクセル
[148]	42:45	エクセル
[149]	43:00	エクセル
〜	〜	〜
[334]	89:15	エクセル
[335]	89:30	エクセル
[336]	89:45	エクセル
[337]	90:00	エクセル
[338]	90:15	エクセル
[339]	90:30	エクセル
[340]	90:45	エクセル

(稲葉) 2014/09/10(水) 09:25


(稲葉)さん ありがとうございます。

完璧な仕上がりです。

>例題が悪すぎる。
無駄に時間を使わせてしまい申し訳ございません。
次回、質問の際は注意します。

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

(ちぃさん) 2014/09/10(水) 10:27


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.