出産前後の痔にはご注意!

空白を除いて、重複を避けて・・・っていう数え方は出来ますか?
例えば、4月12日 4月13日 4月13日 4月14日 4月15日 →4件
できれば数式で、マクロでもかまいません
よろしくお願いします

A 回答 (7件)

NO3さんをヒントに次の方法は如何でしょうか。


=COUNT(FREQUENCY(A1:A10,A1:A10)^0)
    • good
    • 1

   A    B    C    D    E    F


1 4月12日 4月13日 4月13日 4月14日 4月15日 無重複数
2    1   0.5   0.5    1    1    4

セル A2 に式 =1/COUNTIF($A1:$E1,A1) を入力して、此れを範囲 A2:E2 に複写。
セル F2 に式 =SUM(A2:E2) を入力。
    • good
    • 0

配列数式でもできます。


例データA2:A13 (B列数字は下記解説の参考のために出しているもの)
a1
b1
c1
a2
s1
b2
0
a3
a4
c2
d1
f1
上記以外の、どこでも良いが、セルに
=SUM(IF(COUNTIF(OFFSET($A$2,0,0,ROW(A2:A13)-1),A2:A13)=1,1,0))
と入れて、SHIFT+CTRL+ENTER(3つのキーを同時押し)
結果 6
ーーー
考え方の仕組みについて
上記例の右側の数は、第2行からその行まで、その行の値と同じ行数がいくらあるかの数字を出したもの。
このうちの1の行の数を加えたのが、結果の6です。
そのB列の数は
=COUNTIF(OFFSET($A$2,0,0,ROW(A2:A13)-1),A2:A13)
と入れて、SHIFT+CTRL+ENTER(3つのキーを同時押し)
で出しており、回答の式の中の一部で使っている。
=SUM(IF(・・・))の・・・部分です.
なお日付の質問に、文字列の例ですが、日付もエクセルでは正数整数値ですので同じです。
空白行の存在をカウントしないも影響を受けません。
    • good
    • 0

=SUMPRODUCT(1/COUNTIF($A$1:$A$99,$A$1:$A$99&""))-(COUNTBLANK($A$1:$A$99)>0)


で計算可能です。
    • good
    • 0

日付のような数値データの場合


=SUMPRODUCT((FREQUENCY(A1:A10,A1:A10)<>0)*1)
のような感じで(空白が間に有っても大丈夫)いけると思います。
マクロでは、
Public Function kind(r As Range) '指定された範囲のデータの種類を数える
Dim x As Range
Dim aDic
Set aDic = CreateObject("Scripting.Dictionary")
For Each x In r
If (Not x.Value = Empty) And (Not aDic.Exists(x.Value)) Then '中身がない、重複する時は登録しない
aDic.Add x.Value, x.Value
End If
Next
kind = aDic.Count
End Function
みたいなもので、
=kind(A1:A10)
でいけると思います。(この場合はAとaを区別する)
    • good
    • 0

NO1です。


回答の関数では、空白を考慮できませんので読み飛ばして下さい。
    • good
    • 0

(例)データ範囲がA1:A10


 =SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10))
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル関数 重複をのぞいて個数を数える方法

いつもお世話になっています
セルに
a  b  c  a  b b
と入力したとき、個数を数える方法は知っていますが、種類が3個だと集計するにはどんな関数を使えばいいのでしょうか。

Aベストアンサー

下記URLの方法は如何でしょう。

「重複しないデータを数える」
http://integer.exblog.jp/2132536/

「リストから重複するデータをはぶいた件数(個数)をカウントする」
http://ameblo.jp/xls/entry-10073848203.html

「重複しないセル数」ユーザー定義関数の説明
http://www.katch.ne.jp/~kiyopon/soft/juhukunai.html

Qエクセルで重複を除いた日付のカウント(条件付き)

過去の記録にもなく、困っています。

エクセルで(A列の)日付をカウントしたいのですが、重複して困っています。

「C1」に任意の日付(○月○日)を入れると、「D1」に○月○日以下の日付がカウントされるようにしたいのです。

     A     B    C     D
1  4月5日        
2  4月6日
3  4月6日
4  4月6日
5  4月7日
6  4月7日
7  4月8日


D1に
=COUNTIF(A:A,"<="&C1)
といれてみると、重複してカウントされてしまうのですが、重複を除いてカウントがしたいのです。

ちなみに(C1)に「4月7日」を入れると、(D1)に「3」になるようにしたいのに、重複して「6」となってしまいます。


おいそがしいと思いますが、どうかご教授をお願いいたします。

Aベストアンサー

日付データがA1セルから入力されているなら以下の式でC1セル以下の日付の数が求められます。

=COUNT(INDEX(1/(MATCH(A1:A10,A1:A10,0)=ROW(A1:A10)*(A1:A10<=C1)),))

A2セルからのデータの場合は、ROW(A1:A10)の部分を以下のように変更します

=COUNT(INDEX(1/(MATCH(A2:A10,A2:A10,0)=(ROW(A2:A10)-1)*(A2:A10<=C1)),))

QEXCEL 重複するデータを1としてカウントする方法

以下のような、ある施設の利用者一覧表です。

A列には利用した日にち、B列には利用者のIDがあります。

A   | B
日にち | ID
01/10 | 0001
01/10 | 0002
01/13 | 0001
01/15 | 0003
01/17 | 0001

これをEXCELで延べ人数ではなく、同じIDが複数回出てきても1とカウントしたいのですが方法が分かりません。
上記の表では0001、0002、0003しかありませんので3という数字を求めたいのです。

出来れば作業列を使いたくないのですが、やむをえない場合はしょうがないかなと思います。

宜しくお願いします。

Aベストアンサー

#7です
◆すでに同じ回答をzap35さんがされていました
◆大変失礼しました

◆文字列または数値で途中空白があってもよい方法で別の式(少し長いですが)
=INT(SUMPRODUCT(1/SUBSTITUTE(COUNTIF(A1:A100,A1:A100),0,100)))

◆もし、ID番号が数値であればこんな方法も
=COUNT(1/FREQUENCY(A1:A100,A1:A100))

QEXCELで条件に合致したデータから、さらに重複するデータを1と数える

EXCELで条件に合致したデータから、さらに重複するデータを1と数える
ことが関数で出来るでしょうか?

例えば
  A ,B ,C
1 見積No 、担当者、商品名
2 111、山田、パソコン
3 111、山田、プリンタ
4 222、佐藤、HDD
5 333、山田、パソコン
6 444、青木、パソコン
7 555、山田、HDD

パソコンの担当者ごとの見積もり件数はという問いに対して
 山田 2件
 佐藤 0件
 青木 1件
という解答を求めたいのです。
見積Noが同じ場合は同じ見積書で明細が2行の場合で、これを1件と数えたいのです。
フィルタで絞った後に、=SUMPRODUCT(1/COUNTIF(A2:A100,A2:A100))
という関数を試しましたが、フィルタを無視して全ての件数が対象となってしまいました。
SUMに対するSUBTOTAL関数のようなものがあれば便利だったのですが…。

うまく質問出来たのか不安ですが、判る方お願いします。 m(__)m
 

Aベストアンサー

こんにちは!
外していたらごめんなさい。

↓の画像のようにSheet1のデータをSheet2にまとめるようにしてみました。
Sheet2のC2セルに検索商品名を入力すると、B列に件数を表示させるようにしています。
Sheet2の氏名欄はあらかじめ入力されているものとします。

Sheet1の作業用の列を2行使わせてもらっています。
D2セルに
=A2&C2
E2セルに
=IF(OR(Sheet2!$C$2="",C2<>Sheet2!$C$2,COUNTIF($D$2:D2,D2)<>1),"",ROW(A1))
として、D2・E2セルを範囲指定し、E2セルのフィルハンドルで下へずぃ~~~!っとコピーします。

そして、Sheet2のB2セルに
=IF(A2="","",SUMPRODUCT((Sheet1!$B$2:$B$100=A2)*(Sheet1!$E$2:$E$100<>"")))
という数式を入れ、オートフィルで下へコピーしています。

尚、数式はSheet1の100行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば幸いですが
的外れなら読み流してくださいね。m(__)m

こんにちは!
外していたらごめんなさい。

↓の画像のようにSheet1のデータをSheet2にまとめるようにしてみました。
Sheet2のC2セルに検索商品名を入力すると、B列に件数を表示させるようにしています。
Sheet2の氏名欄はあらかじめ入力されているものとします。

Sheet1の作業用の列を2行使わせてもらっています。
D2セルに
=A2&C2
E2セルに
=IF(OR(Sheet2!$C$2="",C2<>Sheet2!$C$2,COUNTIF($D$2:D2,D2)<>1),"",ROW(A1))
として、D2・E2セルを範囲指定し、E2セルのフィルハンドルで下へずぃ~~~!...続きを読む

Qエクセルで重複するデータを数えない方法

こんばんは。いつもお世話になっております。
今、表を作成しているのですが、例えば列に、
・インド
・インド
・インドネシア
・インドネシア
・カンボジア
とあるときに、データは5つですが国の種類は3つですよね、その3をだしたいのですが、どうしたら求められますでしょうか?
初歩的な質問で申し訳ないのですが、どなたかご教授お願いいたします。

Aベストアンサー

こんにちは~

データが A2:A50にあるとして、
=COUNT(INDEX(1/(MATCH(A2:A50,A2:A50,0)=ROW(A1:A49)),0))

と入れてみてください( ↑をそのままコピー&ペーストしてください )

◆最後のほうの ROW(A1:A49) は指定範囲のセルの個数です。
A2:A50ならセルの個数は49個なので ROW(A1:A49) とします。
データが何行目から始まっていても必ず 1から始めてください。
A3:A100の範囲なら、ROW(A1:A98) のように。

=SUMPRODUCT(1/COUNTIF(A2:A50,A2:A50))

という比較的短い式でもできますが、
この式だと誤差が出るケースもあるのであまりオススメできません。
範囲内に空白セルが 1つでもあるとエラーになりますし…

Q複数条件で重複しないデータをカウントする方法

困っています。
エクセルの関数を教えてください。
複数条件に該当するデータをカウントする方法を教えてください。

A列とB列には不特定多数の名称と地名が入力されています。
このような表です。

A列(品名)    B列(出荷先)    
いちご       東京
いちご       埼玉
いちご       東京 
みかん       山梨
みかん       岐阜
りんご       埼玉 
りんご       大阪
りんご       大阪
以下1500品目

A列のいちごでB列の出荷先が東京であるものは2件あります。
この「件数」を関数で表示させる方法を教えてください。
よろしくお願いいたします。

Aベストアンサー

分かり易く簡単で計算に負担のかからない方法は作業列を作って対応することです。
作業列が目障りでしたらその列を選択して右クリックして「非表示」を選択すればよいでしょう。
1行目は項目名が有るとしたらC2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=A2&B2

D2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(C2="","",IF(COUNTIF(C$2:C2,C2)>1,COUNTIF(C$2:C2,C2),""))

これでダブったデータが該当する行までにあればダブりの回数がD列に表示されます。単にダブりの回数を表示させるのに比べてダブりの行がはっきり示されるのがよいでしょう。

また、ダブった品名と出荷先を例えばシート1に元のデータがあるとしてシート2に表示させるとしたらシート1のD2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(C2="","",IF(COUNTIF(C:C,C2)>1,MAX(D$1:D1)+1,""))

シート2の例えばA2セルには次の式を入力してB2セルまでオートフィルドラッグコピーしたのちに下方にオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。

=IF(ROW(A1)>MAX(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$D:$D,0),COLUMN(A1)))

A列には品名がB列には出荷先は表示されます。
シート2のC2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(A2="","",COUNTIF(Sheet1!$C:$C,A2&B2))

これでC列にはダブりの回数が表示されます。

分かり易く簡単で計算に負担のかからない方法は作業列を作って対応することです。
作業列が目障りでしたらその列を選択して右クリックして「非表示」を選択すればよいでしょう。
1行目は項目名が有るとしたらC2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=A2&B2

D2セルには次の式を入力して下方にオートフィルドラッグコピーします。

=IF(C2="","",IF(COUNTIF(C$2:C2,C2)>1,COUNTIF(C$2:C2,C2),""))

これでダブったデータが該当する行までにあればダブりの回数がD列に表示されます。...続きを読む

QEXCELでの重複データカウント方法について

会社名のデータが1万件あります。
その中には、同じ会社名が重複しているものがあります。
そこで、重複しているデータは1つのものとしてカウントし、全部で何件の会社が存在するかカウントする方法はあるでしょうか?

Aベストアンサー

1)集計したSHEETを全選択してコピー
2)別のSHEETに形式を選択して貼り付け(値だけ)
3)会社名カラムで、[データ]-[フィルタ]-[オートフィルタ]
4)出てきた三角形をクリックして、(オプション)
5)「個数」で「終わる」を選択してフィルタ実行
6)コピーして別のシートに貼り付け

EXCELのバージョンによって(6)の動作は変るかもしれません。
上手くいかなかったら、セルで選択してコピー、列で選択してコピー、行で選択してコピー、全部試してみてください。

それでもだめなら、
(1)集計行の前に一列追加
(2)追加した空の列に =RIGHT(B1,6) と入力(注:B1は会社名のセル)
   これで、追加した列は「データの個数」と表示されるはず
(3)(2)を全行にコピー
   つまり、集計行の頭には「データの個数」が並ぶ。他の行はブランク。
(4)追加した行を[データ]-[並べ替え]

これで、集計行だけが一箇所にあつまるはず
   

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで重複した文字列を1としてカウントする方法

こんにちは
エクセルで親子の名簿を作っているのですが
複数子供がいる場合の世帯数をカウントしたいのですが
簡単な方法はありますか?
Microsoft Office Excel 2007です。

阿部
阿部
黒木
黒木
安藤
井上
田中

この場合5と数えたいです。
よろしくお願いします。

Aベストアンサー

初心者向きではないが、列は使わずともできます。
データの範囲が、A2~A99なら、
=SUMPRODUCT(1/COUNTIF(A2:A99,A2:A99))


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング