[[20041209120645]] 『4行まとめての非表示』(わんわん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『4行まとめての非表示』(わんわん)

どうしたら時間短縮できるか教えてください。

1〜4行で一つの部品を管理しています。1〜3には品名、品番など、4には過不足数が入っており、A4=前月過不足、B4=今月過不足となっています。
このB4の数字が0以下の場合、1〜4行を非表示にしたいのです。

現在は300点ほどあるものをいちいち手作業で非表示にしているので何とか時間短縮できないかと・・。いい方法ありましたら教えてください。


 オートフィルタで、B4が0より小さい時で、フィルタをかけて
全部選んで非表示にして、フィルタを解けばいいのでは?(とも)


フィルタを解くとすべて表示されました。それと、フィルタだと1〜3行が残ってしまいませんか?何かやり方違うのかしら・・。根本的にフィルタの使い方を私が分かってないのかな・・。ちょっと調べなおしてみます。

タイトルちょっと変更しておきますね・・。質問下手ですみません。(わんわん)


 A1品名
 A2品番
 A3その他
 A4前月過不足 B4今月過不足
 A5品名
 A6品番
 A7その他
 A8前月過不足 B8今月過不足
 以下繰り返し

 こんな感じのシートイメージでよろしいでしょうか?
 ベタで記録したマクロの組み合わせですが

 Sub Macro1()
 Range("b4").Activate
 For a = 1 To 9999
     If ActiveCell.Value <= 0 Then
         ActiveCell.Offset(-3, 0).Rows("1:4").EntireRow.Select
         Selection.EntireRow.Hidden = True
         ActiveCell.Offset(7, 1).Range("A1").Select
     Else
         ActiveCell.Offset(4, 0).Range("A1").Select
     End If
     If ActiveCell.Offset(0, -1).Value = "" Then
     a = 9999
     End If
 Next a
 End Sub

 これを実行すれば「今月過不足」が0以下の場合は、その商品の4行が非表示になると思います。
 (shouta)

 フィルタを使うやりかたでは
 C1 =IF(B4<=0,FALSE,TRUE)
 C2 =IF(B4<=0,FALSE,TRUE)
 C3 =IF(B4<=0,FALSE,TRUE)
 C4 =IF(B4<=0,FALSE,TRUE) 最初の4個作ったら4個つかんでフィルドラッグ↓
 C5 =IF(B8<=0,FALSE,TRUE)
 C6 =IF(B8<=0,FALSE,TRUE)
 C7 =IF(B8<=0,FALSE,TRUE)
 C8 =IF(B8<=0,FALSE,TRUE) 
 C9 =IF(B12<=0,FALSE,TRUE)
 C10=IF(B12<=0,FALSE,TRUE)
 C11=IF(B12<=0,FALSE,TRUE)
 C12=IF(B12<=0,FALSE,TRUE)

 フィルターでTRUEのセルだけ選んでください。
 てこんなやり方じゃだめ?

(みかん)


 みかんさんの方法でも良いですね。
 数式を =IF(B4<=0,TRUE,"") とすれば、空白セルでフィルタ掛ければC列には
 余分なものが出ないので良いかもしれませんね。^^
 ※ただし1行目だけは手動で非表示にする必要が出る場合があります。

 参考までに、ひとつの式ならこんなのでも出来ました。
 C1=IF(OFFSET(B1,INT(ROW(B4)/4)*4-ROW(C1),0)<=0,TRUE,"") や
 C1=IF(COUNTIF(B1:B4,"<="&0),TRUE,"") ←これは品名、品番、その他にマイナスの数値がない場合です。
 SUM関数でもいけるかな。
 (川野鮎太郎)


みなさん回答ありがとうございます!
マクロ、フィルタ、数式とやり方いろいろあるのですね・・!!早速これからチャレンジしてみます。(わんわん)

 あのぅ、、おおぼけだったらごめんなさいなんだけど、
C1からC4まで
=IF(B4,"",1)
と入力してC1からC4を選択して下にずりずりっとコピーするでしょ。
するとB4が「0」のところには「1」が立つから
編集→ジャンプ→セル選択→数式→数値だけにチェックを入れてOK
すると「1」だけが選択されるので
ツールバーの書式→行→表示しない
で、どうでしょう?
(SoulMan)


 それだとマイナスも1が立つのです。残念!!_/ ̄|○ il||li
 試してないけど♪〜〜( ̄ε ̄;)
 あれれ、マイナスは立たないのね_/ ̄|○ il||li
 ごめんなさいm(._.)m ペコッm(._.)m ペコッ
 あらら、逆か(^_^A;
 マイナスも立たないからダメなんだね( ̄ー ̄;A アセアセ・・・
 (川野鮎太郎)

 あっ、失礼!それなら数式を
=IF(B4>0,"",1)
に変更すればいいんじゃないの??
つまりは、オートフィルタでなくてもいいような気がしたもんで(;^_^A あせあせ・・・
どうかな??
(SoulMan)

 それから、そのオートフィルタの方法って出来る??
どうも、σ(^◇^;)のやり方がまずいのか出来ないべ???
(SoulMan)

 1行めにタイトル行をつけないとオートフィルタできないですよね。。。
(みかん)

 そうじゃなくて、フィルタで抽出したものを非表示にしても
解除したら全部でてこないですか?
おおぼけだったりして(^^;; ヒヤアセ
(SoulMan)

 あっ、すみません。非表示じゃなくて
ずっとフィルタをかけておくということでしょうか??
(SoulMan)


 じゃんじゃじゃ〜〜ん。解説します。
 みかんさんと私が書いた方法は、1行目でオートフィルタ掛けます。
 すると、1行目は必ず残っちゃうからマイナスに該当する範囲の場合にダメなわけです。
 だから上で書いたように、
 >※ただし1行目だけは手動で非表示にする必要が出る場合があります。
 に、なるわけ。^^

 Manちゃんの手法でいくと、数値の入った行だけしか非表示に出来ないよね。
 質問では、マイナスになる行範囲(4行分)を非表示だと理解してるんだけど。(^_^A;
 (ここで言う非表示はフィルタで隠れたものも含む)要は見えなくなればよいかな。
 (川野鮎太郎)

 えぇぇぇ???
どうもおかしいなぁσ(^◇^;)がかんちがいしてるのかなぁ、、、
もう一度σ(^◇^;)の説明も読んでみてくれないかなぁ、、
ちょっと今から出かけます。
(SoulMan)


 あら、ごめんなさい。>C1からC4までを見落としてた。(^_^A;
 要はやり方(フラグ立てるまで)は同じなわけね。
 納得です。m(._.)m ペコッ
 (川野鮎太郎)

 帰ってきたぞ!ウルトラマン!失礼!そうるまん!!ちょっとよってる???
 >は同じなわけね。
 じゃなくって、、フィルタで非表示にしても解除したら、、もととおりじゃないの?? 
 うん???おおすべりかぁ????
 すてんどんす(゚゚)(。。)(゚゚)(。。)あいった??
 要は、フィルタで抽出して非表示にして解除?なんでしょ?
 出来ないっとおもうけどなぁ???
(SoulMan)


 (*'へ'*) ンー・・・、フィルタで抽出して で終わりなのだ〜♪
 4行目の値がマイナスの場合だけ1行目が不要だから手動で非表示にするってだけ。
http://skyblue123.hp.infoseek.co.jp/Excel/Filter.xls
 これやってみたらわかるかも^^
 (川野鮎太郎)

 了解!それならいいんだけど、
フィルタで抽出して非表示にして解除みたいなニアンスがあったので、ちょっと気になったもので。。。
お手数をおかけしました。m(__)m
(SoulMan)

 お返事おそくなりました。
 そうなんです。
 鮎太郎さんの言うとおりなんです。
 フィルタで抽出するっていう方法のつもりで
 タイトル行がない表なのでマイナスの分の
 1行目だけ、うまくいかない=手作業かしら?
 というニュアンスだったのですが、わかりづらくてごめんなさい。
 (みかん)

わんわんです。無事出来ました。報告遅くなってすみません。
教えていただいたフィルタを1行目に入れてみたところ・・・
ボタン一つで0以下の部品、4行が非表示になりました!今までの苦労から開放されてうれしいです!!

また、shoutaさん、soulManさんからも教えていただきましたが、今回は私よりももっとエクセルを使いこなせない人が使用するのと、(こんなつたない私が一番使えるらしい・・がんばらないと)
過不足数のB4が変動するので0以下になった部品があったら、またすぐ非表示に出来るので
フィルタにしました。

本当に勉強になります。また質問にきますー。ありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.