グッドデザイン賞を受賞したウォーターサーバー >>

【Excel】 可視セルへの貼り付けについて

Excel2003および2007を使用しています。
ピボットにて集計したデータを別データに貼り付けしたいのですが、
その別データをフィルタで絞って、可視セルのみに貼り付けしたいのですが、
うまくいきません。
非表示のセルにも貼り付けされてしまいます。
可視セルのみに貼り付けできる何かいい方法はありますでしょうか?

ちなみに貼り付け方法は 値のみ を希望です。


(例)
◎ ピボットデータ・・・ 









◎ 貼り付け先データ・・・











・・・ABのみフィルタで絞って、ピボットデータを貼り付けしたい。
Cは非表示なので貼り付けしたくない。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

フィルタモードのシートに、他のシートのデータ範囲をコピー貼り付けすると、非表示行にもデータが貼り付けられますので、基本的にこの方法ではセル範囲をコピー貼り付けすることはできません。



多くの場合は、フィルタされたデータにすべて同じデータを貼り付けますが、この場合なら、1つのセルに入力したデータをオートフィルドラッグすることで対応できます。

各セルに異なる値を貼り付けたい場合は、フィルタではなく並べ替えを利用することになります。

すなわち、フィルタと同じ条件で優先順位を付けてデータを並べ替え操作をすると、コピー貼り付け対象のデータが一塊になりますので、この範囲にコピー貼り付けをします。

データの並び順を元に戻したいなら、補助列(必要に応じて非表示にしておく)に連番を入力しておき、最後にこの補助列で昇順に並べ替えを行います。
    • good
    • 2
この回答へのお礼

回答ありがとうございます!
やっぱりフィルタかけた部分に貼り付け、というのはできないんですねー。残念です。
しかし、なるほど~並べ替えですか!
そこまで考えが至りませんでした。確かに並べ替えが可能なデータなら各セルに貼りつける手間がなくなりますし、効率化が図れそうです。
ピボットのほうも、並べ替え貼り付けに対応できるようレイアウトを変える必要がありそうですがチェレンジしてみようと思います。
どうもありがとうございました☆

お礼日時:2010/08/23 12:45

質問の意味を良く捉えていないが、特に>可視セルへの貼り付けについて


下記のようなことをしたいのでしょうか。
違っていたら下記記述は無視してください。
例データ
E:F列
コード数
A1
B2
C3
A4
B5
C6
A7
B8
C9
これをフィルタのオプションで
Aに等しい
Or
Bに等しい
でフィルタすると
見た目
コード  数
A1
B2
A4
B5
A7
B8
ーー
別途A13からB18までに、対応するデータ
A11
B12
A13
B14
A15
B16
があるとして
VBAで
Sub tetst01()
d = Range("E12").End(xlUp).Row
MsgBox d
k = 0
For i = 2 To d
If Rows(i).Hidden = True Then
MsgBox i
Else
Range(Cells(13 + k, "A"), Cells(13 + k, "B")).Copy Cells(i, "E")
k = k + 1
End If
Next i
End Sub
を実行すると、見た目は
C数
A11
B12
A13
B14
A15
B16
となる。これをフィルタを解くと
C数
A11
B12
C3
A13
B14
C6
A15
B16
C9
なって、Cは保存されている。
上記はピボットデータでないがこういうことをしたいのでしょうか。
このVBAも汎用性が無いが、VBA以外では、操作や関数利用(非標示セルは捉えられない)などでは難しいのではないでしょうか。
    • good
    • 2
この回答へのお礼

丁寧な回答、どうもありがとうございます!
VBAですね。私も考えたのですが、フォーマットがかなり重たいため、VBAでは難しくって(;_;)
でも、ご丁寧にありがとうございます。
やはりフィルタをかけた部分に貼り付け、というのは難しいのですね。残念ですが勉強になりました。
ありがとうございました。

お礼日時:2010/08/23 12:49

手数がかかりますが



貼り付け先のフィルタモードシート
例えばL列を作業セルとしてL2に
=MAX($L$1:L1)+1
としてオートフィルコピーすれば可視セルに連番が表示されます。
M2に
=INDIRECT("Sheet1!A"&L2)
としてオートフィルコピー
これでSheet1のA1セル以下が参照表示されます。
コピー>「形式を選択して貼り付け」の「値」で貼り付け

これで可視セルにのみコピーと同じ結果が得られます。
    • good
    • 1
この回答へのお礼

回答ありがとうございます!
確かにちょっとだけ手間がかかりますが、各セルに貼りつけするよりはずっと効率的な気がします。
まだ試していないのですが、教えていただいた通りにやってみようと思います。
どうもありがとうございました☆

お礼日時:2010/08/23 12:50

ジャンプで可視セルを選択してから


コピー貼り付けでどうでしょうか。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
可視セル選択は貼りつけたいデータのほうを可視セル選択ということですよね?
すみません、そうではなく、貼り付け先のほうにフィルタをかけて可視セルにしてあり、そこにピボットで集計したデータ(フィルタかけていないデータ)を貼り付けたいのです。
貼り付け先を可視セル選択しても、貼り付け自体ができないです。

お礼日時:2010/08/23 12:41

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフィルタしたセルのコピーをフィルタしたセルに貼り付けたい

タイトルの通りなのですが、フィルタしたセルをコピーし、別シートのフィルタしたセルに貼り付けたいのですが、
別シートに貼り付けた時見えなくなっているセルにもコピーデータが張り付いてしまいます。

上手い方法がありますでしょうか?

Aベストアンサー

Ctrlキーを使用すれば、できますよ。
(例)
Aシートのコピーしたい部分を選択し、Ctrl+右クリックショートカットからコピーをクリックします。
Bシートの貼り付けたい部分にカーソルを持っていき、Ctrl+貼付…

これでできませんかね…ご要望と違う内容でしたらすみません。

Qフィルタしたセルのコピーをフィルタしたセルに貼付

質問番号:2467654で似たようなことを希望した方がいて、

【フィルタしたセルをコピーし、別シートのフィルタしたセルに貼り付けたいのですが、
別シートに貼り付けた時見えなくなっているセルにもコピーデータが張り付いてしまいます。】


という質問に対してベストアンサーが

【Ctrlキーを使用すれば、できますよ。
(例)
Aシートのコピーしたい部分を選択し、Ctrl+右クリックショートカットからコピーをクリックします。
Bシートの貼り付けたい部分にカーソルを持っていき、Ctrl+貼付…】

となっていて「できました」!といわれているのですができません。
これ本当にできますか?

違う部分も取り込んでしまうのですが…
フィルタをかけているのが他の列だとできないのでしょうか。

(例)
A B C ←列
あ 1 イ
い 2 ロ
う 3 ハ
え 4 ニ
お 5 ホ

の場合に、フィルタで あ うの行を選んで 1 3 を D列にペーストし、
あ1イ1 や う3ハ3 をつくりたい場合に あ1イ1は良いですが、い2ロ3 ができてしまうのです。



ちなみに以下のような回答もありましたが、これも「フィルタしたセルに貼り付け」はできませんでした。。
バージョンはエクセル2003です。

可視セルを選択してから、「コピー」→「貼り付け」を行うと、可視セルだけが貼り付けされます。

以下は、その手順です。
1) コピーするセル範囲を選択します。
2) 「編集」→「ジャンプ」→「セル選択」をクリックします。
3) 表示される画面で、「可視セル」にチェックを入れ「OK」を押します。可視セルだけが選択されます。
4) その後、コピーから貼り付けで、可視セルだけが貼り付けされます。
http://office.microsoft.com/ja-jp/assistance/HP052014731041.aspx

セルの選択コマンドから操作する方法もあります。
http://www.h3.dion.ne.jp/~fukusima/waza/ura124.html

参考URL:http://office.microsoft.com/ja-jp/assistance/HP052014731041.aspx,http://www.h3.dion.ne.jp/~fukusima/waza/ura124.html

質問番号:2467654で似たようなことを希望した方がいて、

【フィルタしたセルをコピーし、別シートのフィルタしたセルに貼り付けたいのですが、
別シートに貼り付けた時見えなくなっているセルにもコピーデータが張り付いてしまいます。】


という質問に対してベストアンサーが

【Ctrlキーを使用すれば、できますよ。
(例)
Aシートのコピーしたい部分を選択し、Ctrl+右クリックショートカットからコピーをクリックします。
Bシートの貼り付けたい部分にカーソルを持っていき、Ctrl+貼付…】

となって...続きを読む

Aベストアンサー

フィルタしたセルのコピー貼り付けに関しては、リンクで紹介されているものを含めて不正確な情報が多いように思います。

基本的に、フィルタしたデータは、非表示にしたデータと異なり、選択範囲の行のみクリップボードにコピーされます(すなわち、Ctrlキーを押しながら、縦にとびとびにセルを選択した状態と同じわけです)。

一般に、とびとびの行を選択してコピーしたセルを貼り付けると、行が詰められて貼り付けられます。
したがって、フィルタモードの場合はジャンプダイアログから可視セルを選択しないでも(まったくこの操作の必要はありません)、無条件に可視セルが貼り付けられます。

一方、フィルタモードではなく、行を非表示にしたシートでは、セル範囲を選択すると、可視セル以外のセルも選択されるので、可視セルだけを貼り付けたい場合は、ジャンプから可視セルを選択する必要があるわけです。

これらのクリップボードのデータをフィルタしたシートに貼り付けるときは、とびとびではなく一塊のデータとして貼り付けられるので、モードにかかわらず、必ず非表示セルにも貼り付けられます(すなわち、とびとびのセルに貼り付ける方法はありません)。

一方、フィルタモードでオートフィル操作を行うと通常とは異なり、連続データは入力できず(コピーのみ)、さらに表示セルだけを対象とします。

これを利用すれば、フィルタした行だけに同じ値を入力することができます。

例えば、フィルタした状態であるセルにデータを入力し、下方向にオートフィルすれば、その値が表示セルだけに「コピー」されます(非表示行にはデータが入力されません)。

例示のデータのように、フィルタしたB列のデータをD列に入力したい場合は、C列を非表示にしてから(列が飛んでいるとオートフィルができないため)、B列のフィルタされたセルを選択して、右方向にオートフィルしてください。

これでC列を再表示して、フィルタモードを解除すればフィルタされたデータだけにデータをコピーすることができます(オートフィル操作ができない別シートには適用できません)。

フィルタしたセルのコピー貼り付けに関しては、リンクで紹介されているものを含めて不正確な情報が多いように思います。

基本的に、フィルタしたデータは、非表示にしたデータと異なり、選択範囲の行のみクリップボードにコピーされます(すなわち、Ctrlキーを押しながら、縦にとびとびにセルを選択した状態と同じわけです)。

一般に、とびとびの行を選択してコピーしたセルを貼り付けると、行が詰められて貼り付けられます。
したがって、フィルタモードの場合はジャンプダイアログから可視セルを選択しないで...続きを読む

QG→可視セル→コピー貼り付けがうまくいかない

お世話になります。
エクセル2007でよく使う「可視セルのみコピーし貼り付け」がうまくいきません。
既存ブックの印刷したい行以外は非表示にし、
印刷したい範囲を選択してから
「ジャンプ→可視セル選択→コピー」し、
別のブックを開きひとつだけセルを選択し「貼り付け」すると、
非表示行まですっかり貼り付いてしまいます。
「形式を選択して貼り付け」にすると、
「ワークシートオブジェクト」とか「図」とか
「ビットマップ」とか書いてある見覚えのないウィンドウが開きます。わからないまま「ワークシートオブジェクト」でOKすると
「貼り付けられませんでした」と言われます。
目的は、不要なところを除き必要なところだけ
紙をケチって詰め詰めで印刷したい、ということです。
どなたかご指導お願いします。

Aベストアンサー

[形式を選択して貼り付け]の際に、
ワークシートオブジェクト,図(拡張メタファイル),ビットマップ,バイナリ形式等が表示されるのは、
なんらかの理由で【Excelが重複起動】していて、
別個のアプリケーションとして起動している【Excelをまたぐ形で貼り付け】しようとした場合です。
--------------------------------------------------
>別のブックを開きひとつだけセルを選択し「貼り付け」すると、

とありますが、この「別のブック」というのは
新規ブックでしょうかそれとも既存のブックでしょうか?
--------------------------------------------------
●新規ブックの場合

新規ブックを作成する際に、
Excelのアイコンをクリックして作成しているのではありませんか?

Excelが起動している状態でExcelのアイコンをクリックするとExcelが重複起動してしまいます。
(正常な動作です。特殊な目的があって意図的にそうすることもあります。)

Excelが起動している状態で新規ブックを作成するときは、
通常、左上の[新規作成]ボタンを使うか、Ctrl+Nで作成します。
--------------------------------------------------
●既存のブックの場合

既存のブックのアイコンをクリックしたときに
Excelが重複起動してしまうのであれば、
関連付けの不具合か、誰かが意図的にそう設定したものと思われます。

その場合でも、ブックのアイコンをクリックする代わりに
[Officeボタン] ⇒ [開く] から開けば、
重複起動することなく現在起動しているExcel上で
別のブックを開くことができます。

また、
[Officeボタン] ⇒ [Excelのオプション] ⇒ [リソース]
⇒ [診断] ⇒ [続行] ⇒ [診断の開始]
で通常の設定に戻る可能性があります。
--------------------------------------------------
■エクセル 形式を選択して貼り付け
http://oshiete1.goo.ne.jp/qa3256466.html
↑同様のトラブル

■Excelを別々に起動する方法を教えてください。
http://oshiete1.goo.ne.jp/qa3705022.html
↑わざとそうしたいというハナシ

以上ご参考まで。

[形式を選択して貼り付け]の際に、
ワークシートオブジェクト,図(拡張メタファイル),ビットマップ,バイナリ形式等が表示されるのは、
なんらかの理由で【Excelが重複起動】していて、
別個のアプリケーションとして起動している【Excelをまたぐ形で貼り付け】しようとした場合です。
--------------------------------------------------
>別のブックを開きひとつだけセルを選択し「貼り付け」すると、

とありますが、この「別のブック」というのは
新規ブックでしょうかそれとも既存のブックでし...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q可視セルから可視セルへのコピー

エクセルのデータ集計で集計された数字(可視セル)を他のファイルの表にコピーしたいのです。
通常、編集→ジャンプから可視セルを選びコピー→形式を選択して貼り付けから値を選び
貼り付けているのですが、今回は表の方にも非表示にしている行があるのです。
なので通常の方法でやると表の方の非表示セルに値が貼りついてしまい困ってます。
可視セルの値を表の可視セルへコピーする方法はないのでしょうか?

Aベストアンサー

#2 のpascal3141さんへ
>ActiveSheet.Paste
貼り付け側にも、非表示セルがあるのですね。だから、そのまま貼り付けは出来ませんね。

bonbonkogepan さん、こんばんは。

やっと、形がまとまりました。
[Alt]を押しながら[F11] を押して、Visual Basic 画面を開けたら、挿入-標準モジュールで、画面を出します。そして、以下を貼り付けます。
一旦、保存してから、再び、このブックを起動したら、マクロが設定されます。

使い方:
コピーする可視セルの範囲をマウスで選択して、
「Ctrl + C(Ctrlキーを押しながら、C」とすると、
メッセージが出てきます。
(メッセージは、不要になったら、MsgBox の代わりに、Beep という単語だけを書くと、音だけします。)

次に、コピーされる側のセルに移り、「Ctrl + V」とします。

  ショートカットは、自分で変えられます。
  + がShift, ^ がCtrl, % がAlt です。
  ファンクションキーは、{F1}, {F2}…… となります。
  取り外し側で、同じよう書けば残りません。また、Excel自体を終了しても残りません。もし、[Personal.xls] に同じように書けば、全体のブックに設定されます。

 ※現在のバージョンは、非表示行に対してのみです。

なお、作った本人は、今のコードを気に入っています。このご質問はとてもユニークです。ですから、もっと別な人のアイデアを見たいものです。また、作っている途中で、セルの自体のコピー(書式等を含めて)の仕方も思いつきました。それから、これは、Excelの持っているクリップボードを使えば、もっと完璧になりますが、掲示板の性格上、そこまではしませんでした。

'--------- 切り取り線 -----------------------
'<標準モジュール登録>
Option Explicit
Private rng As Range
Private copyFlg As Boolean
Sub Auto_Open()
 Call SettingKey
End Sub
Sub Auto_Close()
 Call SettingOffKey
End Sub
Sub SettingKey()
'設定ショートカット
With Application
    .OnKey "%c", "VisibleCopy" 'コピー Alt+ C
    .OnKey "%C", "VisibleCopy"
    .OnKey "^v", "VisiblePaste" '貼り付け Ctrl+ V
    .OnKey "^V", "VisiblePaste"
End With
End Sub
Sub SettingOffKey()
'設定ショートカットの取り外し
With Application
    .OnKey "%c"
    .OnKey "%C"
    .OnKey "^v"
    .OnKey "^V"
End With
End Sub
'---実行部分-------
Sub VisibleCopy()
 Set rng = Selection.SpecialCells(xlCellTypeVisible)
 copyFlg = True
 MsgBox "Ctrl +V で貼り付けしてください", 64 '覚えたら、外してネ!
 'Beep
End Sub
Sub VisiblePaste()
 Dim c As Range, cnum As Long
 Dim myArray() As Variant
 Dim i As Long, j As Long
 If copyFlg = False And rng Is Nothing Then Exit Sub
 cnum = rng.Areas(1).Columns.Count
 For Each c In rng
  ReDim Preserve myArray(i)
  '配列に格納
  myArray(i) = c.Value
  i = i + 1
 Next c
 With ActiveCell
  j = 0
  For i = LBound(myArray) To UBound(myArray)
   Do While .Offset(j, j).EntireRow.Hidden = True
    j = j + 1
   Loop
   .Offset(j, (i + cnum) Mod cnum).Value = myArray(i)
   If (i + cnum) Mod cnum = cnum - 1 Then j = j + 1
  Next i
 End With
End Sub

#2 のpascal3141さんへ
>ActiveSheet.Paste
貼り付け側にも、非表示セルがあるのですね。だから、そのまま貼り付けは出来ませんね。

bonbonkogepan さん、こんばんは。

やっと、形がまとまりました。
[Alt]を押しながら[F11] を押して、Visual Basic 画面を開けたら、挿入-標準モジュールで、画面を出します。そして、以下を貼り付けます。
一旦、保存してから、再び、このブックを起動したら、マクロが設定されます。

使い方:
コピーする可視セルの範囲をマウスで選択して、
「Ctrl + C(Ctrl...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qエクセルで「コピー領域と貼り付け領域の形が違うため、情報を貼り付けることができません」とでます

タイトルどおりです。
全く同じ四角い領域(二つのセルを一つに結合している。それを4~5個)を、別の同じ形のところへ貼り付けようとするのですが、このメッセージが出てできます。それでコピー&ペーストができません。助けてください。
OS=WIN XP SP2
EXEL2000 9.0.2812
です

Aベストアンサー

私もそれで困ったことがあります。
貼り付けようとする側の4~5個を選択するのではなく、該当する範囲の左上の角1個のセルを指定してみてください。

私はそれで解決しました。

Qエクセル 非表示行以外(表示行)のみをコピー&貼り付けするには

どなたかお願いします。
エクセルで 非表示行以外(表示行)のみをコピーして
別のブックまたはシートに貼り付けたいのですが、
Ctrlキーを押しながら表示行のみを選択するには
行数が多すぎ(1500行位)ますので困っています。
だいぶ以前に同じような事が出来たように思うのですが、
なにか方法があれば教えて下さい

Aベストアンサー

次の方法は如何でしょうか。
編集→ジャンプ→セル選択→可視セル→OKで表示セルが選択されますので後はコピー&ペーストして下さい。

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

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

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除


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

人気Q&Aランキング