[[20070515090408]] 『空白セルを削除したい』(よじ) ページの最後に飛ぶ

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

 

『空白セルを削除したい』(よじ)

初めて質問します。
エクセルで空白欄を削除して、データをまとめたいのですが、

 A     B     C    D    E     F     G     H  I    J  ・・・
コード1 社名1 部署名1 300 100 -200  社名1 -200
コード2 社名2 部署名2  100 400 +300             社名2 +300
コード3 社名3 部署名3 100 120 +20 

このような表を作成しています。
Dの数値とEの数値の差が、マイナス200以上だったら、G及びH欄に社名と数値を、
プラス300以上だったらI及びJ欄に社名と数値を書き出し、最終的には

社名1 -200 
                                                                                社名2      +300
   

のような形式で表にしたいです。(別のシートに)     

データは1000件以上あるので、G〜J欄は空白セルがあります。
G〜J欄にはそれぞれIF関数が入っているので、そのまま空白セルを削除して
上につめると、うまくいかないのです・・・。
オートフィルタを含んだマクロでも、なぜかうまく作動しませんでした・・・。
Windows2000のエクセル2003を使用してます。
どなたか、教えていただけるとありがたいです。
よろしくお願いします。


 Sheet1
   A     B     C    D    E     F     G     H  I    J      K      L
1 コード1 社名1 部署名1 300 100 -200  社名1 -200              社名1   1
2 コード2 社名2 部署名2  100 400 +300             社名2 +300  社名2   2 
3 コード3 社名3 部署名3 100 120 +20 

 作業列を使いますが。。。仮にK,L列として
 K1=IF(G1<>"",G1,I1)
 L1=IF(SUM(G1:J1),ROW(),"")
 下へフィルコピー

 Sheet2
 A1=IF(COUNT(Sheet1!$L$1:$L$2000)<ROW(A1),"",INDEX(Sheet1!K$1:K$2000,SMALL(Sheet1!$L$1:$L$2000,ROW(A1))))
 B1=IF(COUNT(Sheet1!$L$1:$L$2000)<ROW(B1),"",INDEX(Sheet1!H$1:H$2000,SMALL(Sheet1!$L$1:$L$2000,ROW(B1))))
 C1=IF(COUNT(Sheet1!$L$1:$L$2000)<ROW(C1),"",INDEX(Sheet1!J$1:J$2000,SMALL(Sheet1!$L$1:$L$2000,ROW(C1))))
 INDEXの範囲列がとんでいるので、A1に数式を設定してC1までフィルコピー後
 K$1をH$1,J$1に入れ替えると少しは手間が省けると思います。
 A1〜C1を選択(ドラッグ)して下へフィルコピー     (gon-2)

       


できました!!とても助かりました。
gon-2さん、本当にありがとうございます。

コメント返信:

[ 一覧(最新更新順) ]


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