• ベストアンサー
  • 困ってます

エクセルで入力のあるセルのみ別シートに表示したい

エクセルに関しての質問は多数あったので色々と見てみたのですが、よく分からないので新たに質問をさせて頂きました。。 現在エクセルで、空白のセルを含めてセルに入力を行っています。 ただ、この空白を含めずに入力されているセルのみを抽出して、 別シートで順番に並べて表示したいと考えています。 入力が確認されたセルのみを、別シートで表示したいです。 画像では、同シート内になっていますが、 これを別シートで自動で表示出来るようにしたいです。 エクセル初心者の為、大変お手数おかけいたしますが、 何卒よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

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

  • ベストアンサー
  • 回答No.3
  • hotosys
  • ベストアンサー率67% (97/143)

こんなのはどうでしょうか? 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にコピー(必要なら元データの量に合わせて更に下へコピー)。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

その他の回答 (3)

  • 回答No.4

ご迷惑おかけしました "."(ドット)が一箇所抜けていました 折角作ったので試してやってください 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

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • CoalTar
  • ベストアンサー率40% (705/1742)

自動で・・・が初心者には無理だと思います。 数式を使っても良いのですが理解できないかもしれません。 作業列を使えば比較的理解しやすいのですが・・・。 とりあえず、オートフィルタ案とその自動記録のマクロ [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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

  • 回答No.1

こんな感じで 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=コピー先表としました

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • エクセルの空白セルにリンクする別シートにゼロと表示

    エクセル2010を使用しています。 ひとつのシート(1)のセルが空白になっている場合に別のシート(2)でリンクしているセルにはゼロを表示したいのですが、どうもシート(1)のセルに関数(IFやVLOOKUP)が入力されているのでうまくシート(2)のセルに「0」と表示されません。 関数がないセルを指定すると「0」になります。 シート(2)のセルに「=IF(シート(1), "" ,0,シート(1))」のように強制的にゼロを表示させることもやってみましたが、表示はされますがその結果がグラフなどに反映するように設定してあるので、最終的にはこのやり方では全体的にうまく作動しません。 ですので、関数が入っているセルで空白になっている場合でも、自動的にゼロが反映されるやり方はあるでしょうか? よろしくお願いします。

  • エクセルで入力したデータを別のシートに貼りつけしたい

    別のワークシートに名前が入力してありますが、セルの空白がいくつかあります。 それを、別のワークシートにA1から順番に貼りつけていくのを自動でできればいいのですが、いまはコピーして貼りつけ作業を何度も行うじょうたいです。 氏名も全部の行に入っているわけじゃないので、そのまままとめてコピーすると、 空白ができてしまうのです。

  • エクセル Sheet1 セルで入力したものをSheet2のセルへ

    エクセルのSheet1のセル(例えばB1)に入力した文字を、 Sheet2のセルの任意のセル(例えばA5)に自動で表示させるには どうすればいいのでしょうか?  Sheet2のA5のセルの中で、=Sheet1!B1 と入れても「0」に なるだけで・・・エクセルの何の機能を使えばいいのか全然分かりません。よろしくお願い致します。

  • エクセル 関数 別シートへの抽出

    エクセル関数について質問します。 「数値の入ったセルだけを、その行ごと丸々別シートに抽出する方法」 について教えてください。 例、C列に空白セルと1、2や3など、数値の入ったセルがあります。空白セル以外の数値の入ったセルを、その行ごと別シートに抽出したい。 C3とC5に数値が入ってる→3行目と5行目を別シートに抽出する。 このようなことは関数でできるのでしょうか? マクロでないと無理でしょうか? お力をお貸しください。 よろしくお願いします。

  • セルに入力があったら別のシートに自動で入力させたい

    似たような質問もあり自分でもいろいろ調べたのですが、 解決できなかったのでお願いします。 エクセルは2011で少し使える程度、あまり詳しくはありません。 シート1に「名前」「一回目」「二回目」という列があります。 そこの「一回目」の列に入力があった場合のみ別のシート2に自動で入力(抽出)されるようにしたいです。 例としてはこんなかんじです。↓ シート1 名前  一回目  二回目 佐藤  1         山田       1    鈴木       1 田中  2           とあったら、「一回目」に入力があった行からシート2に シート2 名前  点数 佐藤  50 田中  100 こんなかんじでシート2には「名前」と「一回目」に入力された数値に50掛けたものが自動で表示されるようにしたいのですが、 このようなことは可能でしょうか? 説明がわかりにくいかも知れませんがよろしくお願いします。

  • Excelで別シートのセルを選択したら、その隣のセルを表示させたいので

    Excelで別シートのセルを選択したら、その隣のセルを表示させたいのですが、 やり方がわかりません。 このようなリストを作成しました。 ----------------  果物  値段 りんご  50 バナナ  100 パイン  120 ---------------- 別シートのA1(他のセル)に「りんご」と入力したら A2に「50」とを表示させる方法を教えてください。 ちなみに別シートのA1には「果物」で入力規則してあります。 プルダウンで「りんご」を選択したら、 自動的に連動させてA2に「50」といれたいのです。 IFなど検索しましたが、該当するのはみつけられませんでした。 よろしくお願いします。

  • エクセルでセルに入力したら別セルを別シートにコピー

    エクセルで、あるセルに情報を入力したら、同じシート内の別セルの情報を他のシートにコピーしたいと考えています。 例えばシート1のB5に住所を入力したら、シート2のB1、B2にシート1のB1、B4の情報がコピーされるようにしたいです。(添付画像を参照ください) シート2へのコピーは下に追加されていくようにしたいです。 何か良い方法はありませんでしょうか? どうぞよろしくお願いいたします。

  • エクセルでシート1のセルに入力すると別シートのセルに表示させるには

    依頼されて会員証をエクセル2003で作っている最中です。 SHEET1に下記の様に会員証のベースを作ました。 [●●●の会] 会員番号 [SHEET2の会員番号列] 住所 [SHEET2の住所列] 氏名 [SHEET2の氏名列] 電話番号 [SHEET2の電話番号列] [管理社名] SHEET2にまだ空欄ですが、会員番号・住所・氏名・電話番号のリスト表を作りました。 ここからが課題でして、SHEET2に会員番号、住所とセルに打ち込んでいくと SHEET1のそれぞれに対応したセルに表示させる為に SHEET1のセルに、[=Sheet2!A3]と打ち込めば、 SHEET2のA3のセルが対応されますが、 これではそのセルしか対応しません。 SHEET2の1行目に会員番号、住所から打ち込んだものは、 単純にSHEET1の表示させたいセルに[=SHEET2!○○]を打ち込めば、 それが対応されます。 ただSHEET2の2行目は空白ですので、新たに打ち込んで対応させようとしても出来ません。 毎度毎度SHEET1の表示させたセルに[=SHEET2!○○]をしていくのは大変です。 新規にリストを打ち込むたびにSHEET1の会員証に 表示させる方法はどういったものがあげられるのでしょうか? 或いは、SHEET1の会員証ベースに打ち込んでいくとSHEET2のリストに 自動的に登録される仕組みの方がやりやすいのでしょうか? 数式も教えていただければ大変有難いです。 アクセスの方がやりやすいかもしれませんが、 依頼した方のPCにはアクセスは入っていないですし、 私自身もアクセスはイマイチの部分があります。 エクセルのマクロなるものを使えません。 年始早々に使用したいとの事ですので、 なんとか仕上げてあげたいとは思います。 宜しくお願い致します。

  • Excel で別シートのセル値を表示させる(初心者)

    Excel で一つ前のシートにあるセル値を表示させる。 例えば"Sheet1"と"Sheet2"が有るとして"Sheet2"のセル"A1"へ "Sheet1"のセル"A1"の値を表示させるには、=Sheet1!A1 と入力しますが、 この<Sheet1>の部分だけを別のセル "A2" で入力した値に変更したいです。 (気持ちとしては、A2!A1) どの様にすれば良いでしょうか? 常にシートをコピーして作成し、常に一つ前のシートの同位置セルの値を 表示させたいのが狙いで、シート名は数値に設定して "A2"へ MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)-1 などを入れて方法があれば作成しようと考えています。 マクロも分かりません、関数など何か方法があればご教授お願いします。

  • excelにて  シート1のA1セルにA1と入力し

    excelにて  シート1のA1セルにA1と入力したら、別シートのA1にあらかじめ書いてある文字を表示させる方法がわからない 自動的に他のシートのセルを参照させる方法はわかるのだが・・・すみませんどなたか・・お願いします