プロが教えるわが家の防犯対策術!

エクセルに関しての質問は多数あったので色々と見てみたのですが、よく分からないので新たに質問をさせて頂きました。。

現在エクセルで、空白のセルを含めてセルに入力を行っています。
ただ、この空白を含めずに入力されているセルのみを抽出して、
別シートで順番に並べて表示したいと考えています。

入力が確認されたセルのみを、別シートで表示したいです。

画像では、同シート内になっていますが、
これを別シートで自動で表示出来るようにしたいです。

エクセル初心者の為、大変お手数おかけいたしますが、
何卒よろしくお願いいたします。

「エクセルで入力のあるセルのみ別シートに表」の質問画像

A 回答 (4件)

こんなのはどうでしょうか?


C列を作業列として使います。
C1=IF(B1="","",COUNTA(B$1:B1))
として、下へコピー。
E1:=IF(ISERROR(MATCH(ROW(),$C:$C,0)),"",LOOKUP(ROW(),$C:$C,A:A))
E1を選んだまま[書式][条件付き書式]で[セルの値が][次の値に等しくない][=""]にして、[書式]で[罫線]の[外枠]を選ぶ。
E1をE1:F7にコピー(必要なら元データの量に合わせて更に下へコピー)。
E列を選んで[書式][セル]の[表示形式]で[時刻]を選ぶ。
F列を選んで[書式][セル]の[表示形式]で[文字列]を選ぶ。
他のシートに表示する場合は、元データがSheet1でSheet2に表示する場合はSheet1のC列を作業列にするのはそのままにして、Sheet2の
A1=IF(ISERROR(MATCH(ROW(),Sheet1!$C:$C,0)),"",LOOKUP(ROW(),Sheet1!$C:$C,Sheet1!A:A))
A1を選んだまま[書式][条件付き書式]で[セルの値が][次の値に等しくない][=""]にして、[書式]で[罫線]の[外枠]を選ぶ。
A1をA1:B7にコピー(必要なら元データの量に合わせて更に下へコピー)。
    • good
    • 2
この回答へのお礼

お礼が遅くなってしまう申し訳ございません。
色々試してみたのですが、hotosysさんの方法が一番応用が利いた為、利用させて頂きました。
マクロは、何が何だか・・・。
でも皆さま本当にありがとうございました。

お礼日時:2009/03/26 09:48

ご迷惑おかけしました


"."(ドット)が一箇所抜けていました
折角作ったので試してやってください

Sub test()
Dim i As Long
Dim a As Variant
With Worksheets("sheet1")
a = .Range("a1", .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 2))
End With
With Worksheets("sheet2")
For i = 1 To UBound(a, 1)
If a(i, 2) <> "" Then
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = a(i, 1)
.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = a(i, 2)
End If
Next i
If .Range("a1") = "" Then .Rows(1).Delete
End With
End Sub
    • good
    • 0

自動で・・・が初心者には無理だと思います。


数式を使っても良いのですが理解できないかもしれません。
作業列を使えば比較的理解しやすいのですが・・・。
とりあえず、オートフィルタ案とその自動記録のマクロ
[Alt]+[F11]でVBEが起動しますので[挿入]-標準モジュールに
下記コードを貼り付けて見ると良いと思います

Sub Macro1()
  Sheets("Sheet1").Select 'Sheet1を選ぶ
  Range("A1").Select 'A1セルを選ぶ
  Selection.CurrentRegion.Select '[Ctrl]+[Shift]+[*]
  Selection.AutoFilter 'フィルタ - オートフィルタ
  Selection.AutoFilter Field:=2, Criteria1:="<>" '(空白以外のセル)
  Selection.Copy 'コピー
  Sheets("Sheet2").Select 'Sheet2を選ぶ
  Range("A1").Select 'A1セルを選ぶ
  ActiveSheet.Paste '貼り付け
  Application.CutCopyMode = False '[Esc]
  Sheets("Sheet1").Select 'Sheet1を選ぶ
  Selection.AutoFilter 'オートフィルタの解除
End Sub
「エクセルで入力のあるセルのみ別シートに表」の回答画像2
    • good
    • 0
この回答へのお礼

教えて頂いた通りにすると、簡単に出来ました!!
ご丁寧に画像までつけて頂き、本当にありがとうございました。
マクロってこうやって使うんですね。。

お礼日時:2009/03/11 19:39

こんな感じで



Sub test()
Dim i, ii, iii
Dim a
With Worksheets("sheet1")
a = .Range("a1", .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 2))
End With
With Worksheets("sheet2")
For i = 1 To UBound(a, 1)
If a(i, 2) <> "" Then
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = a(i, 1)
.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1) = a(i, 2)
End If
Next i
If .Range("a1") = "" Then Rows(1).Delete
End With
End Sub

指定が無いので、Sheet1=コピー元表、Sheet2=コピー先表としました
    • good
    • 0
この回答へのお礼

ご回答いただき、本当にありがとうございました。
ただ、やり方が悪いのかもしれませんが、Sheet1のA1が消えてしまいます。
でも、勉強になりました。
ありがとうございました。

お礼日時:2009/03/11 19:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A