プロが教えるわが家の防犯対策術!

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

A 回答 (6件)

>たとえば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以上の数値のあるセルになります。
    • good
    • 0

こういう抜き出し問題は、エクセル関数以外でやったほうが良いと思うが。


フィルタオプションの設定など良いと思うが。
ーー
私は以前から、作業列を1列使う方法をしつこく書いている。Googleで「imogasi方式」で照会してくれれば、抜き出し問題と色んな解法のオンパレードです。
作業列には
(1)1列にの場合
例データ Sheet1
A列  B列(作業列)
121
9
2
3
342
10
6
9
113
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列(作業列)
1245131
5321
645132
7534
831213
2347164
6656
条件に合う行に連番を振っているだけ。
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を下方向錦複写
結果
124513
64513
83121
234716
#N/A#N/A#N/A#N/A
#N/Aを出さない方法は上記imogasi方式を参照。
    • good
    • 0

こんにちは!


一例です。
↓の画像で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
「特定の列から一定以上、または未満の値を抽」の回答画像5
    • good
    • 2

関数式にて、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です。
使い勝手のいいように、色々変更してお使い下さい。

マクロを利用するともっと簡単に出来ますので、マクロを勉強してみては。
    • good
    • 1

例えば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)),""))
    • good
    • 0

 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

に変えて下さい。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!