• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[Excel]複数の数値から条件にあった数値の抽出)

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

このQ&Aのポイント
  • Excel中の数値の列から別の数値の列中の数値と一致しない数値を抽出する方法について教えてください。
  • 条件は、数値の列中の数値と一致しない数値を、誤差±0.5の範囲で抽出することです。
  • Excel初心者なので、具体的な手順やフリーソフトの情報を教えていただけると助かります。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

範囲外(一致しないモノ)を一発で抽出する事も一応可能ですが,準備がかなりメンドクサイので, 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が範囲外である。 以上です。 #超絶ムズカシー関数の式で「抽出」させる事もやれば出来ますが,実地に適用できないのでやめた方が良いです。

kuma1973
質問者

お礼

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

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.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))))

kuma1973
質問者

お礼

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

  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

抽出するためには 『誤差0.5』範囲かどうかの判断材料が必要なのはわかりますね?。 それを求め、C列にでも表示することから始めたら良いです。 その値とA列を比較しD列にでもマーク表示すれば対象行が特定できる。 A列B列だけ見ていても答えはすぐ出せません。 ワークシート、ですから必要なものを挙げてみる。 フリーソフトに頼るレベルでないです。探す方がむだ足。

kuma1973
質問者

お礼

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

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

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

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

関連するQ&A