- ベストアンサー
抽出方法
おはようございます。 EXCEL2003を使っています、こんな抽出可能でしょうか?ご教授下さい。 B5に1以上の数値が入った場合、行5~8までの行表示、 B9に1以上の数値が入った場合、行9~12までの行表示、 もし、B5が1以下であった場合は、行5~8までの行は非表示 B9に1以下であった場合は、行9~12までの行は非表示 としたい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
次のように仕込みます。 手順: E1セルを空っぽにしておく E2セルに =E1 と記入し、セルの書式設定の表示形式のユーザー定義で ;;; と設定しておく E2をコピーし、E4まで貼り付ける E1:E4をコピーする B5以下のセル範囲をまとめて選ぶ 形式を選んで貼り付けで「空白を無視する」にチェックを入れてOKする またはご質問の説明が抜けててB列は4セルずつセル結合してましたみたいなときは 形式を選んで貼り付けで「数式」にマークし「空白を無視する」にチェックを入れてOKする 作業が終わったら、E列は消してよい オートフィルタを取り付けて、B列で1で(または1以上で)絞り込む。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 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
補足
ご回答いただきありがとうございました。 質問の仕方が悪かったようで、ごめんなさい。 上記の条件で、B5,B9、B12・・・・・4行ステップで5000行まで続いています。 数値1の場合は表示させたい、数値は0.9はあり得ないので非表示となります。 よろしくおねがいします
お礼
ご連絡遅れました、完璧にできましたありがとうございました。