• ベストアンサー

エクセルで時間まで含んでいる日付のセルの重複を除いた個数を出したい

エクセルで時間まで含んでいる日付のセルの重複を除いた個数を出したいのですが B列の行に日付が8/3と言う表示形式でずっと並んでいます。しかしこのセルは日付だけでなく訳あって実際には時間も含んでいます。 標準表示でみると「40028.1234」みたいな感じになっているわけです・・・ それで、B列の行にある日付は重複している日付もあります。それを重複を除いて数えたいのですが・・・ 色々な関数で試したのですがLEN(B3:B100,5)などを入れると使えなくなってしまう関数だったりして結局できませんでした・・・ 表は下記のようになっています。     A   B   C   D ・・・ 3   8/3 4   8/3 5   8/4 6   8/6 7   8/6 8   8/6 9   8/8 ・ ・ ・ 上記の結果を重複を除いて「4」と出したいのですが・・・ 3より上の行には日付とは関係ないものが入力されており 9より下の行にはこれから日々増えていく行があり現時点では未入力です 何行まで増えるかわからないのでB3:B100みたいな感じで指定しておきたいのですが・・・ よろしくお願いします。

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

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

>-(INT(MAX(シート名!B11:B100))<MAX(シート名!B11:B100)) >部分を削除すると正しい値になるのですが・・・・ もう一度、検証してみました =COUNT(1/FREQUENCY(INT(B11:B20),INT(B11:B20))) のように書けばよさそうです。 つまり、 =COUNT(1/FREQUENCY(INT(シート名!B11:INDEX(シート名!B:B,10+COUNT(シート名!B11:B100))), INT(シート名!B11:INDEX(シート名!B:B,10+COUNT(シート名!B11:B100))))) をC11:C21のセル範囲を選択してから 数式バーに =FREQUENCY(INT(B11:B20),INT(B11:B20)) を入力し[Ctrl]+[Shft] +[Enter] で確定します 添付図参照

jun_jii
質問者

お礼

ばっちりできました!! 本当にお手数おかけして申し訳ありませんでした。 これでやっと問題が解決しました。 本当にありがとうございました。 ペコリ(o_ _)o)) また、質問することがあるかもしれませんがその時はよろしくお願いいします。 σ(^◇^;)ヒヤアセ

その他の回答 (7)

回答No.7

検討していてさらに間違ってました m(_ _)m =COUNT(1/FREQUENCY(シート名!B11:INDEX(シート名!B:B,10+COUNT(シート名!B11:B100)), INT(シート名!B11:INDEX(シート名!B:B,10+COUNT(シート名!B11:B100))))) -(INT(MAX(シート名!B11:B100))<MAX(シート名!B11:B100)) ROUNDじゃなくてINTでした。 >2を10にしたのですがよろしいのでしょうか? OK >「Ctrl+Shift+Enter」を押して配列にしても、 [Ctrl]+[Shft] +[Enter] で確定は、配列として認識させるための操作です。つまり、不要です。 たとえば B11~B20セルまで日付が入っているなら =FREQUENCY(B11:B20,INT(B11:B20)) を C11~C21セルまで選択後、上記を数式バーにコピペ。 [Ctrl]+[Shft] +[Enter] で確定すると、頻度が算出されます。 ここで、一つ多く算出されることを忘れていたため、最後のMAX関数を使った数式を追加しました。詳しくはヘルプを参照してください。 また、D11セルに=INT(B11)として下へオートフィルしておくと少しわかりやすいかも

jun_jii
質問者

補足

度々ありがとうございます。 上記の式で試してみたのですが・・・結果は、前回同様実際の値より1足りない値が表示されてしまいました・・・ ・・・ちなみに、最後の -(INT(MAX(シート名!B11:B100))<MAX(シート名!B11:B100)) 部分を削除すると正しい値になるのですが・・・・ これでは、問題あるでしょうか?そのうちズレが起きてしまうのでしょうか?・・・自分の場合は、1つ多く算出されていないってことでしょうか? ちなみに、 =FREQUENCY(B11:B20,INT(B11:B20)) を試してみたところでた値は、  ・・  B   C   D ・・・ 11   8/3   2 12   8/3   1 13   8/4   1 14   8/6   3 15   8/6   2 16   8/6   1 17   8/8   1 ・ こんな感じでした。(C列) 知識が足りないため本当にお手数おかけして申し訳ありません。

回答No.6

#1,3,5です 間違いを発見しましたので修正報告です このままでは配列がひとつ多くなり、その分の調整が必要でした。 =COUNT(1/FREQUENCY(B3:INDEX(B:B,2+COUNT(B3:B100)),ROUND(B3:INDEX(B:B,2+COUNT(B3:B100)),0)))-(INT(MAX(B3:B100))<MAX(B3:B100)) m(_ _)m

jun_jii
質問者

補足

ありがとうございます。 試してみたのですが・・・結果は実際の数値より1個足りない数値が表示されてしまいました・・・式が複雑なので修正箇所を間違えているのでしょうか?・・・あと、気なるところとしては、日付部より上にAB列を結合した個所があります。その場合でも B:B の指定で問題ないでしょうか? 実際には日付はB列の11行目から下に記述されています。 そしてこの数式は違うページで集計しようとしています。 修正してみたのが下記になります。 =COUNT(1/FREQUENCY(シート名!B11:INDEX(シート名!B:B,10+COUNT(シート名!B11:B100)),ROUND(シート名!B11:INDEX(シート名!B:B,10+COUNT(シート名!B11:B100)),0)))-(INT(MAX(シート名!B11:B100))<MAX(シート名!B11:B100)) 一つ怪しい修正箇所がINDEXの中の+の前部分 2を10にしたのですがよろしいのでしょうか? そして一つ気になるのですが、「Ctrl+Shift+Enter」を押して配列にしても、普通に「Enter」だけ押してみても結果は同じなのですがやはり配列にした方が良いのでしょうか?

回答No.5

#1,#3です =COUNT(1/FREQUENCY(B3:INDEX(B:B,2+COUNT(B3:B100)),INT(B3:INDEX(B:B,2+COUNT(B3:B100))))) =B3:INDEX(B:B,2+COUNT(B3:B100)) の数式がB3~数値の入っているセルの範囲までを表します。 つまり、B3,B4セルに日付が入っていれば =B3:B4 と同じです。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

作業列を作って対応するのがよいでしょう。 B3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A3="","",DATE(YEAR(A3),MONTH(A3),DAY(A3))) その後に日付の重複を除いた数は次の式で求めることができます。 =SUMPRODUCT((B3:B100<>"")/COUNTIF(B3:B100,B3:B100&"")) 間に空の行が入っても問題はありません。

回答No.3

>B3:B100みたいな感じで指定しておきたいのですが・・・ 思い当たることは、B列であることかなあ =COUNT(1/FREQUENCY(B3:B100,INT(B3:B100))) XL2007でも確認取れました。 たぶん、自分が何かを見落としてるんだろうなあ。。。 添付図の黄色矢印部分が原因で 解が11か10か違いかも 簡単な解説。 整数化した区間配列の頻度を数え逆数にする 既出の区間は0とカウントされるので逆数にするとエラーになる エラーになっていないものをCOUNT関数で数える 訳わからないものより、作業列を使って納得のいく数式での解決のほうが良いと思います。

jun_jii
質問者

補足

ありがとうございます。 自分の場合なぜうまくいかなかったのか判明しました! 説明に記述していなかったのですが、実は日付が記述されている行より下の日付が入っていない行は表示はされていませんが実際には数式が入っています。 この数式を削除してみたらうまく表示されました・・・ =COUNT(1/FREQUENCY(B3:B100,INT(B3:B100))) この式で数式のセルは除外みたいなことはできないでしょうか? よろしくお願いします。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

NO1の方の数式スマートだなと思い自分でやってみたら 私の能力が追いついてないのか?うまく行きませんでした。 オーソドドクスに補助列を使った方法で・・・ >B列の行にある日付は とありますがA列で宜しいんですよね。 記載にあるようにA3からデータが始まっているものとし、 日付昇順でソートされているものとします。(ソートされて いなかったらソートしてください) 仮にZ列を補助列にするとして、Z3セルには1を入れます。 Z4セルに =IF(INT(A3)=INT(A4),"",1) Z5以降はZ4をコピー あとはCOUNT、SUMのどちらでもお好きな方をどうぞ。

jun_jii
質問者

お礼

ありがとうございます。 理想としては補助列は使いたくなかったのですが、他に方法が見つからない場合は問題なく出来たので使わせていただきます。(⌒▽⌒) ありがとうございました。

回答No.1

=COUNT(1/FREQUENCY(A3:A100,INT(A3:A100))) でいいかな。参考まで。 INT関数を使って整数化してはどうでしょう?

jun_jii
質問者

補足

ありがとうございます。 さっそく試してみたのですが、バージョンのせいか何かわかりませんがうまくいきませんでした。 残念です。 ちなみにバージョンは 2007 です。

関連するQ&A

  • エクセル 数式入り等のセルの個数について

    こんにちわ。教えて下さい。 セルの個数を数えたいのですが、下記のいづれかの方法で出来るやり方はありますでしょうか? ☆条件付き書式で色をつけた空白のみのセルの個数の数え方(列に対応) (1)A1に今日又は今日以前の日付が入って、B1にはA1の日付から2週間たっても、何らかの日付・文字が入らない場合は空白の状態で色がつくようになっています。(文字が入力されたら色は無しになります。2条件が1つのセルに設定されています) 一番ベストなのは、この状態で空白で色のついているセルの個数が数えれば一番いいです。 もし、上記で駄目な場合、 ☆C1に別の数式で、B1が空白かそうでないかで、「FALSE」「TRUE」が表示されるように設定して、その状態で「FALSE」の個数を数えるっていうやり方まではわかるのですが、A,B,C列とも、入力していけば行が増えていくので、先にC列に数式をコピーしておくと、A列に日付が入力されていなくても、「FALSE」が表示されます。A列に日付が入力されている行での「FALSE」の数を数えるという方法はありますか? 説明が下手ですみません。。。 つまり、自分がない知恵で思った、2つの方法のどちらかででも、数える方法があれば教えて下さい。もちろん、もっといい方法があれば幸いです。

  • EXCEL関数でセルの数値の個数を求めたい

    以下のように各セルに入力されている場合に各セルに含まれる "," を除いた数字の個数の合計を求めたいのですが、どのようにすればできるでしょうか。 以下の場合ですと、 1行目 3個 2行目 2個 3行目 3個 で、8個という結果を得たいです。 LEN(substitute(A1,",","")) や (LEN(A1)+1)/2 などで一つ一つのセルに含まれる数値の個数は出せますが、列全体の個数の合計を求めたいです。 ---- 列A 行1-> 3,6,9 行2-> 2,5 行3-> 2,8,11 ※入力規則として、数値を","で区切ります。 ※列を追加して上の関数を各行に設定した上で合計を出す方法以外で。

  • エクセル関数 セルの個数

    A列に空白セルと文字列が入力されています。 文字列が入っているセルだけをフィルタで抽出しました。 その抽出されたセルが何行あるか個数を出す関数はありませんか?

  • 日付をカウント

    たとえばA列に日付が入力してあり、その列の先頭からn行までの重複しない日付の個数をカウントしたいのですが、どのような関数などを使えば良いでしょうか。 よろしくお願いします。

  • Excel 個数の集計時の重複削除について教えてください。

    COUNTIFを使用し個数を集計したのですが、 同じ値がでてきた時に重複してしまいました。 よい関数を教えてください。 A列  B列(カウント) 111  2 222  1 111 =COUNTIFだとこれも2となってしまうので、行を非表示(または削除)したデータを他シートに表示したい。 333  1 よろしくお願いします。

  • Excel>複数の列を比較して、重複セルの個数を得る方法

    Excelにて A列:aabb,bbcc,aacc B列:aacc,bbdd,ccdd C列:aacc,eehh,ccdd A,B列間で、重複セル「aacc」の1コ、 B,C列間で、重複セル「aacc」「ccdd」の2コ、 A,C列間で、重複セル「aacc」の1コ、 A,B,C列間で、重複セル「aacc」の1コ というように、複数の列を比較して、重複セルの個数を得る方法を教えてくださ い。複数の列では難解なら、2つの列を比較した場合でも結構です。 なお、重複セルの値、例えば「aacc」など得る必要はありません。個数のみで結 構です。宜しくお願い致します。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • エクセルの日付の重複の除去

    エクセルの日付の重複の除去 シート1のA列に以下のように日付が入っています。 データはAの100位まで日付があります。 A列 1/1 1/2 1/2 2/1 2/1 2/2 これを同じシートのB1に以下のようにまとめて重複分を除いた形で 表示したいのです。 B1セル→1/1 1/2 2/1 2/2 各日付の間は一文字分のスペースです。 よろしくお願いします。

  • EXCELで特定の日付のセルの個数をカウント

    こんばんは。 ある列(例えばH列に)ことなる日付が入力されているとします。 ここでA1セルにカウントしたい日付を入力して、そのH列の中(数十行あります)でA1セルに入力されたのと同じ日付のセルの数のみをカウントするにはどうしたらよいでしょう? 例えば1月1日と2日が混在していて、1日分のもののみをカウントしたい 場合です。仕事で緊急で必要なので、よろしくお願いします。  

  • エクセルで同一セル内で計算する時に金額と個数を別々に入力するようにできますか?

    エクセルで同一セル内で計算する時に金額と個数を別々に入力するようにできますか? 例えば、5,000と入力した後に個数を入力できるようにしてその計算結果を表示させたいのですが(5000*3と入力しそのセル内で15000,5000*3、5500*2で26000等)そしてこの合計を同じ行の別の列に自動的に分散させることができるでしょうか?やりかたがわかりません、詳しい方お願いいたします。 A B C D E 1 12/1 12/2 12/3 12/4 12/5 2 15000 5000 5000 5000 3 こんな感じにできたらと思います。

専門家に質問してみよう