解決済みの質問
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(6件中 1~5件目)
# 5の解答者です。お礼を頂き有難うございます。私も相当苦労しましたので、意味が難しいとおっしゃっているので、少し
補足します。B列とC列についてです。
(1)DCOUNTA(範囲)は範囲セル内で佐藤が何人いるか数えます。3人いるからB列3です。A2の佐藤(自分)以外は3-2
=2人下行にいる=ダブりあり、と言うことです。C列で-1
しているのは自分の分を引いているわけです。A3の鈴木では
佐藤+鈴木(探索する苗字にプラス=加わることがミソ)が範囲内に6人いると出ているわけです。B2より
3増えたのですが、それは鈴木が3人いるということで、A3の
鈴木を除くと、あと3-2=2人下行にいると言うことになります。数が変化しない行がありますが(例A5の佐藤)、これは
既に前行で佐藤が出てきて(A2に)、自分の名前(A5の佐藤)
が増えても、表の中の佐藤+鈴木+山内の数は変わらないことを意味します。こう言う風にして、ダブリ数をD列に出し、最後にD13で合計しています。後は全行数からダブリで増えた行数(D13)を引けば、ダブリ除きの行数が出ます。
投稿日時 - 2002-09-11 10:21:31
お礼
ありがとうございます。
すごい力作と思います。今回はシートがいくつもあって、ちょっと大変な作業になりそうなので別な方法にしました。この関数も非常に参考になり有用と思います。また何かの機会に=DCOUNTA()も利用させて頂きます。ご協力ありがとうございます。
投稿日時 - 2002-09-11 11:55:28
>COUNTIF(A1:A5,A1:A5)の段階で演算結果が0となってしまい。
>=SUMRODUCT(1/0) で エラーとなってしまいます。
>何か違っていますでしょうか?
=SUMPRODUCT(1/COUNTIF(A1:A5,A1:A5))
は1つの式です。2つのセルに分解すると、機能しません。
投稿日時 - 2002-09-11 10:12:32
お礼
失礼しました。
ただ、範囲内に文字列がすべて埋まっているとよいのですが、途中で空白のセルがあると#DIV/0 のエラーになるようです。でも、これはすごいですね。セル選択で一度空白セルのみ選択してからスペースでも代入しておけば何とかなりそうです。配列をつかっていると思うのですが、これも理解を超えてしまいました。でもすぐに使えそうです。ありがとうございます。
投稿日時 - 2002-09-11 11:46:31
(1)データとしてA2からA12まで名前を入れる。A1名前、B1に0を入れる。
(2)B2に式=DCOUNTA($A$1:$A$12,$A$1,$A$1:A2)をいれる。
最下行が$A$12のところに来る。最下行まで複写する。
(3)C2に式=IF(B2>B1,B2-B1-1,0)をいれる。最下行まで複写
する。
(4)結果は下記の通りとなる。
(5)C13に=SUM(C2:C12)をいれる。
(6)B13に最終行-1をいれる。
(7)D13に=B13-C13をいれる。D13の6が求めるものである。
佐藤、鈴木、山内、山田、大木、大久保の6名。
C列には重複いている名前の数を求めている。
氏名0
佐藤32
鈴木62
山内81
佐藤80
鈴木80
佐藤80
山田90
大木100
山内100
鈴木100
大久保110
投稿日時 - 2002-09-11 00:26:41
お礼
B13に最終行の11を参照しD13の5を引くと6となり、重複を除いたカウントができるようです。計算式が複雑で小生の理解を超えてますが、これでなんとか行けそうです。ありがとうございます。
投稿日時 - 2002-09-11 09:34:53
再びこんにちは。
もうひとつ。
先頭にタイトル行を入れ、フィルタと =SUBTOTAL を使う。
例)
タイトル行を含み、A1~A6にデータがあるとして、
=SUBTOTAL(3,A2:A6)
とA7にでも入れ、データ-フィルタ-フィルタオプションで「重複するレコードは無視」でフィルタを掛ける。
投稿日時 - 2002-09-10 21:11:31
お礼
subtotal(3,___)は知ってましたが、フィルタオプションで「重複するレコードは無視」は知りませんでした。非常に便利ですね。これも使えます。ありがとうございます。
投稿日時 - 2002-09-11 10:40:36
OKWaveのオススメ
おすすめリンク