- ベストアンサー
オートフィルターによって、抽出したセルにだけペーストしたい。
例えば、 5行ごとの世帯表があります。 A列には氏名が入力されています。 2人世帯は2行しか使いませんので、下3行は何も入力されていない行です。 つまり、10世帯分で100行あり、その中に合計38名分の氏名が入力されています。 列を挿入して、B列に新しい列を作りました。 この列に、別シートの同じ世帯員の生年月日が入力された列(ブランクの無い38行の38個のセル)を貼り付ける場合、どのように貼り付けるのでしょうか。 オートフィルターで、A列の空白セルを除いてから貼り付けたら、オートフィルター解除後、空白セルにも貼り付いてしまったので、ずれてしまいました。 オートフィルターで、省いた(隠した)セルに貼り付かないように貼り付けるにはどうすればいいのでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
オートフィルタの機能では難しそうです。 並び替えを使えばできます。 世帯表と生年月日データは、空白の有無が違うだけで順番は同じですね? まず、世帯表のシートにもう1列(C列)を挿入します。 C列には、1,2,3,4,・・・・と100行まで入力します。(オートフィルの連続データで入力) オートフィルタで空白以外の行だけ表示して、B列に、例えば1と入力します。(38行分) B列とC列で「並び替え」をすれば、空白以外の行が順番どおりに固まりますので、そこのB列に生年月日を貼りつけます。 最後に、C列で「並び替え」をして、C列を削除します。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAで回答。 sheet1,sheet2を本番に合わせてシート名にしてください。('Aとした行) sheet2で生年月日はC列にあるものとしています。 本番に合わせて下さい('Bとした行) Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") 'A Set sh2 = Worksheets("sheet2") 'A j = 1 For i = 1 To 100 If sh1.Cells(i, "A") = "" Then Else sh1.Cells(i, "B") = sh2.Cells(j, "C") 'B j = j + 1 End If Next i End Sub
お礼
ありがとうございました。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
まず、横から失礼してオートフィルタ。 右クリックでドラッグすると「連続データ」を強制するように選べると思います。 VLOOKUP関数については参考URLへ。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
別表のA列の前にでも1列追加して、生年月日コード表とし、本表のB列にVLOOKUP関数、ではないでしょうか?
お礼
ありがとうございました。VLOOKUP関数を知るきっかけにもなりました。
補足
ありがとうございます。 VLOOKUP関数は、今まで使用したことがありませんでした。 検証してみますね。
- akubihime212
- ベストアンサー率30% (866/2882)
右クリックで、型式を・・・で貼り付けの中の、値のみを選べばいかがでしょうか?
補足
まず、すみません。エクセル2000での話です。 値のみの貼り付けは、ダメでした。 ありがとうございました。
お礼
並び替えた時に、貼り付けて、連続数値を入力したC列を使って同じ序列に復帰すると。 なるほどなるほど。お見事です! ありがとうございました。 オートフィルターでA列を空白セル以外にした表示のまま、B列に連番を入力する方法が分かりません。 B1に「1」B2に「2」を入力して、この2つのセルを範囲指定して、右下スミをつまんで下に引っ張ると、「1、2、1、2、...」となってしまうのです。 どのように、連番入力するのでしょうか。