• ベストアンサー

エクセルで・・・・・

エクセルに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/8248)
回答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/8248)
回答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% (7418/18948)
回答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

  • エクセルで2つの条件が一致するものを抽出

    エクセルで2つの条件が一致するものを抽出し印を付けたいのですが…    A   B   C  1  100  1.5  あ 2  100  1.5  い 3  200  1.5  あ 4  100  1.2  い のようになデータがあり、AとB共一致するもののDに○(この場合1Dと2Dに○…数字でもいいですが)を表示させたいのですが… いろいろ検索してもわかりません。 どなたか、よろしくお願いします。

  • エクセル

    例えば 1~100の中の数字をランダムに幾つか取り出した、Aグループ 同じく1~100の中の数字をランダムに幾つか取り出した、Bグループ AとBのグループの中で同じ値のものだけを抽出、表示する方法ってありますか? エクセルの条件付表示で何とかできないものかと関数について色々勉強しているのですがわかりません。 このような方法があるかもわからないのですが、もしご存知であれば教えてください。 よろしくお願いします。

  • エクセルで名簿のグループごとの人数を数える

    エクセルで名簿のグループごとの人数を数えたいのですが、B列に以下のような数字を表示させるにはどの様な式を入力すればよろしいでしょうか。因みにA列はグループの種類です。    A   B 1  a   2 2  a 3  c   1 4  d   3 5  d 6  d

  • エクセルの使い方で困っています

                   A   B  C   D     1   a   b   c  空欄 上記のように1行目のA列にa, B列にb, C列にcというある数字が存在するときに、 aが正の値のときにD列の空欄のセルに値bを、 aがそれ以外(0か負)の値のときにD列の空欄のセルに値cを表示させたいとき、 どのように関数などを設定すればよいでしょうか? エクセル初心者なので、このような条件付き抽出の方法がよく分かりません。 よろしくお願いします。

  • エクセルでの重複する条件の数を数え方を教えてください。

    エクセルでの重複する条件の数を数え方を教えてください。 エクセルのデータ処理をしているのですが 2つ以上の条件をいくつか設定して、その数を知りたいのですが うまくできないのでどなたか知恵を貸してください。 B   C  D 1 11  1  1 2 11  3  1 3 12  1  1 4 13  1  2 5 14  2  2 6 14  3  2 7 14  3  2 8 15  1  2 9 15  3  2 10 16  1  3 と数字が並んでいる中で、 1、D列を数字毎に一つのグループとして、その中の同じ数字を一つとして考えるとき全部でいくつあるか  を数えたい場合はどうすればいい (D列1のグループの中にB列では2つあるという感じで) 2、D列を数字毎に一つのグループとして、B列の内訳をC列とすると、D列の一つのグループの中に   C列の「1」と「3」の数、「2」と「3」の数をそれぞれ数えたい時はどうしたらよいでしょうか   (D列2のグループで、B列が同じ数字の「1、3」の全部の数は3「2、3」の全部の数は3)   となるようにパシッとなんかできることがあれば教えてください。 説明がうまくいってないかもしれませんが、よろしくお願いしますm(_)m

  • エクセルである範囲の中での最大値、最小値を簡略に抽出する方法について

    はじめまして、この度はよろしくお願いします。 エクセルで例ば A列        B列        C列 0.0367659      a 0.033633907 0.025824788 0.020930498 0.011846518 0.006997131 0.002075281 -0.001972752   b -0.005546433 -0.009688783   c -0.014273939 -0.019588186 -0.023865392   d のように並んでいたとして、B列のa~b、b~c、c~d、の範囲の中でA列の最大値または最小値を求めたいのですがどのようにすればよろしいのでしょうか?(実際はabcdには数字が入ります) 今まで当方はC列に文字関数のmax,minを使い一箇所づつ範囲を指定しながらやってきたのですか、時間が膨大にかかってしまいます。 簡略に抽出できる方法があれば教えてください。

  • エクセルを簡単に参照するには?

    言葉では説明しづらい+説明下手ですがお助けください。 ●列or行ごとに数字が並んでいる。(a,b,cが行の名前) a:12,13,16,15,13… b:11,13,11,12,14,11,11,12… c:17,17,13,14,15,11… ↑こんな感じに何個も並んでいる ●オートフィルタなどである条件にしぼり欲しい行を抽出 a: c: d: f: の行が欲しいと仮定 こういった場合に欲しい行の数字だけを抜き出し1行に並べる簡単な方法はないでしょうか? (a:)12,13,16,15,13…(c:)17,17,13,14,15,11……  ↑こんな感じ。このとき行の名前はいらないので、できれば切りたい。 そして並んでいる数字郡のシート(1)と条件抽出する際のシート(2)は別。 (1) a:12,13,16,15,13…     b:11,13,11,12,14,11,11,12…    c:17,17,13,14,15,11… (2)a:男、20代、170cm、50kg    b:女、30代、160cm、40kg    c:男、20代、175cm、50kg  →男でフィルタ    a:男、20代、170cm、50kg    c:男、20代、175cm、50kg →どこかのシートに(2)で抽出されたグループについて(1)の数字郡から抜き出したい。 どのように伝えればよいのか分かりませんがよろしくお願いします。

  • エクセル関数の質問です。

    A1~A6を使って6種類、B1~B6を使って6種類、C1~C2を使って2種類、D1~D2を使って2種類の組み合わせをエクセルでできないかなあと思っています。 それぞれの列からひとつずつの抽出で、何パターンの組み合わせが出来るか、というような式はありますでしょうか。 昔数学でやったような気もするんですが、思い出せません・・・。 エクセル関数がなければ、数学の式でもいいです。 シグマとかってこれでしたっけ…? どなたかお願い致します。

  • エクセルのカウント

    宜しくお願いします。 あるデータをCSV形式で抽出したのですが、以下のような状態になっています。 / A B 1 a Windows 2 a Linux 3 a Sun 4 b Windows 5 b Sun 6 c linux 7 c Sun 8 d Windows 12345678は行 ABは列になります。 ここで抽出したいのはA1:A8の間に何種類の文字があるかです。 この場合は、abcdの4種類なので「4」という数値が出て欲しいのです。 データ件数が13000行ほどあるので関数やVBでどうにかならないかなと思い、質問しました。 宜しくお願いします。

  • エクセルの関数についてです

    大変恐縮ですが、エクセルの関数について教えていただきたいと思います。 例 A B C D 1 175 141 210 98 2 47 70 417 39 3 64 845 32 626 4 79 194 54 85 5 224 68 85 110 上記A列からD列の数字が1行目から5行目まで5セットあります。 その中でAはBより大きくCより小さい(B<A<C)なおかつBはAより小さく Dより大きい(A>B<D)。 と、この条件を両方満たしている行だけを抽出したいと考えております(例では1行目が該当します)。 手元に約6万行分のデータがあり、何とか関数で処理したいものの詳しく分からず困っています・・・。 お忙しいところ申し訳ございませんが、どなたか関数をご存じでしたら 教えてくださると幸いです。 よろしくお願い致します。

専門家に質問してみよう