[[20080319030833]] 『エクセル関数_複数列に対する複数条件検索』(たちお) ページの最後に飛ぶ

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

 

『エクセル関数_複数列に対する複数条件検索』(たちお)

A列に任意の日付(シリアル値)が入力されていおり、
B列に任意の商品名(文字列)が入力されている状態で、

検索条件

「A日付が 2008/1/1以上 且つ 2008/1/31以下」

 且つ

「B商品名に ●を含む」

が成り立つ行数をカウントしたいのです。

但し、
A、B列のデータが何行目まで入力されているかは、
日々変更される為、検索範囲を「A、B列全体」とします。

作業セルを作らずに、
一発でカウント結果を出すには
どのような関数を組み立てれば良いでしょうか?
ご教授願います(EXCEL2000/WindowsXP)。


 配列数式を使用すれば可能かもしれませんが、
 条件がはっきりしませんので無理かもしれませんね
 (EXCEL2007であれば可能かな?)

 >日々変更される為、検索範囲を「A、B列全体」とします。 
 範囲を多めに取ることは不可なのかな?


 ご回答有難う御座います。
 EXCELのバージョンは2003です(誤記です。申し訳御座いません)。
 さて、

 >範囲を多めに取ることは不可なのかな?
 セル範囲を固定(100行目迄)し、下記関数で試したところ上手く結果をカウント出来ました。
 {=SUM((A1:A100>=DATE(2008,1,1))*(A1:A100<=DATE(2008,1,31))*(B1:B100="●"))}
 または
 =SUMPRODUCT((A1:A100>=DATE(2008,1,1))*(A1:A100<=DATE(2008,1,31))*(B1:B100="●"))

 @検索範囲を列全体にするとエラーになります。
 配列は列全体を対象とすることは出来ないのでしょうか?

 A商品名の部分一致検索の為に、
 (B1:B100="●")を(B1:B100="●"&"*")とするとうまく行きません(結果=0)。
 改善策をご教授頂けないでしょうか?
 (たちお)

こんにちは〜♪

 >@検索範囲を列全体にするとエラーになります。
 >配列は列全体を対象とすることは出来ないのでしょうか?

 A:A B:B など出来ませんネ。。。

 名無しさんの
 >範囲を多めに取ることは不可なのかな?

 そう思います。。。

 >A商品名の部分一致検索の為に、
 >(B1:B100="●")を(B1:B100="●"&"*")とするとうまく行きません(結果=0)。
 >改善策をご教授頂けないでしょうか?

 今回の様な場合、FIND関数を使うことが多いですね。

 >検索条件 
 >「A日付が 2008/1/1以上 且つ 2008/1/31以下」 
 >且つ 
 >「B商品名に ●を含む」 

 は、こんな式にもすることが出来ます。

 =SUMPRODUCT(((TEXT(A1:A100,"yyyymm")="200801")*(ISNUMBER(FIND("●",B1:B100)))))

 ご参考にどうぞ。。。

 。。。Ms.Rin〜♪♪


 ISNUMBER(FIND("●",B1:B100)) を使って目的達成できました!
 配列で列全体を対象に出来ない件も勉強になりました。
 有難う御座いました!


コメント返信:

[ 一覧(最新更新順) ]


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