• ベストアンサー

エクセルで・・・・・

エクセルにABCDの4種類で1つの数字グループが大量にあります(300位) この中から其々の条件にあった2種類の数字群を抽出したいのです。 条件(1)はA>DでA+40>BとD-20<Cのものがいくつあるか 条件(2)はA<DでA-40<CとD+20>Bのものがいくつあるか です。 コピペで出来る回答お待ちしております。

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.4

添付図参照 F1: =AND(A1>D1,A1+40>B1,D1-20<C1)*1 E1: =AND(A1<D1,A1-40<C1,D1+20>B1)*1 H1: =SUM(E:E) H4: =SUM(F:F) 》 時間的に下段にコピーはできません そんかことはアンメーよ! 範囲 E1:F1 のフィルハンドルを「エイヤッ!」とダブルクリック一発で、範囲 E1:F1 がズズーッと下端まで一瞬でコピー&ペーストされます。 添付図は300行だけど、2000でも3000行でもオチャノコサイサイでッす。

brownagas
質問者

お礼

初心者の私でもすぐに実行することができました。 丁寧にありがとうございました。

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>以下のような回答お待ちしております。 始めに前回の回答(No.3)の数式に誤りがありましたことをお詫びします。 条件(2)で(D:D+20<B:B)は不等号の向きが逆でした。 =SUMPRODUCT((A:A<D:D)*(A:A-40<C:C)*(D:D+20<B:B))         ↓ =SUMPRODUCT((A:A<D:D)*(A:A-40<C:C)*(D:D+20>B:B)) リンクの質問内容とあなたの質問内容に大きな違いがありますので同様な回答にはなりません。 条件(1)で使う数式を条件(2)と同じにして対象範囲を変化させるにはセル位置の相関性が必要です。 あなたの設問で条件の数式を以下のように置き換えて不等号の向きと加減算の符号を合わせても演算対象は関連性が全くありませんので列の置き換えができません。 条件(1)はA>DでA+40>BとD-20<C→and(A>D,(A+40)>B,(D-20)<C) 条件(2)はA<DでA-40<CとD+20>B→and(D>A,(C+40)>A,(B-20)<D)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>条件(1)はA>DでA+40>BとD-20<Cのものがいくつあるか and(A:A<D:D,(A:A+40)>B:B,(D:D-20)<C:C)と言う条件で良いでしょうか? >条件(2)はA<DでA-40<CとD+20>Bのものがいくつあるか and(A:A<D:D,(A:A-40)<C:C,(D:D+20)>B:B)と言う条件で良いでしょうか? >コピペで出来る回答お待ちしております。 自分で論理を考えないと進歩しませんがそれで良いのでしょうか? 条件(1) =SUMPRODUCT((A:A>D:D)*(A:A+40>B:B)*(D:D-20<C:C)) または =COUNT(INDEX(0/((A:A>D:D)*(A:A+40>B:B)*(D:D-20<C:C)),)) 条件(2) =SUMPRODUCT((A:A<D:D)*(A:A-40<C:C)*(D:D+20<B:B)) または =COUNT(INDEX(0/((A:A<D:D)*(A:A-40<C:C)*(D:D+20<B:B)),)) Excel 2007以降のバージョンのCOUNTIFS関数では配列または比較値に演算式を使えませんので作業用の列を使わないとカウントできません。

brownagas
質問者

補足

初心者ですみませんが関数をどのように使うかがわかりません。以下のような回答お待ちしております。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14128533894

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.2

E列以降にそれぞれの条件を満たせば1と言う感じの数式を記入して下へコピー でいいんじゃない?ってかそれを望んでいるような質問ですね。 それに合わせて回答してみます。 配列関数で一発表示って事もできますが、質問者さんがその意味を理解しなければ意味がありませんので ・・・たぶん理解すらできないような気がするんです・・・ここでは割愛します。 (便利なんですけどね) また、質問文からして条件の表記が間違っているような気がするので、二通りの回答を示してみます。 回答1 A>D and A+40>B or D-20<C A<D and A-40<C or D+20>B として答えてみます。 E1セルに  =IF(OR(AND(A1>D1,A1+40>B1),D1-20<C1),1,0) F1セルに  =IF(OR(AND(A1<D1,A1-40<C1),D1+20<B1),1,0) で下までコピー E列とF列のそれぞれの合計が条件に一致した数になります。 回答2 A>D and A+40>B and D-20<C A<D and A-40<C and D+20>B として答えてみます。 E1セルに  =IF(AND(A1>D1,A1+40>B1,D1-20<C1),1,0) F1セルに  =IF(AND(A1<D1,A1-40<C1,D1+20<B1),1,0) で下までコピー E列とF列のそれぞれの合計が条件に一致した数になります。

brownagas
質問者

補足

すべてandでいいですが、ひとつの数式で条件(1)が55個とか、もうひとつの数式で条件(2)が60個とかの一括した抽出がしたいのですが・・・・。 300組くらいのシートが2000位あるので時間的に下段にコピーはできません。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

>条件(1)はA>DでA+40>BとD-20<Cのものがいくつあるか A>DはAND条件として、A+40>BとD-20<Cのものは AND条件ですか?それともOR条件?それとも個々の件数を求めるのですか? 全部がAND条件の場合 =COUNTIFS(A:A,">"&D:D,A:A,">"&B:B-40,D:D,"<"&C:C+20) 後半がOR条件の場合 =COUNTIFS(A:A,">"&D:D,A:A,">"&B:B-40)+COUNTIFS(A:A,">"&D:D,D:D,"<"&C:C+20)-COUNTIFS(A:A,">"&D:D,A:A,">"&B:B-40,D:D,"<"&C:C+20) 後半が個々の場合 =COUNTIFS(A:A,">"&D:D,A:A,">"&B:B-40) =COUNTIFS(A:A,">"&D:D,D:D,"<"&C:C+20) 条件(2)は単純に上記(1)の式でCOUNTIFS内の条件のBとC,>と<,+と-を入れ替えるだけです。

関連するQ&A