[[20070731092649]] 『FINDの使い方』(mama) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『FINDの使い方』(mama)
 おはようございます。
 現在、日次の集計を行っているのですが。
 分類の項目を判別するにあたり、SUMPRODCUTとFINDを使用しています。

 あああ(一般優先) 
 あああ
 あああ
 いいい(一般優先)
  :
  :
 とあるように、「あああ」と「あああ(一般優先)」が同じものとして
 集計できる数式 結果は「あああ」が「3」
 この場合で使用している数式
 =SUMPRODUCT((FIND(A1,A3:A7)))

 また
 あああ(CSV)
 あああ
 あああ
 あああ
 あああ(CSV)
  :
  :
 別のものと判別して計算できるようにする。結果「あああ(CSV)」が「2」、「あああ」が「3」

 この場合だと、結果が「5」となってしまうので、FINDを使用しないほうが宜しいのでしょうか。
 ご教授よろしくお願いいたします。
 (mama)


 =SUMPRODUCT((FIND(A1,A3:A7)))は、#VALUE!が戻るでしょう?

 ご提示の事例は、通常は、このように書くようです。

 =COUNTIF(A3:A7,A1&"*")は、あああXXXXと左側が一致、
 =COUNTIF(A3:A7,A1)は、あああは、セル内全部一致。     (6UP) 

 6UPさま。

 >=SUMPRODUCT((FIND(A1,A3:A7)))は、#VALUE!が戻るでしょう?

 A1セルに「あああ」と検索文字を設定し、A3以降に
 あああ
 あああ
 あああ(一般優先)
 あああ
 あああ(一般優先)

 これは5と返ります。
 SUMPRODUCTを使用しているのは、右列に日付が設置されているので数式は変更するごく一部をご提示させていただきました。

 	a	      b	c
1	分類	     日時	件数
2	あああ	     1月1日	 3
3			
4	あああ	     2月1日	
5	あああ	     1月1日	
6	あああ	     2月1日	
7	あああ	     1月1日	
8	あああ(一般優先)	 1月1日	

 件数のC2に =SUMPRODUCT((ISNUMBER(FIND($B3,$B$4:$B$10))*($C$4:$C$10=C$3)))

 この場合は、あああ(一般優先)も含む件数が返されます。
 これはこれで、使用するのでいいのですが、
 中にはあああとあああ(一般優先)と別で集計しなければならないときがあるので
 その部分だけ数式を変更したく思っています。

 できれば、検索範囲でデータの増減がある場合の範囲をどのように設定すれば宜しいでしょうか。
 65536とすると重くなるような気がしておおまかに5000とかにしています。
 (mama)


 >=SUMPRODUCT((FIND(A1,A3:A7)))は、#VALUE!が戻るでしょう?

 ご提示の表では、FIND(A1,A6)が#VALUE!を戻しています。  (6UP)

   A
 1 あああ
 2
 3 あああ(一般優先) 
 4 あああ
 5 あああ
 6 いいい(一般優先)
 7  :

 回答は、既に差し上げていますが、=SUMPRODUCT()は、配列関数です。
 =COUNTIF()も重いと感じていますが、=SUMPRODUCT()よりは、多少は、ましでしょう?

 =SUMPRODUCT((ISNUMBER(FIND($B3,$B$4:$B$10))*($C$4:$C$10=C$3)))
数式が表とマッチしてないような
ISNUMBER(FIND($B3,$B$4:$B$10))   FINDになぜこだわるのか

 >=COUNTIF(A3:A7,A1&"*")は、あああXXXXと左側が一致、
 >=COUNTIF(A3:A7,A1)は、あああは、セル内全部一致。     (6UP)
でいいような

 (HHHH)


 6UPさま。
 失礼しました。
 ISNUMBERが抜けていました(^^;)
 COUNTIFでも日付等の複数にあたる条件も可能なのでしょうか?
 DCOUNTAも考えておりましたが、SUMPRODCUTが条件にあったかと思った次第でございます。

 日付も対象範囲とさせたかったので。
 COUNTIFで試してみます。
 (mama)

 HHHHさま。
 エクセルからこちらへ貼り付ける際に、1,2・・・とa,bの行と列を挿入してしまったときに
 範囲がずれてしまいました。

 集計条件として、必要な項目は、分類の「あああ」・「いいい」など
                B列にある日付

 これを条件としたいので、DCOUNTAやSUMPRODCUTを使用していました。
 FINDにこだわっているつもりはありませんが、複数の配列を条件にする場合は
 使ったようがよいのかと思っただけなのです。
 (mama) 

 =DCOUNT()と=SUMPRODUCT()の事例です。
 ご使用のエクセルが、Excel97の場合には、A2は、'=あああとして下さい。   (6UP)

    A          B     C
 1  分類        日時    件数
 2  あああ       1月1日    2 ←=DCOUNT(A4:B9,2,A1:B2)
 3                   2 ←=SUMPRODUCT((A5:A9=A2)*(B5:B9=B2))
 4  分類        日時	
 5  あああ       2月1日	
 6  あああ       1月1日	
 7  あああ       2月1日	
 8  あああ        1月1日	
 9  あああ(一般優先) 1月1日	

 こんにちは〜♪

 私も6upさんご提示のDCOUNTが良いと思いますが

 文字列の検索条件で完全一致の場合は
 エクセル97、2000、2002、2003 と 2002では
 条件の入力の仕方が異なるので、注意された方がいいですね。。。

 6upさんの
 >ご使用のエクセルが、Excel97の場合には、A2は、'=あああとして下さい。

 は、この事を書かれたんじゃないかと思うんですが。

 ★検索条件とバージョンによる検索結果の違いについて
 http://www.kenzo30.com/ex_kisotyu/ex_ks_tyukyuxb3_2_1.htm

 これは、DSUMについて書かれていますが
 私は今、2003なので、DCOUNTしてみましたが同じでした。

 その上で、こんな表にして

 ┌─┬────────────┬────┬────┬────┬────┬────┐
│  │           A            │   B    │   C    │   D    │   E    │   F    │
├─┼────────────┼────┼────┼────┼────┼────┤
│ 1│分類                    │日時    │        │分類    │日時    │        │
├─┼────────────┼────┼────┼────┼────┼────┤
│ 2│あああ                  │  2月1日│        │=あああ │  1月1日│       2│
├─┼────────────┼────┼────┼────┼────┼────┤
│ 3│あああ                  │  1月1日│        │=いいい │  1月1日│       2│
├─┼────────────┼────┼────┼────┼────┼────┤
│ 4│あああ                  │  2月1日│        │        │        │        │
├─┼────────────┼────┼────┼────┼────┼────┤
│ 5│あああ                  │  1月1日│        │        │        │        │
├─┼────────────┼────┼────┼────┼────┼────┤
│ 6│あああ(一般優先)      │  1月1日│        │        │        │        │
├─┼────────────┼────┼────┼────┼────┼────┤
│ 7│いいい                  │  1月1日│        │        │        │        │
├─┼────────────┼────┼────┼────┼────┼────┤
│ 8│いいい                  │  1月1日│        │        │        │        │
├─┼────────────┼────┼────┼────┼────┼────┤
│ 9│いいい(一般優先)      │  1月1日│        │        │        │        │
├─┼────────────┼────┼────┼────┼────┼────┤
│10│                        │        │        │        │        │        │
└─┴────────────┴────┴────┴────┴────┴────┘

 ★AB列を表の様にして、
  私の場合は、2003 なので

 D2セル→  ="=あああ"  または '=あああ
 D3セル→ ="=いいい"  または '=いいい

 と入れてます。。

 F2セルへ
 =DCOUNT(A:B,2,$D$1:E2)-SUM($F$1:F1)
 F3へコピー。。。

 とすれば、式が列参照になりますので
 挿入削除でも対応出来るかと思います

 ご参考にどうぞ。。。。

 。。。。Ms.Rin〜♪♪


 6UPさま、Ms.Rinさま。
 ご教授ありがとうございます。

 DCOUNTがスマートでよさそうですね。
 現状、SUMPRODUCTを使用してきましたが、
 BOOKを開いた際に、自動計算されないのですよね。
 =でデータソースをリンクさせていますが、
 SUMPRODUCTは更新されませんか?
 オプションでの自動計算でも値の更新はされていなかったです。
 ダブクリをして、エンタを押すと、「値の更新」と窓がでてきて、
 毎回対象になるBOOKを選択する作業が面倒なのですが、何か手段はありますか?
 DCOUNTだとそのようなことはなく、すむのでしょうか。
 ちなみに、EXCEL2003を使用しています。
 (mama)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.