こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

[Excel]複数の数値から条件にあった数値の抽出

こんばんわ。

Excel中の数値の列(A)から別の数値の列(B)中の数値と一致しない数値を抽出することはできるのでしょうか?
ただし、ここでの『一致しない』とは、数値の列(B)中の数値と誤差±0.5の範囲にないということです。

例えば、以下のようなことができれば良いのです。

A   B
0.5   1
1.2  5
7   8
9   10 →    抽出結果 7, 9

この様なことはできるのでしょうか?できたら方法を教えてください。また、このようなことができるフリーソフト等があるというような情報も大歓迎です。

Excelについては初心者であり、数値を打ち込んだり四則演算ができる程度です。
どうか皆さんのお力を貸してください。よろしくお願いします。

ちなみに、ExcelはMicrosoft Excel 2007を使用しています。

投稿日時 - 2011-02-04 00:15:13

QNo.6496276

すぐに回答ほしいです

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

範囲外(一致しないモノ)を一発で抽出する事も一応可能ですが,準備がかなりメンドクサイので,

1.数値の列(A)を複製する
2.複製リストの中から,範囲内(±0.5以内)を抽出する
3.抽出した要素を削除する
4.残った要素が一致していないものとして抽出される

という段取りについてお話しします。


添付図:
値のリストをA8以下に複写する
D2に
=">="&C2-0.5
E2に
="<="&C2+0.5
と記入し,判定のリストの数だけ下向けに複写する
D1に
=A1
E1に
=A1
と記入する

データタブの並べ替えとフィルタグループの中にある,詳細設定を開始する
 抽出先 選択範囲内
 リスト範囲 $A$8:$A$12
 検索条件範囲 $D$1:$E$5
を設定し,OKする

範囲内の0.5と1.2が抽出されるので,選んで削除する(右クリックして行を削除する)
データタブでフィルタの「クリア」を行うと,残り物の7と9が範囲外である。
以上です。



#超絶ムズカシー関数の式で「抽出」させる事もやれば出来ますが,実地に適用できないのでやめた方が良いです。

投稿日時 - 2011-02-04 01:34:57

お礼

ご回答ありがとうございます。

回答して頂いて申し訳ないのですが、質問の問題は解決できました。

投稿日時 - 2011-02-07 18:47:00

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

補助列を使って表示させるなら、以下のような関数を利用します(添付画像参照)。

C2セル(以下オートフィル)
=IF(AND(INDEX((ABS($B$2:$B$100-A2)>0.5)*(A2<>""),)),ROW(),"")

E2セル(以下オートフィル)
=IF(COUNT(C:C)<ROW(A1),"",INDEX(A:A,SMALL(C:C,ROW(A1))))

投稿日時 - 2011-02-04 14:54:45

お礼

ご回答ありがとうございます。

回答して頂いて申し訳ないのですが、質問の問題は解決できました。 

投稿日時 - 2011-02-07 18:47:52

ANo.4

抽出するためには
『誤差0.5』範囲かどうかの判断材料が必要なのはわかりますね?。

それを求め、C列にでも表示することから始めたら良いです。

その値とA列を比較しD列にでもマーク表示すれば対象行が特定できる。


A列B列だけ見ていても答えはすぐ出せません。


ワークシート、ですから必要なものを挙げてみる。


フリーソフトに頼るレベルでないです。探す方がむだ足。

投稿日時 - 2011-02-04 13:00:32

お礼

ご回答ありがとうございます。

回答して頂いて申し訳ないのですが、質問の問題は解決できました。

投稿日時 - 2011-02-07 18:47:38

ANo.3

質問の意味がしっかり表現されてないのでは、文章表現力を磨くのが先だ。
(1)質問の意味は
 A. 各行(1行)単位に判断するのか。
 B またはA列の1セルの値がB列全体の中にあるかどうか判断するのか。(ただし+-5%の範囲を考えて)
   これは難しい問題だと思う。
(2)95%-105%はA列で考えるのか、B列で考えるのか
(3)データには小数点つき数と整数と在るが、どう考えるのか。
ーー
(1)Aで(2)はB列と考えると)5%、105%は書きC,D列で
0.510.951.05
1.254.755.25
787.68.4
9109.510.5
該当は7,9にならないのでは。該当なしではないか。

投稿日時 - 2011-02-04 10:41:02

ANo.2

こんにちは!
質問内容からすると2行目のデータも誤差が0.5以上になりますが・・・

とりあえず一例です。
↓の画像のようにC列を作業用の列として、結果をE列に表示するようにしてみました。

作業列C2セルに
=IF(COUNTBLANK(A2:B2),"",IF(ABS(A2-B2)>0.5,ROW(),""))
という数式を入れオートフィルで下へずぃ~~~!っとコピー!またはE2セルのフィルハンドルでダブルクリック

結果のE2セルに
=IF(COUNT(C:C)<ROW(A1),"",INDEX(A:A,SMALL(C:C,ROW(A1))))
という数式を入れオートフィルで下へコピーすると画像のような感じになります。

こちらでは2行目の1.2も表示されてしまいました・・・


参考になれば良いのですが。m(__)m

投稿日時 - 2011-02-04 09:40:47

あなたにオススメの質問