[[20210819170644]] 『エクセルでフィルターしたセルをコピーして貼り付』(mild) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルでフィルターしたセルをコピーして貼り付けする方法』(mild)

投稿日時: 21/08/19 15:47:22投稿者: mild2
https://office-hack.com/excel/filter-paste/
⇑ここでの設定が私がやりたい事ですので、こちらを引用させて頂きます。

やりたい事
フィルター抽出後のデータの、B4、B7、B11、B14 のみをコピーして
D4、D7、D11、D14 に貼り付けしたい。

順を追って作業内容を記します。
コピーする
絞り込んだ結果、B列に表示された4つのセルB4、B7、B11、B14をドラッグして選択し、【Ctrl】+【C】を押してコピーします。

貼り付け先を選択する
D列の表示されている4つのセルD4、D7、D11、D14を【Ctrl】を押しながらドラッグして選択します。

可視セルを選択する
【Alt】+【;】(セミコロン)を同時に押します。

【Ctrl】+【R】を押します。 ⇒ これを実行しても何の変化もありません。

どこが間違っていますでしょうか?

< 使用 Excel:unknown、使用 OS:unknown >


離れたセルをコピーしても離れたセルに張り付ける事はできません。
1つ1つ入れてください。
(げげ) 2021/08/19(木) 17:18

 まず、Ctrl+Rは選択したセルにその左隣のセルの値をコピーするショートカット。
 D列のセルを選択した場合は同じ行のC列のセルの値を張り付ける。
 また2016では選択範囲が一つの場合にしか左隣の値をコピーしてこなかった。
(ねむねむ) 2021/08/19(木) 17:25

 また2016では選択範囲が一つの場合にしか左隣の値をコピーしてこなかった。???
2016とは?

このURLでは、出来る様にかいてありますが?
皆さん、この通りやって出来ますか?出来ませんか?
(mild) 2021/08/19(木) 17:53


 >2016とは?
 EXCELのバージョン。
 あなたは明らかにしていないようだが。
(ねむねむ) 2021/08/19(木) 19:00

 >【Ctrl】+【C】を押してコピーします。 
 これが邪魔してるんじゃないでしょか?
 [Ctrl]+[R]するんだからコピーモードになってちゃダメだと思うんですよね。

(白茶) 2021/08/19(木) 19:01


 上にも書いたがCtrl+Rは選択したセルのすぐ左のセルの値を選択したセルにコピーするものなのでリンク先のように
 離れたセルの値はコピーされない。
 また、離れた複数のセルを選択した状態では何もおこらなかった。
 結局そのサイトの記述が間違っているように思う。
 あるいは特定のバージョンではうまくいくか。
 こちらで確認したのは2016と365
(ねむねむ) 2021/08/19(木) 19:11

 2016で試してみました。
 できましたけど・・・?

 以上
(笑) 2021/08/19(木) 19:20

Excel(エクセル)のフィルターで、可視セルのみ貼り付ける方法|貼り付けるとずれる場合や、複数行への対処法 | Prau(プラウ)Office学習所
https://prau-pc.jp/excel/filter-visible-cells-only/

↑の「可視セルのみ貼り付ける方法」より

 > 1.コピーしたいデータを選択する
 > 2.「選択オプション」で「可視セル」を選択
 > 3.貼り付け先を「Ctrl」を押しながら同時選択
 > 4.「Ctrl」+「R」でコピーする

 だそうです。
 試にフィルタ掛けた状態で、飛び飛びで3列を選択してやってみましたが、
 出来てるっぽいです。

(白茶) 2021/08/19(木) 19:23


 お? これ[Ctrl]+[R]しなくてもイケてるっぽいですね。 (あ。当方Excel2010です)

(白茶) 2021/08/19(木) 19:31


 あ。ゴメンなさい。
 [Alt]+[;]しなくてもイケてる
 の間違い^^;

(白茶) 2021/08/19(木) 19:32


同じく2010です。
[Alt]+[;](可視セルの選択)は必要でしたが、
[Ctrl]+[R]じゃなく[Ctrl]+[V]でできました。
何か違いがあるんですかね?
(ぬっこ) 2021/08/19(木) 19:40

↑勘違いでしたm(__)m
(ぬっこ) 2021/08/19(木) 19:44

 Ctrl+R時に貼り付け先だけ選択してたから駄目だったのかと思いコピー元、貼り付け先の順で選択してCtrl+Rを押してみたが
 駄目だった。
 だが、貼り付け先を選択後、コピー元を選択という順番でCtrl+Rを押した場合にはコピー、貼り付けが行われた。
 なお、フィルターをかけずにとびとびのセルを選択した場合も同じ。
 バージョンは365.
(ねむねむ) 2021/08/19(木) 19:45

 365でやってみました。

 キモは、
 ・コピー元、コピー先が両方選択されていること。
 ・コピー元、コピー先が同じ行であること

 Ctrl+R の操作をマクロの記録をしてみると、FillRightメソッドだそうなので調べると
https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.fillright
 >指定されたセル範囲の左端のセルを右方向のセル範囲に複写します

 Range("B1:B2,D1:D2,B5:B6,D5:D6").FillRight
 とすると、
 B1:B2がD1:D2に、B5:B6がD5:D6にそれぞれコピーされます。
 左端がA列だと実行時エラーになるのはなんでかなぁ?
(´・ω・`) 2021/08/19(木) 20:05

    Sub Filltest() 'オートフィルタなしで実験
        Rows.Delete
        With [B2]
            .Value = "A"
            .Interior.ColorIndex = 6
        End With
        With [B2,D2,F2:G2,B4,D4,F4:G4,B6:B7,D6:D7,F6:G7]
            .FillDown
            .FillRight
        End With
    End Sub

    Sub Filltest2() 'オートフィルタで絞り込んだ状態で実験
        Rows.Delete
        [A1:G1] = "xxx"
        [A2:A10] = [{1;2;1;2;1;1;2;2;1}]
        With [B2]
            .Value = "A"
            .Interior.ColorIndex = 6
        End With
        [A1:G1].AutoFilter 1, 1

        With [B2:B10,D2:D10,F2:G10]
            .FillDown
            .FillRight
        End With
        [A1:G1].AutoFilter 1
    End Sub

 やっぱフィルタ掛かってる状態なら、可視セル選択しなくてもイケるっぽいですね。

(白茶) 2021/08/19(木) 20:07


 >左端がA列だと実行時エラー
 指定範囲が1行目且つ1行だけ選択だとFillDown失敗するのと同じでしょうね。
 単一行選択の場合、ひとつ上の行をコピーしようとしますから。

(白茶) 2021/08/19(木) 20:11


 コピー元がA列以外の場合はどんな順番で選択しても左側のセルから右のセルへとコピーされた。
 コピー元がA列の場合は貼り付け先から先に選択しないとならないようだ。
(ねむねむ) 2021/08/19(木) 20:29

 ホントだ〜。面白い

    Sub Filltest3()
        Rows.Delete
        [A1:G1] = "xxx"
        [A2:A10] = [{1;2;1;2;1;1;2;2;1}]

        [A1:G1].AutoFilter 1, 1
        With [A1]
            .Value = "A"
            .Interior.ColorIndex = 6
        End With

        With [D1:D10,A1:A10,F1:G10] '[A1:A10,D1:D10,F1:G10]だとFillRightでエラー
            .FillDown
            .FillRight
        End With
        [A1:G1].AutoFilter 1
    End Sub

(白茶) 2021/08/19(木) 20:39


 >コピー元がA列の場合は貼り付け先から先に選択しないとならないようだ。
 なるほど...できました。
 教えていただきありがとうございます
(´・ω・`) 2021/08/19(木) 21:04

>皆さん、この通りやって出来ますか?出来ませんか?
2013です。出来ましたよ。
Alt+; を二つ同時に押していますか。
押し方によってはうまくいかないこともある。

以下の方法でも出来ました。
方法➀
コピー元 範囲選択後 Alt+; → Ctrl+C
コピー先 Ctrlを押しながら選択 → Ctrl+R
方法➁
コピー元 Ctrlを押しながら範囲選択後 → Ctrl+C
コピー先 Ctrlを押しながら範囲選択後 → Ctrl+R

表は質問者の URL の画像より引用。

     |[A]|[B]     |[C]   |[D]     |[E]     |[F]     |[G]     |[H]     |[I]
 [1] |   |        |      |        |        |        |        |        |   
 [2] |   |日付    |商品  |販売日  |        |        |        |        |   
 [3] |   |12月13日|りんご|        |        |        |12月13日|        |   
 [4] |   |12月14日|バナナ|12月14日|        |        |        |        |   
 [5] |   |12月15日|みかん|        |        |12月15日|        |        |   
 [6] |   |12月16日|ぶどう|        |12月16日|        |        |        |   
 [7] |   |12月17日|バナナ|12月17日|        |        |        |        |   
 [8] |   |12月18日|桃    |        |        |        |        |12月18日|   
 [9] |   |12月19日|りんご|        |        |        |12月19日|        |   
 [10]|   |12月20日|りんご|        |        |        |12月20日|        |   
 [11]|   |12月21日|バナナ|12月21日|        |        |        |        |   
 [12]|   |12月22日|みかん|        |        |12月22日|        |        |   
 [13]|   |12月23日|ぶどう|        |12月23日|        |        |        |   
 [14]|   |12月24日|バナナ|12月24日|        |        |        |        |   
 [15]|   |12月25日|桃    |        |        |        |        |12月25日|   
 [16]|   |12月26日|りんご|        |        |        |12月26日|        |   
 [17]|   |        |      |        |        |        |        |        |   
 [18]|   |        |      |バナナ  |ぶどう  |みかん  |りんご  |桃      |   
 [19]|   |        |      |        |        |        |        |        |  

(HAN) 2021/08/19(木) 23:40


方法➀は以下のURLで解説がありました。
https://yano-cpa.com/excel-filter-copy-paste
(HAN) 2021/08/21(土) 09:20

 だからやっぱ[Ctrl]+[C]は不要ってことですよね。
 更にフィルタ状態であれば[Alt]+[;]も不要と。(行方向も列方向も)

 当然、行や列を[非表示]にしただけなら可視セルへの限定は必要ですから、
 解説記事としては[Alt]+[;]操作を入れておく方が親切でしょうけど、

 [Ctrl]+[C]に関しては不要というか「無関係」な操作に思えます。
 フィルと同時にコピーモードが解除されるだけでしょ。
 (何か別の意味があるんですかね?)

(白茶) 2021/08/21(土) 10:35


皆さん、沢山の御解答誠にありがとうございます。
当方、Excelのバージョンは365です。VBAはわかりません。
今回私が上手くいかなかった原因がわかりました。
実際のサンプルはB列でフィルターを掛けての前提でしたが、私はA列
でフィルターを掛けて実行していました。B列で実行すれば出来ました。

まず、可視セルのALT+; に拘っていてこれをどのタイミングでするんか悩んでいましたが、結果的にこれは不要です。CTRL+Cも不要  CTRL+Vも不要でした。
やることはコピー元の列とコピー先の列を選択して、その後にCTRL+R を押す。これのみです。フィルターを利用しても利用していなくても同じようにできました。

(mild) 2021/08/21(土) 14:58


いろいろなパターンで実行過程及び結果を共有したいので記します。

選択列        実行結果
B,C,D,E      BがC,D,E にコピーされる。
A,C,D,E      何も変化なし×
A,B,D,E      AがB,D,E にコピーされる。
A,B,C,E      AがB,C,E にコピーされる。

※通常列の選択はコピー元とコピー先は左側から順にしますが、上記「何も変化なし」のパターンではコピー先のC,D,Eを先に選択した後にA列を選択すると出来ます。

(mild) 2021/08/21(土) 15:01


今回は非表示の行を除外してCTRL+Rでコピペしましたが、この考えを非表示の列ででも応用できないか試しましたら、やはり出来ました。その場合は選択後に押すのはCTRL+RではなくてCTRL+Dです。
(mild) 2021/08/21(土) 15:03

まぁ結局やってる事は↓このボタン操作ですよね。

エクセル連続データを入れる技リボンからフィル操作
https://kokodane.com/tec1_47b.htm

左方向と上方向はショートカット定義なし
(そうそう使う機会も無いでしょうけど)

(白茶) 2021/08/21(土) 15:18


>いろいろなパターンで実行過程及び結果を共有したいので記します。
一つのデーターを右へ下へとコピーしたかっただけなのか。
(HAN) 2021/08/21(土) 16:51

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.