COUNTIFについて



◇-?COUNTIFについて-わいわい(2005/3/7-11:07)No.243516
 ┗?!Re:COUNTIFについて...-白茶(2005/3/7-14:23)No.243545
  ┗?!【ありがとう】Re:COUNTI...-わいわい(2005/3/9-18:45)No.244038

▲このページのトップに戻る
243516COUNTIFについてわいわい URL2005/3/7-11:07

メーカー名:DELL デル
OS名:WindowsXp HomeEdition
パソコン名:4700C
ソフト名:エクセル
使用回線:光
--
http://pasokoma.jp/bbs8/lg242292.html からの引き続きの質問
(似た現象に陥っており質問をする場合も含みます)

記事番号242816へのコメント
すみません。
この仕組み、穴がありました。
次のような場合、

日付 ‖B‖C‖
−−−−−−−−
1/5‖○‖6‖
−−−−−−−−
1/6‖※‖6‖ ←ここが○じゃなくて
−−−−−−−−
1/7‖◎‖0‖ ←日付が変わって◎だった場合
−−−−−−−−
1/7‖※‖0‖ ←ここまでは正常だが
−−−−−−−−
1/7‖○‖1‖ ←日付変わってないのにカウント再開する
−−−−−−−
1/7‖〇‖2‖
−−−−−−−−

なので、見なかったことにしてください。
出直します。


ただ、上記の穴が無ければ、
基本的には、同日に複数のデータがある場合でも、この仕組みは機能する筈です。
A列の日付にさえ空白が無ければ、
B列に○や◎などのデータが無い(空白)セルがあっても大丈夫。

日付 ‖B‖C‖
−−−−−−−−
1/7‖○‖3‖
−−−−−−−−
1/7‖  ‖3‖
−−−−−−−−
1/7‖○‖4‖
−−−−−−−−
1/8‖  ‖4‖
−−−−−−−
1/28‖◎‖0‖
−−−−−−−−
1/31‖○‖1‖
−−−−−−−−

>なお、出来れば横の列に集計行を設けるのではなく縦方向のデータ末端部にカウント結果を表示出来れば
>いいなと思っています。

ん? 最終日の最後尾のカウントが必要なだけじゃないんですか?
>−−−−−−−−−−−−−−−−−−−−−−
>1/10‖○‖○‖  (1)………(1)
>−−−−−−−−−−−−−−−−−−−−−−
>subtotal1‖1‖   1     1
     ↑
    これって、要するに1/10のカウント数のことでしょ?
    違うかった?


白茶さん、いろいろありがとうございます。

『ん? 最終日の最後尾のカウントが必要なだけじゃないんですか?』の件ですが、
最終日1日だけのカウント数ではなく、直近の◎でカウントがゼロになった翌日から
最終日までのカウント数を縦列最後尾に表示したいのです。しっかも途中には空白も存在します。
僕もいろいろ考えましたけど、これってかなり難しいですよね!
頭が膿みそうです(@_@)


▲このページのトップに戻る
243545Re:COUNTIFについて白茶 2005/3/7-14:23
記事番号243516へのコメント
どうもです。

>最終日1日だけのカウント数ではなく、直近の◎でカウントがゼロになった翌日から

はい、それは考慮しての回答です。

>しっかも途中には空白も存在します。

「日付に空白がある」ということでしょうか。
だとしたら前回同様条件追加で回避できますよね。
「空白の行がある」ということでしたら・・・、
ちょっと厳しいかな。

>カウント数を縦列最後尾に表示したいのです。

で、今回はコレについて。

データのあるシートを汚したくないのかな。と思っています。
「データのシートはあくまでデータのみにしたい」とか。
一行単位で各データの横に一切の統計処理を施さずに、
データの末端にのみカウントを出させるのは、
関数のみでは不可能だと思うんですよね。
縦列最後尾に拘るのであれば、むしろExcel関数ではなく
VBAでの処理を考えて、必要な都度計算を実行させる方が
近道かもしれません。
Sub Macro1()
Range("B65510").Select
Selection.End(xlUp).Select

If ActiveCell.FormulaR1C1 = "○" Then
Selction.End(xlUp).Select
     ・
     ・
     ・
みたいな。(↑これ、そのまま真に受けないでね、凄くテキトー)
私のVBA知識ではアドバイスは無理ですので省略。

もし、データの横にいろいろ書き込んでもOKなら、
前回例に挙げたような、一行ずつデータの横に計算式を設け、
C列にカウントを表示させ、
その上で
データの最後尾がセルB5645だったとしたら、
B5646=C5645で縦列最後尾に表示させる。
ってのが一番無難。

データのシートを汚したくないのであれば、
別シートを計算用シートとしてシート間でセル参照する。
という手もあります。
データの最後尾がセルB5645だったとしたら、
B5646='Sheet2'!C5645で縦列最後尾に表示させる。

またはブック間の参照とか。

▲このページのトップに戻る
244038Re:COUNTIFについてわいわい 2005/3/9-18:45
記事番号243545へのコメント
白茶さんは No.243545「Re:COUNTIFについて」で書きました。
>どうもです。
>
>>最終日1日だけのカウント数ではなく、直近の◎でカウントがゼロになった翌日から
>
>はい、それは考慮しての回答です。
>
>>しっかも途中には空白も存在します。
>
>「日付に空白がある」ということでしょうか。
>だとしたら前回同様条件追加で回避できますよね。
>「空白の行がある」ということでしたら・・・、
>ちょっと厳しいかな。
>
>>カウント数を縦列最後尾に表示したいのです。
>
>で、今回はコレについて。
>
>データのあるシートを汚したくないのかな。と思っています。
>「データのシートはあくまでデータのみにしたい」とか。
>一行単位で各データの横に一切の統計処理を施さずに、
>データの末端にのみカウントを出させるのは、
>関数のみでは不可能だと思うんですよね。
>縦列最後尾に拘るのであれば、むしろExcel関数ではなく
>VBAでの処理を考えて、必要な都度計算を実行させる方が
>近道かもしれません。
>Sub Macro1()
> Range("B65510").Select
> Selection.End(xlUp).Select
>
> If ActiveCell.FormulaR1C1 = "○" Then
> Selction.End(xlUp).Select
>     ・
>     ・
>     ・
>みたいな。(↑これ、そのまま真に受けないでね、凄くテキトー)
>私のVBA知識ではアドバイスは無理ですので省略。
>
>もし、データの横にいろいろ書き込んでもOKなら、
>前回例に挙げたような、一行ずつデータの横に計算式を設け、
>C列にカウントを表示させ、
>その上で
>データの最後尾がセルB5645だったとしたら、
>B5646=C5645で縦列最後尾に表示させる。
>ってのが一番無難。
>
>データのシートを汚したくないのであれば、
>別シートを計算用シートとしてシート間でセル参照する。
>という手もあります。
>データの最後尾がセルB5645だったとしたら、
>B5646='Sheet2'!C5645で縦列最後尾に表示させる。
>
>またはブック間の参照とか。


白茶さん、大変お世話になりました。

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

VBAは私もよくわかりません!

とにかく、白茶さんにご指導頂いたアイデアを柱に作成していこうと思います。

では、また…(^_^)/~。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言