• ベストアンサー

特定の列から一定以上、または未満の値を抽出したいです。

特定の列から一定以上、または未満の値を抽出したいです。 たとえばA列だけに絞って、10以上の数字がないかどうか等。 A~D列までに10以上の数字がないか、というのもできれば。

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

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

>たとえばA列だけに絞って、10以上の数字がないかどうか等。 ■オートフィルタ A列を選択して「データ」「フィルタ」「オートフィルタ」を実行 A1で▼をクリックしてオプションから「10」「以上」で抽出 ※10未満のセルは非表示になります。 ■条件付き書式 A列を選択して「書式」「条件付き書式」を実行 「セルの値が」「次の値以上」「10」で書式ボタンでパターンの色を選択 ※色の付いたセルが10以上の数値のあるセルになります。 >A~D列までに10以上の数字がないか、というのもできれば。 ■オートフィルタ E列にて、下記の数式を設定 E2=COUNTIF($A2:$D2,">=10") E列を選択して「データ」「フィルタ」「オートフィルタ」を実行 E1で▼をクリックしてオプションから「1」「以上」で抽出 ※10以上のセルのない行は非表示になります。 ■条件付き書式 A:D列を選択して「書式」「条件付き書式」を実行 「セルの値が」「次の値以上」「10」で書式ボタンでパターンの色を選択 ※色の付いたセルが10以上の数値のあるセルになります。

その他の回答 (5)

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

こういう抜き出し問題は、エクセル関数以外でやったほうが良いと思うが。 フィルタオプションの設定など良いと思うが。 ーー 私は以前から、作業列を1列使う方法をしつこく書いている。Googleで「imogasi方式」で照会してくれれば、抜き出し問題と色んな解法のオンパレードです。 作業列には (1)1列にの場合 例データ Sheet1 A列  B列(作業列) 12 1 9 2 3 34 2 10 6 9 11 3 B列の式はB2に =IF(A2>10,MAX($B$1:B1)+1,"") 下方向に式を複写して上記 Sheet2に A2に =INDEX(Sheet1!$A$1:$A$100,MATCH(ROW()-1,Sheet1!$B$1:$B$100,0),COLUMN()) 下方向に式を複写。 12 34 11 #N/A (2)4列にの場合 Sheet3 質問と違って10以上のある列を抜き出した。 A列  B列  C列   D列  F列(作業列) 12 4 5 13 1 5 3 2 1 6 4 5 13 2 7 5 3 4 8 3 12 1 3 23 4 7 16 4 6 6 5 6 条件に合う行に連番を振っているだけ。 F2の式 =IF(MAX(A2:D2)>10,MAX($F$1:F1)+1,"") 下方向に式複写。結果上記。 Sheet4に行って 行番号とSheet3の連番を関連付けてデータを持ってきている。 A2は=INDEX(Sheet3!$A$1:$D$100,MATCH(ROW()-1,Sheet3!$F$1:$F$100,0),COLUMN()) D2まで式複写。A2:D2を下方向錦複写 結果 12 4 5 13 6 4 5 13 8 3 12 1 23 4 7 16 #N/A #N/A #N/A #N/A #N/Aを出さない方法は上記imogasi方式を参照。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんにちは! 一例です。 ↓の画像でK2セルに以上・L2セルに未満の数値を入力します。 そして、F2セルに =IF(SUMPRODUCT((A$2:A$1000>=$K$2)*(A$2:A$1000<$L$2))<ROW(A1),"",INDEX(A$2:A$1000,SMALL(IF(A$2:A$1000>=$K$2,IF(A$2:A$1000<$L$2,ROW($A$1:$A$999))),ROW(A1)))) これは配列数式になってしまいますので、 この画面からコピー&ペーストしただけではエラーになると思います。 F2セルに貼り付け後、F2キーを押す、または貼り付けセルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 尚、数式は1000行目まで対応できるようにしていますが、データ量によって範囲指定の領域はアレンジしてみてください。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m

回答No.4

関数式にて、10以上の数字ではなく、10以上の数値を抽出する方法を書きます。 A1に抽出数値(10)を入力することにします。 A2に抽出結果を出力することにします。 抽出対象データは、A3~D12に存在しているものとします。 (1)E3に次の関数式を入力します。 [=IF(OR(A3>$A$1,A3=$A$1),"A","")] (2)E3をコピーし、E3~H12に貼り付けます。 (3)A2に次の関数式を入力します。 [=COUNTIF(E3:H12,"A")] (4)E~H列を選択し、右クリックし、表示しないを選択します。 これでOKです。 使い勝手のいいように、色々変更してお使い下さい。 マクロを利用するともっと簡単に出来ますので、マクロを勉強してみては。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

例えばA1セルからA100セルの間で10以上の数値を抽出するのでしたら次の式を例えばC1セルに入力し下方にオートフィルドラッグします。値の大きい順から下に並べて表示されます。 =IF(ROW(A1)>COUNT(A$1:A$100),"",IF(LARGE(A$1:A$100,ROW(A1))>=10,LARGE(A$1:A$100,ROW(A1)),"")) 例えばA1セルからD100の間で10以上の数値を抽出するのでしたら次の式を例えばF1セルに入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>COUNT(A$1:D$100),"",IF(LARGE(A$1:D$100,ROW(A1))>=10,LARGE(A$1:D$100,ROW(A1)),""))

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 Excelを使用する場合の話なのでしょうか?  仮にそうだとして、関数を使用して抽出される場合は、以下の様な方法があります。  今仮に、A~D列から10以上の数値を抽出するとしますと、まずは、抽出した値を表示させる列の1行目にあるセルに、次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNTIF(A:D,">=10"),"",LARGE(A:D,ROWS($1:1)))  次に上記の数式を入力したセルをコピーして、同じ列の2行目以下のセルに貼り付けて下さい。  これで、抽出された10以上の数値が、値の大きい順番に表示される様になります。  尚、値の小さい順番に表示させる場合には、入力する数式を次のものに変えて下さい。 =IF(ROWS($1:1)>COUNTIF(A:D,">=10"),"",SMALL(A:D,COUNT(A:D)-COUNTIF(A:D,">=10")+ROWS($1:1)))  もし、抽出した数値を表示させるのが、1行目からではなく、2行目から始めるのでしたら、数式中にある全ての ROWS($1:1) と記されている箇所を ROWS($2:2) に変えて下さい。  それから、抽出元の列がA~D列ではなく、A列のみとする場合には、数式中にある全ての A:D と記されている箇所を A:A に変えて下さい。

関連するQ&A