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

Excelで貼り付け先を非表示にした状態で、表示されているセルだけに貼り付ける方法を教えて下さい。

表1の黄色い部分を範囲選択してコピーし、表2にそのまま貼付けたいのです。
表2の構成比、前年比、大阪合計、東京合計の列を非表示にして貼付けてしまうと非表示にした構成比、前年比の列にまで数値が貼りついてしまいます。
そのため、仕方なく表1の売上金額を表2に手入力しているのですが、
100行くらいありものすごく時間がかかって困ってます・・・。

どうぞよろしくお願い致します。

「Excelで非表示のセルをとばして表示さ」の質問画像

A 回答 (7件)

表1と表2は全く別ファイルであり、


いくつも種類があるので2つのファイルを統合させて計算式を入れていくのは恐らく大変だと思います。
どこが難しいのか質問からわかりにくいのですが
表2のシートの右側の空いているセルに、仮の表1を準備する
仮表1
A・・・・L M
    A社
    B社
    C社
として、M列に =SUMIF関数で売り上げ金額を計算
表1の部分をコピー
別ファイルに値として張り付けるでは駄目でしょうか。
    • good
    • 2

今回の回答にはなりませんが、


根本的に
>漢字やアルファベットなど完全に一致しないため
>Vlookを使うのは困難なんです。
が問題だと思います

添付図のようなリストを作っておき、
後で非表示にする作業列にIDを入力
VLOOKUP関数で表示したい社名などを
引っ張ってくるようにしましょう

参考まで
「Excelで非表示のセルをとばして表示さ」の回答画像6
    • good
    • 0

> 漢字やアルファベットなど完全に一致しない


その場合、どのセルに、どのセルからのデータを転写するのかは、どう決まるのでしょうか。
社名などが完全には一致しないという前提では、普通の関数では実現出来ないと思います。

 ~~~~~~~~~~~~~~~~~~
Book1の表➀の連続した100行を、Book2の表②の(画面上は行の非表示機能を使って縦に連続した行に見えている)(実際には不連続の)100行に、上から順に対応させてセルの値を入れる

上記のようなことでしょうか。 (社名は無視して、上からの順番に対応させて値を転写)
 ~~~~~~~~~~~~~~~~~~
それにしても、私にはうまく出来ませんでした。
ただ、あるBook(❹)にVBAでコードを入れておいて、Book(⑥)の行が連続したシートからBook(➑)の一部の行が非表示のシートに、非表示の行を飛ばして、表示行にだけセルの値をいれることはできました。
これには微妙なことがあり、Book(❹)のコード表を表示させておいてコード表からマクロを実行させないと、エラーを起こしてしまうようです。
コードは単純です。
Sub 非表示無視貼付()
' 参照設定で、Microsoft Forms 2.0 Object Library にチェック
Dim Str As String
Dim CLPB As New DataObject
CLPB.GetFromClipboard: Str = CLPB.GetText
Retu = Split(Str, vbLf): su = UBound(Retu)
rr = Selection.Row: cc = Selection.Column
For i = 0 To su - 1
Do While Rows(rr).EntireRow.Hidden
rr = rr + 1
Loop
Cells(rr, cc) = Retu(i)
rr = rr + 1
Next
Set CLPB = Nothing
End Sub
ただし、Book(❹)のマクロは、参照設定で、(Microsoft Forms 2.0 Object Library にチェック)を入れておく必要があります。
その参照設定の方法 http://www.moug.net/tech/exvba/0150091.html

またexcelの開発タブのコードのマクロの表示でプロシージャ名を選択して実行させる方法などもエラーを起こします。原因はわかりません。microsoft visual Basic のエディターを表示させておいて、そこで、subプロシージャを選択した状態で、実行ボタンで実行させないとエラーになるみたいです。

とても汎用性がある安定した処理とは思えません。
面倒でも手で一つ一つやるのがいいのではないでしょうか。

参考までに、上記のマクロを実行したときの画像を縮小して添付します。
「Excelで非表示のセルをとばして表示さ」の回答画像5
    • good
    • 0

売上金額の列での非表示は、フィルタ-を使ったものですか?


その場合、以下のサイトにあるVBAで可能だと思います。
http://hp.vector.co.jp/authors/VA033788/kowaza.h …
Microsoft Forms 2.0 Object Library
https://www.moug.net/tech/acvba/0020034.html

表2の構成比などがある列のみ[フィルター]をかけて、表1の売上金額のみ
コピーしておきます。

マクロを実行すると貼り付けたい(フィルターをかけた次の列)可視セルに
コピーしたものが貼り付けされます。

貼り付けられない場合、メモ帳などに一度貼り付けして、それを再度コピー
したものをマクロで貼り付けしてみてください。
文字列として貼り付けされますので、数値として修正してください。
    • good
    • 0

並べ替えで対応できます。



表2のようなデータがA列~D列にあるとして回答します。

<概要>
E列、F列に並べ替え用データを作ります。並べ替えで貼りつけをしたい行をひとまとめにして貼りつけた後に、元どおりに再度並べ替えます。

<手順>
1.E列に連番(縦方向に1,2,3,・・・)を記入します。データの最終行まで隙間なくです。
2.F列の貼りつけをしたい行(黄色セルのある行)に『1』、貼りつけをしない行に『2』を記入していきます。例を見る限り等間隔なのでコピペで簡単にできると思います。これもデータの最終行まで隙間なくです。色は塗る必要ありません。
3.セルを全選択して、『データ』⇒『並べ替え』⇒最優先されるキーを『列F』にする⇒昇順 、として『OK』をクリックします。
4.これで貼りつけをする行が上のほうに集まったはずです。ここで『貼りつけ』の作業を行います。※貼りつけの際は、形式を選択⇒『値』で貼りつけてください。
5.作業が終了したら、元の並び順に戻します。セルを全選択して、『データ』⇒『並べ替え』⇒最優先されるキーを『列E』にする⇒昇順 、として『OK』をクリックします。
6.これで完了です。

※必ず元データのバックアップを取ってから、試してください。(『元に戻す』で戻せるはずですが念のため)
「Excelで非表示のセルをとばして表示さ」の回答画像3
    • good
    • 2

》 表1と表2は全く別ファイルであり…


こういうことは最初に明記しておくべきです。得た回答を応用できない初級者なら尚更のこと。

此処では「表1「表2」の場所を夫々 [Nonta1.xls]Sheet1、[Nonta2.xls]Sheet1 としています。

1.[Nonta2.xls]Sheet1!F2 に式
  =VLOOKUP(B2,[Nonta1.xls]Sheet1!$A$2:$B$7,2,FALSE)
  を入力して、このセルを下方にズズーッとオートフィル(添
  付図右の列F)
2.その列Fの上端のセルの[オートフィルタ]矢印(▼)を
  クリックして、#N/A を選択
3.抽出された #N/A の全データ範囲(F2:E21)をマウスで
  撫で撫で選択
4.Deleteキーをチョーンして、 #N/A を空白にしちゃう
5.[オートフィルタ]を解除
6.範囲 F2:F21 を選択して[コピー]を実行
7.セル C2 を選択した後、[形式を選択して貼り付け]
  メニューを表示
8.“値”に目玉入れ、そして、“空白セルを無視する”に
  チェック入れ(この「チェック入れ」がミソ!)
9.[OK]ボタンをツン
「Excelで非表示のセルをとばして表示さ」の回答画像2
    • good
    • 0

vlookup関数を使ってください

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
表1と表2は全く別ファイルであり、
いくつも種類があるので2つのファイルを統合させて計算式を入れていくのは恐らく大変だと思います。
また表1と表2は実際には複雑な商品名が入っており、
漢字やアルファベットなど完全に一致しないためVlookを使うのは困難なんです。

できれば非表示にして一気に貼り付けたいのですが・・。

お礼日時:2016/01/17 21:26

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

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