エクセルでフィルタをかけたセルに値を貼り付ける方法とは?

このQ&Aのポイント
  • エクセルのシートでフィルタをかけたセルの選択範囲をコピーし、同じ範囲に値を貼り付けたい場合の方法について教えてください。
  • フィルタで表示するセルにはVLOOKUPを含む数式が入っており、元データが変更されると数式の結果も変わってしまいます。VLOOKUPで引っ張ってきた後に値を確定させるために、コピーと貼り付けを行いたいです。
  • フィルタをかけたセルのコピーと貼り付けはマクロを使用する必要があると認識していますが、マクロの組み方がわからず困っています。助けていただけませんか?
回答を見る
  • ベストアンサー

エクセル フィルタをかけたセルに貼り付け

お世話になります。 エクセルのシートでフィルタをかけたセルの、選択した範囲のみをコピーして、 同じ範囲に値貼り付けしたいのですが、よい方法が浮かびません。 フィルタで表示するセルには、数式(VLOOKUP)が入っていて、別シートの値を参照しています。 元データが変更されると、数式で表示されている値も変わってしまうので、 VLOOKUPで引っ張ってきた後に、値貼り付けをして、値を確定させたいのです。 フィルタをかけたセルへのコピーは、マクロを使わないとできないことは分かったのですが、 実際にマクロを組むことができず困っています。 助けていただけませんでしょうか。 ----------------------------------------------------- 参考として、現在次のようなフォームを使い、生産・販売・在庫の管理をしています。   A     B    C   D   E   F   G    H    I 1顧客名 製品名     10/1 10/2 10/3 10/4 10/5 10/6・・・・ 2 A社   AAA  生産   3           販売 4           在庫  5 B社   BBB  生産 6           販売 7           在庫 8 C社   CCC  生産 9           販売 10          在庫 列は、日付になります。 行は、製品ごとの生産、販売、在庫が入ります。 在庫行は、「生産数-販売数」の数式が入っています。 生産行は、依頼先から送られてくる生産実績ファイルをもとに、VLOOKUPで参照しています。 フィルタで「生産」だけを表示し、任意の範囲をコピー⇒値貼り付けできるようにしたいです。 宜しくお願い致します。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

>実際にマクロを組むことができず困っています。 そのような時は、フリーウェアを探してみるのも解決策のひとつです。 『不連続セルの貼付』 http://www.vector.co.jp/soft/win95/business/se448351.html もっとも、本ケースは[コピー]-[貼り付け]というより『可視セルの数式を値にする』だけなので 目的を絞れば比較的簡易なコードで対応出来そうです。 Sub Test() 'フィルター後、値化したい範囲をまとめて選択して実行   Dim rng As Range   Dim r  As Range   If TypeName(Selection) <> "Range" Then Exit Sub   On Error Resume Next   Set rng = Selection.SpecialCells(xlCellTypeVisible)   On Error GoTo 0   If rng Is Nothing Then Exit Sub   For Each r In rng     r.Value = r.Value   Next   Set rng = Nothing End Sub

m_azarashi
質問者

お礼

フリーウェアの有用な情報を教えていただきありがとうございました。 このようなものもあるのですね。 早速試したところ、動作も早いしうまい具合に使えるかと思ったのですが、 いざ実データで使用しようとすると、途中までしか貼り付けができませんでした。 (2000行以上もある大きいデータだからか、データに問題があるのかもしれません・・・) ですが作っていただいたコードで試したところ、多少の待ち時間はあるものの、エラーもなく値貼付けを行うことができました。 数式を値貼り付けする機会がたびたびあるもので、コードを作っていただき大変助かりました。 もうしばらく実データで使用してみて、確認したいと思います。

関連するQ&A

  • Excel2007でセルの貼り付けに関する謎

    OS:WindowsXP Pro SP2 Office:2007 Excel2007で以下の通り作業を行っています。 目標: Excel2007のファイル1(共有)にあるテーブルを別のExcelファイルにコピーして編集 (例: 1行目が項目名、それぞれA~F列に値(数式含む)がある。A1からF17とします) 手順: 1)ファイル1にあるテーブルにフィルタをかけます(10行、15行が非表示になるとします) 2)ファイル1のA2:F17を選択し、コピー 3)別のExcel2007ファイル(ファイル2)のSheet1のA2セルに貼り付け 4)ファイル2のA2:F15に対象のセルが貼り付けられる ここで、下記の通り疑問(問題)が起こりました。 (1)通常コピー&通常貼り付けであれば、数式もそのまま貼り付けられると思っていたのですが   非表示行を含む形で選択・コピーすると、数式ではなく値が貼り付けられてしまいます。   Excel2007はそういった仕様なのでしょうか? (2)実際は別のファイルからもコピー&貼り付け&列削除等、色々作業をしているのですが   突然上記手順の4)ができなくなりました。   事象としては、上記手順3)を実行した際、A2:F15が選択された表示はあるものの   一向に値が貼り付けられません(セルはNull値と思われます。スペースも入っていません)。   右クリックして、形式を選択して貼り付け(値とか数式とか)しようと試みると、   図の貼り付けの時のWindow(拡張メタファイル等)が表示されます。   この事象・原因は一体なんでしょうか? (1)(2)どちらかだけでも結構です。 ご存じの方がいらっしゃいましたら原因や解決方法、ご意見等頂けませんでしょうか。 宜しくお願いいたします。

  • 【エクセル】関数で得た値の他のセルへの張り付け

    LEFT関数で得た数値の入ったセルをコピペして他のセルに値貼り付けします。 その値貼り付けしたセルを参照しているセルが2つあります。 1.countif 「=COUNTIF...」 →これは正しく返されます。 2.VLOOKUP「=IFERROR(VLOOKUP...」 →返されません。 値貼り付けしたセルの数式バーをワンクリックすると返されるようになります。 1個1個それをやっていくのは面倒なので、コピペする前に一度メモ帳に貼り付けてからそれをコピペしてるのですが、わざわざそんな事をしなくてもどうにかならないでしょうか・・・?

  • フィルターをかけ、必要部分だけを貼り付けするマクロ

    マクロを独学している初心者です。 よくわからず、途中までマクロを作成してみましたが、上手くいかずどのようにマクロを記載すれば以下教えてください。 ◆実施したいこと (1)ブック1を開いてマクロを動かして、ブック2をあける (2)ブック2のP列を当月(2020年6月)でフィルターする (3)ブック2のCの2行目以下をコピー (4)ブック1のB3セルへ貼り付け (5)ブック2のDの2行目以下をコピー (6)ブック1のC3セルへ貼り付け ----ここまでマクロで作成し写真添付------- (7)ブック2のO列を当月(2020/6/xx)でフィルターする (8)2020/6/1も6/何日であろうと出てきたもの全てをブック2のEの2行目以下をコピー (9)ブック1のD4セル以下へ貼り付け

  • エクセル値の貼り付け

    数式及び関数を多数使用しているSheet1があるとします。(ほとんどが表) 最終的にこれは元請けにエクセルデータとして提出します。 しかし、提出する際には各セルが数式及び関数が入った状態ではなく、文字列(値)としの状態で提出したいと考えています。 一度、Sheet1をコピーしてSheet1(2)をつくり、そのなかの文字及び数式を削除し、表(罫線)だけの状態としました。そしてSheet1を全体を範囲指定しSheet1(2)に『形式を選択して貼り付け→値』としようとしたのですが、『この操作には、同じサイズの結合セルが必要です』とエラー表示がでて貼り付けできませんでした。ほかにも列を指定したりだとかA1から範囲指定したりだとかいろいろ試しましたが結果は同じでした。 おそらく原因は、表の中にいろいろな形でセルを結合しているからだと思います。当然、ひとつのセルでやれば値だけの貼り付けはできます。しかし膨大な表なのでそういう訳にもいきません。 なにかいい方法はありませんか。

  • エクセルで形式を選択して貼り付けができない

    過去問で探せないため質問します。エクセル2003です。J6から06をセルの統合をしています。それの数式?をコピーしてJ55から055のセルを統合したところに貼り付けをしたいのですが、うまくいきません。コピー→形式を→値にすると『同じ大きさのセルが必要です』と表示され、コピー→形式を→数式にすると『#VALUE!』とエラーが表示されます。どうすれば数式をコピーできますか?

  • excel2010貼り付け

    あるセルに入れた数式を他のセルにコピーする際、形式を選択して貼り付けから数式をコピーした結果、数式欄には正しい数式が表示されているにも関わらず、セル自体の表記は値を貼り付けた場合の値になってしまいます。原因と解決策を教えてください。

  • エクセル セルのコピーができない。

    エクセルでセルをコピー&貼付けがうまくできなくなりました。 セルをコピーしてもテキストしか認識されずに、貼り付けるとセルの書式設定等は全くついてきません。 また、行や列毎コピーして挿入することもできなくなりました。 形式を選択して貼り付けを選択すると、Unicodeテキストかテキストの2つから選ぶ画面しか出てこず、 通常の値、数式、書式設定等を選ぶ画面も出てきません。 とくに何かエクセルの設定を変えた覚えはないので、なぜこうなったのかわかりません。 どうしたら、通常のセルのコピーができるようになりますでしょうか。

  • excel単一セルから結合セルに複写

    単一セルのものを結合セルに複写したいのですが、うまくいきません。 データーが約700行あるのです。 Aシートが単一セルでBシートが結合セル(縦に結合)になっていますが、 そのままコピーすると、当然結合が解除され、貼り付けられてしまいます。 「形式を選択して貼り付け・・」で、数式又は値等で貼り付けると、一行飛ばしで 貼り付けされてしまいます。 うまく貼り付ける方法がありましたら、教えていただきたいのですが・・・

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

    質問番号: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

  • エクセル(2003)のコピーと貼り付けについて。

    エクセル(2003)のコピーと貼り付けについて、操作を自動化したいです。 VBA初心者です。 同じフォルダ内にAファイルとBファイルがあります。 Aファイルにはシート1からシート4まで有り、シート1とシート2にシート3と4を比較したデータを表示させています。 シート1とシート2はA1からG1まで項目として、A2からデータが表示されます。約20行程度、表示される行数は毎日変わります。 Bファイルにはシート1しかありません。A1からG1まで項目とし、A2からデータが表示されています。約100行。毎日変わります。 (Aファイルのシート1とシート2の表示されているデータを貼り付けていく為) Aファイルのシート1に表示されているデータ(A2から)を仮に20行としBファイルの101行目(入力されているデータのすぐしたの行)に貼り付け、Aファイルのシート2に表示されているデータ(A2から)を仮に20行とし、120行目に貼り付け。 毎日コピーする範囲や貼り付けをするセルが変わっていく、固定の範囲、セルではない。この作業を毎日、コピー貼り付けで操作しています。 この操作をラクにしたいです。 困っていることは、コピーする範囲が毎日変わってしまう。(行数が増減するため) 貼り付けるセルも変わってしまう、(行数が増減するため) 分かりずらい説明になっていましたら、申し訳ないです。 よろしくお願いします。

専門家に質問してみよう