Excel の貼り付け - 貼り付け時にセルと行の関係を維持する方法

Excel の貼り付け - 貼り付け時にセルと行の関係を維持する方法

Excel に複数の行の情報があります。選択したセルをコピーして貼り付け、コピー元の行の各セルの値を保持したいと考えています。しかし、値をコピーするたびに、値が隣り合った行にまとまってしまいます。

私が望んでいることと、それが実際にどうなるかを説明するために、画像を含めました。列 B で、値「バナナ」のセル (B2 と B4) を選択します。貼り付けるときに、列 D (D2 と D4) のように見えるようにしたいのですが、実際には列 F (F2 と F3) の結果になります。

Excel 2016を使用しています。

ここに画像の説明を入力してください

答え1

この動作は仕様によるものです。連続していないセルを選択してコピーすると、Excel は元の位置を記憶しません。

回避策:

  • 値を 1 つずつ対象セルにコピーします。
  • まず列全体をコピーし、次にフィルター処理して「Banana」を含むすべてのセルを除外し、他のすべての行からコンテンツを削除します。
  • 数式を使用して、「バナナ」が他のシートの同じセルにあるかどうかを確認し、ある場合にのみ値を返します。次の数式が機能するはずです。=IF(B2="Banana",B2,"")
  • マクロを使用して列 B のすべてのセルを確認し、"Banana" と表示されている場合は列 D に値を複製します。Sub BananaCopy() Const csSrc As String = "B" Const csTgt As String = "D" Const csFruit As String = "Banana"

    Dim rngFruits As Range, rngCell As Range
    
    Set rngFruits = Range(csSrc & 1, csSrc & Rows.Count)
    For Each rngCell In rngFruits
        If rngCell.Value = csFruit Then
            Range(csTgt & rngCell.Row).Value = csFruit
        End If
    Next rngCell
    

    終了サブ

関連情報