[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『重複データを除いてカウントする』(511)
下記のようなデータがA1:A10に並んでいます。
○ × △ ○ △ ■ × ◎ ◎ ■
このとき、マークの種類は、
○×△■◎ の5種類です。
この5を返すにはどうしたらいいのでしょうか。
=SUMPRODUCT(N(MATCH(A1:A10,A1:A10,0)=ROW(A1:A10))) こんな感じで求めることが出来ます。 (ケン)
方法は色々あると思いますが、 先ず、範囲がB2からD12の場合 どこかに =OFFSET($B$2,(CEILING(ROW(A1),3)/3)-1,IF(MOD(ROW(A1),3),MOD(ROW(A1),3),3)-1) と入力して「0」がでるまでコピーし不要分を削除します。 そしたら、ケン様の方法でもいいですし そのセルがF2としたら G2に =COUNTIF($F$2:F2,F2) としてハンドルをダブルクリック 次にSUMIFで =SUMIF(G2:G34,1) としても求められます。 で、どうでしょう? (夏目雅子似)
=SUM(IF(LEN(B1:D12),1/COUNTIF(B1:D12,B1:D12))) でCtrl+Shift+Enterで配列数式にします。 (ケン)
すんごぉぉぉぉ〜い \(@o@)/ !
_〆\(..;) メモメモ
最近の私の独り言。。
しかし世の中には、すごいひとがいるもんだ。。(@_@)
(夏目雅子似)
少し心配なことがあります。余計なことかもしれませんが、記載させていただきます。
A1に1、B1に=SUM(1/COUNTIF(A$1:A1,A$1:A1))=1として、Ctrl+Shift+Enter。 これらを下にフィルドラッグして行きます。 TRUEが続きますが、B27からFALSEが発生するようになります。
したがって、この数式の戻り値を、大小比較や=REPT()などの引数に使用する場合には、 それなりの配慮が、必要なようです。 =ROUND(SUM(1/COUNTIF(A$1:A1,A$1:A1)),)などとしておかれるのも よいかもしれません。 (LOOKUP)
流石LOOKUPさん、そこまで配慮できませんでした。 (ケン)
苦し紛れの =SUM(IF(LEN(B1:D12),3.71993326789901E+41/COUNTIF(B1:D12,B1:D12)))/3.71993326789901E+41 (ケン)
B1に1、A1に配列数式で、 =SUM(IF(LEN(B$1:B1),3.71993326789901E+41/COUNTIF(B$1:B1,B$1:B1)))/3.71993326789901E+41=1 として、これらを下にフィルドラッグしますと、A30、A36、A38などで、FALSEが戻ります。 このような方法では、解決は困難なのではないでしょうか? (LOOKUP)
そっか〜、理屈通りには行かないか〜。 (ケン)
そんなことはないでしょう? =SUMPRODUCT(N(MATCH(A2:A11,A2:A11,0)=ROW(A1:A10))) で、どうでしょう? (夏目雅子似)
以前ここで説明しました。 [[20040205133124]]『人数を数えたい』(はな) (ケン)
衝突しましたぁ。。 せっかく書いたので載せておきます。。 配列数式を理解する時は式をバラバラにするとわかりやすいですよ。 例えば今回の場合は、 A2からA11にデータがあるとして、 C2に =MATCH($A$2:$A$11,$A$2:$A$11,0) D2に =ROW(A1) E2に =IF(C2=D2,1,"") と入力してそれぞれを下へコピーします。 結果 E列の合計が今回の求める結果となりんすでごじゃる。 下手な説明ですけど、どうでしょう? 結局10個の配列に対して10個の連番が欲しいんですよね。。 うん?あってるかなぁ(^^;; ヒヤアセ(^^;; ヒヤアセ
配列数式はやっぱりここでしょ? http://pc21.nikkeibp.co.jp/special/hr/ (夏目雅子似)
これはどうしようもないのでしょうか?
↑この質問は、2008/07/24(木)14:00の投稿です。
具体的な配置と数式を掲示してみてください。
(川野鮎太郎)2008/07/25(金)18:12
レコードの配置は、1レコード目が項目名になっており、それ以下、A〜Lまでそれぞれデータが入っております。
このデータの中で、2〜17レコードは検証不要なため、以下の数式を入力しました。
=SUMPRODUCT(N(MATCH(B17:B1383,B17:B1383,0)=ROW(B17:B1383)-1))
このとき、BとCは全く同じデータが入っております。得られた結果は「0」です。
>結果は「855」とそれらしい数字になりました。 > =SUMPRODUCT(N(MATCH(C2:C1383,C2:C1383,0)=ROW(C2:C1383)-1)) ↑ ↑ 2行目から検索しているので、「1」を引いてMatchの結果と合わせるようにしています。
=SUMPRODUCT(N(MATCH(B17:B1383,B17:B1383,0)=ROW(B17:B1383)-1)) ↑ ↑ 17行目から検索するなら、1ではなく「16」にする必要があります。
(半平太)
もう見られないかもしれませんが、書き込みの際は毎回HNの記入をお願いします。
(川野鮎太郎)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.