[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルでフィルターしたセルをコピーして貼り付けする方法』(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 >
まず、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
↑の「可視セルのみ貼り付ける方法」より
> 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
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
以下の方法でも出来ました。
方法➀
コピー元 範囲選択後 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
だからやっぱ[Ctrl]+[C]は不要ってことですよね。 更にフィルタ状態であれば[Alt]+[;]も不要と。(行方向も列方向も)
当然、行や列を[非表示]にしただけなら可視セルへの限定は必要ですから、 解説記事としては[Alt]+[;]操作を入れておく方が親切でしょうけど、
[Ctrl]+[C]に関しては不要というか「無関係」な操作に思えます。 フィルと同時にコピーモードが解除されるだけでしょ。 (何か別の意味があるんですかね?)
(白茶) 2021/08/21(土) 10:35
まず、可視セルの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
エクセル連続データを入れる技リボンからフィル操作
https://kokodane.com/tec1_47b.htm
左方向と上方向はショートカット定義なし
(そうそう使う機会も無いでしょうけど)
(白茶) 2021/08/21(土) 15:18
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.