【お題】王手、そして

表1があり、A列に氏名、B~E列に2桁の数値データが入っています。この中で検索値XXの{-3~+3}の範囲内に該当する数値を抽出したいです(検索値が33なら、30~36内の数字)。該当する数値をフォントやセルに色をつけて分かるようにできれば一番いいですが、できない場合は、該当するデータを含む人の氏名を表2に表示するとか、該当する人のF列に○印をつけるとかでもよいです。実際にはたくさんの違う検索値を使って抽出操作が必要になるので、フィルタオプションとかでやるのは面倒です。関数でもマクロでも良いので簡単な方法を教えてください。

A 回答 (3件)

こんばんは!


>該当する数値をフォントやセルに色をつけて分かるようにできれば一番いいですが・・・
というコトですので、VBAになってしまいますが一例です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
データは2行目以降にあるとします。
尚、セルの色は薄い黄色にしています。

Sub Sample1() 'この行から
Dim i As Long, j As Long, vL
vL = InputBox("検索値を入力してください。")
Application.ScreenUpdating = False
Cells.Interior.ColorIndex = xlNone
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To 5
With Cells(i, j)
If .Value <> "" And .Value >= vL - 3 And .Value <= vL + 3 Then
.Interior.ColorIndex = 36
End If
End With
Next j
Next i
Application.ScreenUpdating = True
End Sub 'この行まで

※ 単にセルの色付けだけで、抽出はしていません。

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

すごい簡単で処理が楽になりそうです。助かりました。ありがとうございました!

お礼日時:2013/03/26 19:05

たくさんの検索値が有るとのことですから次のようにしてはいかがでしょう。


A列からE列の2行目から下方にデータが有るとしてF1セルから右の列には検索値を33とか40とかのように入力します。幾つの列を使っても構いません。

F2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(OR($A2="",F$1=""),"",IF(COUNTIFS($B2:$D2,">="&F$1-3,$B2:$D2,"<="&F$1+3)>0,"○",""))

該当するデータがB列からD列に合う場合には○が表示されます。
該当者の名簿を作りたいのでしたら検索値の列を重点にフィルタ操作をしてその結果を別のシートに表示させても良いでしょう。
    • good
    • 0
この回答へのお礼

これなら一度にたくさん処理できますね。ありがとうございました!

お礼日時:2013/03/26 19:03

セル B2 における[条件付き書式]


数式が   =AND(B2>=$G$2-3,B2<=$G$2+3)
フォント色 白
パターン色 赤
「エクセル 指定の数値範囲を条件に抽出する」の回答画像2
    • good
    • 0
この回答へのお礼

条件付き書式って数式でもできるんですね。勉強になりました。ありがとうございました!

お礼日時:2013/03/26 19:04

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


おすすめ情報