[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセル関数_複数列に対する複数条件検索』(たちお)
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.