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

解決済みの質問

抽出方法

おはようございます。 EXCEL2003を使っています、こんな抽出可能でしょうか?ご教授下さい。

B5に1以上の数値が入った場合、行5~8までの行表示、
B9に1以上の数値が入った場合、行9~12までの行表示、

もし、B5が1以下であった場合は、行5~8までの行は非表示
    B9に1以下であった場合は、行9~12までの行は非表示

としたい

投稿日時 - 2012-04-15 09:51:34

QNo.7422015

すぐに回答ほしいです

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

No.1です。

補足の件で・・・

マクロを二つ(非表示・表示)にしてみました。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub 非表示() 'この行から
Dim i As Long
For i = 5 To Cells(Rows.Count, 2).End(xlUp).Row Step 4
If Cells(i, 2) < 1 Then
Rows(i & ":" & i + 3).Hidden = True
End If
Next i
End Sub

Sub 再表示()
Rows.Hidden = False
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m

投稿日時 - 2012-04-15 13:49:00

お礼

ご連絡遅れました、完璧にできましたありがとうございました。

投稿日時 - 2012-04-15 17:52:16

ANo.3

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

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

回答(3)

ANo.2

次のように仕込みます。

手順:

E1セルを空っぽにしておく
E2セルに
=E1
と記入し、セルの書式設定の表示形式のユーザー定義で
;;;
と設定しておく
E2をコピーし、E4まで貼り付ける

E1:E4をコピーする
B5以下のセル範囲をまとめて選ぶ

形式を選んで貼り付けで「空白を無視する」にチェックを入れてOKする
またはご質問の説明が抜けててB列は4セルずつセル結合してましたみたいなときは
形式を選んで貼り付けで「数式」にマークし「空白を無視する」にチェックを入れてOKする

作業が終わったら、E列は消してよい

オートフィルタを取り付けて、B列で1で(または1以上で)絞り込む。

投稿日時 - 2012-04-15 12:01:25

ANo.1

こんにちは!
VBAになってしまいますが・・・
一例です。

1以上・1以下となっていますので、1の場合はどちらに入れるのか?が判りませんので
勝手に1以上の場合はそのまま、1未満の時に行の非表示としてみました。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてB5、B9セルに数値を入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Intersect(Target, Range("B5,B9")) Is Nothing Or Selection.Count <> 1 Then Exit Sub
If Target = Range("B5") And Target < 1 Then
Rows(5 & ":" & 8).Hidden = True
ElseIf Target = Range("B9") And Target < 1 Then
Rows(9 & ":" & 12).Hidden = True
End If
End Sub 'この行まで

※ 行を再表示する場合は手作業で行ってください。

参考になりますかね?m(_ _)m

投稿日時 - 2012-04-15 10:28:43

補足

ご回答いただきありがとうございました。

質問の仕方が悪かったようで、ごめんなさい。
上記の条件で、B5,B9、B12・・・・・4行ステップで5000行まで続いています。
数値1の場合は表示させたい、数値は0.9はあり得ないので非表示となります。
よろしくおねがいします

投稿日時 - 2012-04-15 11:20:53

あなたにオススメの質問