• 締切済み

エクセルでセルの検索2

前の質問(QNo.1122144)で説明が不十分だった為再度投稿致します。 エクセル2000で複数検索条件に当てはまるセルの個数を関数で処理したいのですが、何かいい方法はありますか? たとえば、 A列 日付(2004/12/11など) B列 状態(○or×) C列 会社名(A社など) D列 品番(123456789など数値or文字列) となっていて、 A列が「2004/12/11」でB列が「○」でC列が「A社」の条件を満たすD列の重複を削除した状態のセルの個数を知りたいなどです。 オートフィルターで絞り込んでD列の重複を削除したイメージです。この方法だとこの処理をした時のみは個数が解りますが、やりたいのは編集した時にこの処理が反映されるようにしたいのです。 宜しくお願いします。

みんなの回答

  • jindon
  • ベストアンサー率43% (50/116)
回答No.3

配列式になります。 F1:日付1 G1:日付2 H1:状態 I1:会社名 として、夫々2行目に検索条件を入力 J1:商品名個数 J2: =IF(COUNTA(F2:I2)=4,ROUND(SUM(IF((A2:A100>=F2)*(A2:A100<=G2)*(B2:B100=H2)*(C2:C100=I2),1/COUNTIF(D2:D100,D2:D100))),),"") として、Ctrl + Shift + Enter で確定します。 日付が F2 以降、且つ G2 以前 で 状態が H2 会社名が I2 の 重複した商品名を1とカウントした個数を表示 データ範囲を100行に設定しあります。 拡大する時は、式中全ての「100」を等しく拡大する必要があります。

-TOM-TOM-
質問者

補足

回答有り難う御座います。 早速試させて頂きました。 下記のデータで試した所うまく行きません。 なぜでしょう? 日付 判断 会社 品番 2004/12/11 × A社 123456789 2004/12/11 ○ A社 123456789 2004/12/11 ○ A社 987654321 2004/12/20 × A社 987654321 2004/12/12 ○ A社 123456789 2004/12/21 ○ B社 123456789 2004/12/11 ○ B社 123456789 2004/12/20 ○ B社 987654321 下記の条件で入力すると、1になってしまいます。 データ2・5行目がダブりで、3行目で答えは2になるはずなんですが・・・  日付1   日付2   状態  会社名 商品名個数 2004/12/11 2004/12/30  ○   A社    1 宜しくお願いします。

回答No.2

ワーク用のセルを使えるなら、データベース関数を使えば、出来るんじゃないかと思います。 具体的には、   A列 B列 C列 D列 1 日付 状態 会社名 品番 2 2004/1/6 ○ A社 a1234 3 2004/1/12 ○ B社 a1234 4 2004/1/12 ○ A社 a1234 5 2004/2/18 × B社 B2345 6 2004/2/19 × C社 B2345 7 2004/3/3 ○ A社 C4325 8 2004/3/3 ○ A社 C4325 9 2004/3/3 ○ B社 C4325 10 2004/3/15 ○ C社 a1234 11 2004/4/15 × C社 B2345 12 2004/4/15 × C社 B2345 というような表があるとして、 仮にF列からをワーク用のセルとして使用します。 F列 G列 H列 I列 J列 K列 1 日付 状態 会社名 品番 2 2004/1/1 ○ A社 a1234 2 1 3 2004/1/1 ○ A社 B2345 0 0 4 2004/1/1 ○ A社 C4325 2 1 F1には調べたい日付、G1には状態、H1には会社名を入力し、I列には品番を入力します。 この際、I列にはD列に入力される品番をすべて入力する必要があります(ここが難点ですが)。 それに併せて、F2、G2、H2以下も各1列目と同じデータを入力します(が、これは、F2セルを =F$1 として、あとはこの式をコピーすればいいでしょう)。 そして、I2セルには、 =DCOUNTA($A$1:$D$31,"品番",F$1:I2)-SUM(I$1:I1) と入力して、品番の数だけI3以下にコピーします。 ここで表示されるのは、重複した数です。 なので、次のJ列に =IF(I2>0,1,0) とI列が1以上なら1,0なら0を表示するようにして、最後にI列のSUMをとれば、題意の重複を削除した数が得られると思います。 また、この方法の応用として、F列とG列の間にもう1列追加して、そこを「日付」として、下のようなデータベースを作れば、特定範囲の検索も可能です。 F列 G列 H列 I列 J列 K列 L列 1 日付 日付 状態 会社名 品番 2 >2004/1/1 <2004/3/31 ○ C社 a1234 1 1 3 >2004/1/1 <2004/3/31 ○ C社 B2345 0 0 4 >2004/1/1 <2004/3/31 ○ C社 C4325 0 0 この場合は「2004/1/1」~「2004/3/31」の間で「状態」が○、「会社名」がC社の場合です。

-TOM-TOM-
質問者

お礼

回答有り難う御座います。 参考にさせて頂きます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

質問を理解したか心許ないですが(特に最後の1文の意味が取れない) (データ) 日付 記号 会社 品目 同一日同一品 2004/1/10 山本建設 a1123 0 2004/1/11 ○ 山本建設 a1113 0 2004/1/11 ○ 山本建設 a1113 1 2004/1/11 ○ 山本建設 a1114 0 2004/1/11 ○ 山本建材 b1122 0 2004/1/11 ○ 山本建設 b1123 0 2004/1/1 山本建設 b1124 0 2004/1/1 山本建設 b1124 1 2004/1/15 ○ 近藤組 c1234 0 2004/1/16 今井工事 c1235 0 2004/1/17 ○ 山本建設 c1236 0 2004/1/18 木村水道 c1237 0 2004/1/19 大川塗料 c1238 0 ------ E列を作業列として使う。同一日・同一会社名・同一品があれば1をセットする。 E2の式は =SUM(IF(($A$1:A1=A2)*($C$1:C1=C2)*($D$1:D1=D2),1,0)) といれてSHIFTとCTRLキーを押しつつ、ENTERキーを押す。 E2の式をE3以下に複写する。 ----- 件数を出したいところのセル(上記データの範囲以外のセルに =SUM(IF((DATEVALUE("2004/1/11")=A2:A14)*("○"=B2:B14)*("山本建設"=C2:C14)*(E2:E14=0),1,0)) といれてSHIFTとCTRLキーを押しつつ、ENTERキーを押す。 件数は3 1月11日の山本建設4件のうち、a1113は1件と勘定して 3件が答えです。

-TOM-TOM-
質問者

補足

回答有り難う御座いました。 説明が下手で申し訳ありません。 御陰様で何とか出来ました! また、日付を範囲(2004/1/11~2004/1/18)で計算する事は可能でしょうか?

関連するQ&A

  • エクセルでセルの検索

    エクセル2000で複数検索条件に当てはまるセルの個数を関数で処理したいのですが、何かいい方法はありますか? たとえば、 A列 日付(2004/12/11など) B列 状態(○or×) C列 会社名(A社など) となっていて、 A列が「2004/12/11」でB列が「○」でC列が「A社」の条件を満たすセルの個数を知りたいなどです。 オートフィルターで絞り込むようなイメージです。 この結果を値として欲しいのです。 宜しくお願いします。

  • 複数列の中の文字列の検索、個数抽出

    どなたかお力をお貸しください。。 エクセル2003を使用しています。    A列 B  C  D 1  あ  う     あ 2  い  お  か  か 3  う        う 4  え     き  く 5  お  い  う  け Dの文字列のなかでA~C列の中に重複している文字が何個あるかを出したいです。 この場合D列は「あ、か、う、く、け」なので、A~C列にある「あ、か、う」が重複しているので、3個と出したいです。 もしくは重複していない「く、け」で2個と出したいです。 MATCH関数を使うと出来そうなのですが、MATCH関数だと配列の概念がなさそうなので、どうしたものかと。 条件として、 ・一つのセルで関数を使用して出す。 ・マクロ、計算用のセルはできたら使用しない。 ・空白セルもあり、文字列の完全一致のみ個数としてカウント。 ・列の数はだんだん増えてくるので、列数は増えても大丈夫なやり方の方がいいです。 COUNTIFで重複個数を出すと、「う」が複数回出てくるので、重複の個数が増えてしまい困っています。 もしかしたら不可能かもしれませんが、どなたかお知恵をお貸しください。 よろしくお願いいたします。

  • エクセル重複セルについて

    例えば    A   B 1  品名 数量 2 みかん  2 3 りんご  2 4 みかん  1 5 いちご  1 6 りんご  1  とあるとして、 他のセルに    C   D 1  品名  個数 2  みかん  3 3  りんご  3 4  いちご  1  のように 重複セルを削除し、なおかつ 個数もまとめるというようなことは エクセルでできないでしょうか? 宜しくお願いします。

  • エクセル 重複セルについて

    住所リストを制作しておりまして、 全リストから、一定の人を削除したリストを作りたいのですが、 方法が分かりません。 重複しているセルをソートできればと思うのですが、 どなたかお教えいただけますでしょうか?   A列  B列 C列  D列  1 住所 田中     太田 2 住所 斉藤     田中 3 住所 太田     木村 4 住所 木村     渡邉 5 住所 小林  B列にある氏名の中にD列の氏名が重複していたら、 下記のようなことができますでしょうか? ●C列に”重複”と出る   A列  B列 C列    1 住所 田中 重複 または ●B列と重複するD列のセルが隣に並び変えられる   A列  B列 C列  D列  1 住所 田中     田中 なお、A列とB列は一緒にしたいので、 B列だけが並び変えられることは避けたいです。 緊急SOSです! よろしくお願いいたします。

  • Excel>複数の列を比較して、重複セルの個数を得る方法

    Excelにて A列:aabb,bbcc,aacc B列:aacc,bbdd,ccdd C列:aacc,eehh,ccdd A,B列間で、重複セル「aacc」の1コ、 B,C列間で、重複セル「aacc」「ccdd」の2コ、 A,C列間で、重複セル「aacc」の1コ、 A,B,C列間で、重複セル「aacc」の1コ というように、複数の列を比較して、重複セルの個数を得る方法を教えてくださ い。複数の列では難解なら、2つの列を比較した場合でも結構です。 なお、重複セルの値、例えば「aacc」など得る必要はありません。個数のみで結 構です。宜しくお願い致します。

  • エクセルの質問です

    A列は空白 B列に商品をあらわ5桁のコードが入っています。 C列にも同じく商品を表す5桁のコードが入っているのですが、 B列のセルと隣り合ったセルには同じ数字が入っていません。 D列には取引先の会社名が入っています。     B1に入ってる5桁の数字と同じ数字が入っている C列のセルを探し、 そのセルの隣のD列の会社名をA1のセルに表示させたいのですが、 どう関数を組んだらいいのでしょうか? A   B    C   D     12345 12354 A社    12334 12345 B社    12443 12544 C社 上の表の場合B1とC2数字が同じなのでA1にB社と表示させたいのです。  B列が昇順で並んでいる C列とD列は重複しない という条件で <=vlookup(b1,c:d,2,false)> という回答を頂いたのですが、 B列が昇順で無い(ランダムに数字が入っています) D列には同じ会社名が何度も出てきます。 どうすればいいのかわかる方お願いします。

  • エクセル”検索条件はセル内のあいまい値”

    どうにも検討がつかず調べても対応したものができないのでお力添え願います。 D列に”A”と入力し、C列へ「D列のセル値が含まれた場合C値からB値をマイナスし それ以外は上のセル値を反映させる」としたいのですがどうするのがいいでしょうか。 直接値を指定してあいまい検索は『=IF(COUNTIF($A2,"*A*"),C1-$B2,C1)』でできたのですが この "*A*" 部分を”B”というときもあるのでD列のセル値であいまい検索としたいです。 A列の値は以下のように”A”の後ろに複数の数字がつくことがあります。 A列 A2 A3 B4 B3 B4 A2 A4

  • エクセル 検索

    Microsoft Excel 2007を使用しています。 条件を選んでマッチするデーターを表示する方法をお尋ねします。 A列、A1に「1」以下セルA10に「10」までの数字が昇順で入力されています。 セルB1からセルB10まで果物の名前が入力されています。名前の重複はありません。 セルC1に果物の名前を入力したらセルD1に関数を用いてそれに対応するA列の数値が表示されるようにできませんでしょうか。 エクセルのヘルプを見ましたが、旨く当てはまる関数を探し出せませんでした。 宜しくお願い致します。 例)  セルA5に「5」という数値があり、B5に「柿」が入力されている。 セルC1に「柿」と入力すると、セルD1に「5」が表示される。

  • ExcelのVBAに詳しい人に質問です

    B列に品名、C列に個数、D列に『COUNTIF関数』を使って品名が重複した場合に重複と出るようにしている表があります。※画像参照 そこで、個数(C列)が空白の行と、重複がある行を削除したいのですが、 これをVBAで簡単に処理できるようにできないでしょうか。 詳しい方アドバイスお願いします。

  • エクセルで重複するセルを削除したい

    エクセル2000で同じ内容のセルが複数あったとき、ひとつだけを残し他を削除する方法を教えてください。 ただし少し条件があります。 データーは5列100行位からなっています。 A列にある重複したデーターのセルを削除したいのですが、A列は同一なのですがB列は異なっています。B列に数字が入っているセルとうでないセルがあるのですが、数字が入っているものを残したいのです。 具体例は次のとおりです。 A列に 「ホンダCIVIC」 B列 「-」と書かれた行と A列に 「ホンダCIVIC」 B列 「2」と書かれた行、 A列に 「ホンダCIVIC」 B列 「5」と書かれた行、 のA列だけを見ると重複した3行が有ったとします。 B列に「5」または「2」の入った行ひとつだけ残し、他を削除したいのです。 何かよい方法があればお教えください。よろしくお願いします。

専門家に質問してみよう