Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


45374 / 76735 ←次へ | 前へ→

【36354】Re:プラスマイナスの値の抽出
発言  ichinose  - 06/3/29(水) 20:14 -

引用なし
パスワード
   ▼とろり さん:
こんばんは。

>
>さっそく質問です。
>
>  A  B
>1 氏名 身長
>2 あ  100
>3 い  110
>4 う  120
>5 え  130
>6 お  140
>7 か  150
>8 き  160
>9 く  170
>10 け  180
>11 こ  190
>12 さ  200
>
>というような感じでずらーっとデータが並んでいます。
>例えば、「150」を基準として、そのプラスマイナス30の値と
>なる人を全て抽出することは可能でしょうか?
>(抽出される人→う・え・お・か・き・く・け)
標準モジュールに
'==============================================
Sub main()
  Dim rng As Range
  Dim stdval As Long
  Dim permval As Long
  Dim ans As Variant
  stdval = 150 '←基準値
  permval = 30 '←許容値
  Set rng = Range("a2", Cells(Rows.Count, 1).End(xlUp))
  If rng.Row > 1 Then
    With rng
     func = "=if(abs(" & .Offset(0, 1).Address & "-" & _
         stdval & ")<=" & permval & _
         "," & .Address & ",""" & Chr(&HFF) & """)"
     'func--- =if(abs($B$2:$B$12-150)<=30,$A$2:$A$12,"")
     '例えば、↑こんな数式が評価されます
     ans = Evaluate(func)
     If TypeName(ans) = "Variant()" Then
       ans = Application.Transpose(ans)
     Else
       ans = Array(ans)
       End If
     ans = Filter(ans, Chr(&HFF), False)
     If UBound(ans) >= 0 Then
       MsgBox Join(ans, ",")
       End If
     End With
    End If
End Sub

例のようなデータがあるシートをアクティブにした状態で
mainを実行してみて下さい。
結果は、メッセージボックスで表示されます。
0 hits

【36352】プラスマイナスの値の抽出 とろり 06/3/29(水) 19:12 質問
【36353】Re:プラスマイナスの値の抽出 Hirofumi 06/3/29(水) 20:12 回答
【36354】Re:プラスマイナスの値の抽出 ichinose 06/3/29(水) 20:14 発言
【36355】Re:プラスマイナスの値の抽出 とろり 06/3/29(水) 20:31 質問
【36356】Re:プラスマイナスの値の抽出 Hirofumi 06/3/29(水) 20:44 回答
【36357】Re:プラスマイナスの値の抽出 ichinose 06/3/29(水) 20:49 発言
【36358】Re:プラスマイナスの値の抽出 とろり 06/3/29(水) 21:02 質問
【36361】Re:プラスマイナスの値の抽出 ichinose 06/3/29(水) 22:07 発言
【36367】Re:プラスマイナスの値の抽出 ponpon 06/3/29(水) 23:02 質問
【36372】Re:プラスマイナスの値の抽出 ichinose 06/3/30(木) 7:06 発言
【36373】Re:プラスマイナスの値の抽出 ponpon 06/3/30(木) 7:32 発言
【36359】Re:プラスマイナスの値の抽出 Kein 06/3/29(水) 21:15 回答

45374 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free