数式の参照を変更するデータの切り取りと貼り付けを防ぐ方法は?


49

Googleスプレッドシートには、数式内のデータセルへの参照があり、そのセルからデータを切り取って新しい場所に貼り付けると、数式内の参照が更新されて新しいセルの場所を指す機能があります。

数式を変更せずにデータをカットアンドペーストできるようにしたい。

私は過去にINDIRECT()この機能の周りで機能する機能を含むいくつかの恐ろしいことをしましたが、もっと簡単な方法がなければならないようです。助言がありますか?


2
おかしい...この機能をバグだとは思っていなかった。これは何十年もの間Excelで機能してきました。
mhoran_psprep

1
与えられた答えを確認する時間を見つけましたか?おそらく、そのうちの1つをベストアンサーとしてマークできます。
ジェイコブヤントゥインストラ

1
多くの異なる質問が以下に回答されています。質問は片付けられますか?あなたの問題の例はこれだと思います:セルA2には「= B1 + 5」などの数式が含まれています。B1には「42」が含まれます。A2は、予想どおり「47」を表示します。しかし、B1には「42」が含まれてはならず、C1には「42」が含まれ、B1には「58」が含まれている必要があることに気づきました。B1をクリックして「カット」、C1をクリックして貼り付けます。B1は空(予想)になり、C1は "42"(予想)になりますが、A2は自動的に "= C1 + 5"に更新され、カットアンドペースト(予想外)に従うため、A2には "47"が表示されます。あなたが望んだのは、A2が「= B1 + 5」のままであることでした。私は正しいですか?
セソイド

回答:


22

=$A$1(例えば)の値があれば表記も自動的に移動させることができるA1変更されます。

唯一の確実な解決策は、すべての参照をINDIRECT、たとえば、=INDIRECT("$A$1")またはちょうどで囲むことです=INDIRECT("A1")

これらの解決策のいずれかの難しさは、同じ式の多くがある場合です。例えば

=A1
=A2
=A3
...
=A99

通常、最初に入力=A1してからコピーアンドペースト(または自動入力を使用して下にドラッグ)して連続式を自動的に入力します。ただし、最初の式が成功した場合、=$A$1または=INDIRECT("A1")このトリックが機能しない場合(実際、これは、$自動的に変更されないようにするためです)。

多数の連続式がある場合、1つの解決策は次のとおりです。

  1. 通常どおり数式を作成します(プレーン=A1および自動入力を使用)
  2. 置換ダイアログ(Ctrl+ H)を使用し、「式で検索」を使用して、すべて=A1=A2... など=A99でラップ=INDIRECT("A1")します。検索と置換を行うときに正規表現を使用するオプションがあることに注意してください。

新しいGoogleスプレッドシートでより優れた検索と置換を使用することを提案する回答を更新しました。これにより、数式の置換と正規表現の使用が可能になりました。
Motti Strom

1
数式内のすべてのセル参照をINDIRECTでラップするための検索/置換パラメーターの例を示してください。
マイケル

INDIRECTをROW()と組み合わせて使用​​すると、現在の行で動作する数式を作成できます。例:= A1 + B1は、= INDIRECT( "A"&ROW())+ INDIRECT( "B"&ROW())になります
Evil Pigeon

31

Googleドキュメントフォーラムから

セルの範囲を選択します。次に、Ctrl+を使用しますC(コピー。これにより、セルとその数式が貼り付けバッファーに配置されます)。

次に、選択したセルを新しい位置にドラッグします(マウスカーソルが手の形に変わるまで選択範囲の端にカーソルを合わせます。ドラッグできるようになりました)。

コピーしたセルの元の左上の位置に戻り、Ctrl+ V(貼り付け)を使用します。

これで、同じセルを参照する2つの数式セットが必要になります。


6
これは、式を保持する唯一の答えです。
amcnabb 14

3
同意-これが唯一の正しい答えです。
stevemidgley

1
ありがとう!「ドラッグ」とコピー/貼り付けに違いがあることに驚きました!
rcreswick

したがって、切り取りと貼り付けを行う場合は、選択範囲とドラッグ部分だけが必要ですが、コピーする場合は、元の状態を保持するための追加の手順が必要です。
ムーマインド

2
より良い方法:シートを複製し、シートのクローンから切り取り、必要な新しい場所にある元のシートに貼り付けます。完了したら、シートのクローンを削除します。このように、参照は影響を受けません。
ADTC

30

同様の問題を探してこれに出くわし、Googleスプレッドシートで完全に機能しているように見えるExcelのソリューションを見つけました。

貼り付け時に変更したくないセル参照については、$各部分の前に追加するだけです。

そうG12なるだろう$G$12

私が使用しているスプレッドシートのセルは、私が必要とするもので、次のようなものです。

 =$G$1&Sheet1!B3&Sheet1!A3&$G$2

1
これはうまくいきませんでした。以下の私の代替を参照してくださいwebapps.stackexchange.com/questions/22558/...
Mottiストロム

@Leonard、すごい構文は恐ろしいです。逆の場合、つまり、相対セルが使用され$、絶対セルがデフォルトの場合は、はるかに直感的です。
Pacerier 14

@Pacerier私はあなたに完全に同意しますが、うまくいきますが、恐ろしく読みにくいです。あなたが提案していることを理解するのに十分な頻度でスプレッドシートを使用していません。詳しく説明してもらえますか?
レナード

@Leonard、デフォルトの動作が異なることを意味したので、代わりに$G$1&Sheet1!B3&Sheet1!A3&$G$2を実行します G1&Sheet1!$B$3&Sheet1!$A$3&G2
Pacerier 14

1
@grahamparks:投票して、解答ではない理由をコメントで残してください。回答に独自の解説を追加しようとしないでください
エール

7

Googleスプレッドシートで、数式を自動シフトせずにセルをカットアンドペーストするには、Ctrl+ Xを使用してカット(またはCtrl+ Cをコピー)し、Ctrl+ Shift+ Vを使用して貼り付けます。

Shiftだけで、あなたの数式を残すために、Googleのシートを伝えます。


fyi、Flycut(mac)などのアプリを使用している場合、Ctrl + Shift + Vショートカットが既にアクティブになっていると、スプレッドシートのショートカット競合し、数式のロックは機能しません。Flycutアプリのショートカットを無効にするか、CTRL + SHIFT + Vを実行する前に最初に終了してください。
フルン14

13
Shiftを使用して貼り付けを変更すると、変更されていない式ではなく、Googleスプレッドシートの値が貼り付けられます。
マットマクルーア14

4
これは正しくありません。ctrl-shift-vは、単に式の「値」を貼り付けます。これはデータの転置を防ぎますが、結果のセルには式ではなく静的な値が含まれます。
stevemidgley

1
動作しません、-1。
Pacerier 14

1
切らない ctrl+ shift+ vで貼り付けると、ソースセルでctrl+ xを実行した場合でも、常に値がコピーされます。
スペアバイト

5

Excelの場合と同じ方法でこれを回避します。

データをコピーして貼り付け、戻って元の場所から削除します。


3

(コピーではなく)カットは、おそらく選択されたセルをドラッグするのと同じ理由で動作するようです。つまり、同じ操作です。これは、式を変更せずに別のページに貼り付ける唯一の方法でもあります。

移動ではなくコピーを実行しようとしている場合は、ドラッグメソッド(ドラッグする前にコピーする)を使用するか、最初にページ上の別の場所にコピーします。


2

一定範囲のセルをGoogleスプレッドシートの新しい場所に移動するには:

1.移動するセルの範囲を選択します
2.カーソルが手の形に変わるまで、選択範囲の任意の端にマウスを移動します
3.セルを新しい場所にドラッグします

これにより、必要な処理が行われ、移動されます。したがって、すべてのセル情報は元の場所にあったままになります。

追伸 Googleもこれを指示していますが、端からドラッグできるとは言わず、一番上の端からだけドラッグできるため、私の指示の方が優れているのです!:)また、これが機能するためには、選択したセルが隣接している必要があることに注意してください。


とてもいいキャッチ!
マリカミトソス

同じ方法がここにも記載されています。まだ。これはよりよく研究され説明されています。
マリカミトソス

1

セルのコピーではなく、式のテキストコピーを実行します。マウスを使用して式のテキストを選択し、Ctrl + Cキーを押します。次に、宛先フィールドを選択して、CTRL + Vを押します。これは式を保存します


1
しかしセルごとにこれを繰り返す必要があります。複数のセルを介してテキストをコピーする方法はありますか?
Pacerier 14

0

最も簡単な方法は、移動するすべてのセルを選択し、目的の場所にドラッグアンドドロップすることです。移動したセルの元の場所を参照していた数式が他のセルにある場合、参照数式は移動したセルの新しい場所に自動的に更新されます。お役に立てれば!(これはExcelで動作すると仮定しますが、私はGoogleスプレッドシートでのみ動作します)。


0
  1. マウスでセルを選択
  2. 共同クリップボードをコピー
  3. グループの端をキャプチャして、選択したセルをマウスで新しい場所に移動します
  4. クリップボードからすべてを移動したばかりの空のスペースに貼り付けます

0

私はちょうど検索と置換のすべてのインスタンスを「=」「」プレーンテキストにすべての数式を作るために(または式の限り、私は私ができるようにコピーしようとしています)。セルをコピーして貼り付け、「=」を追加し直します。

注:他のセルを編集すると意図しない結果になる可能性があるため、これはおそらく巨大なシートでは機能しませんが、通常は私の目的のために機能します。


0

別のオプションを次に示します。

  1. 「数式の表示」モードに切り替えます([表示]メニューの下)
  2. 目的の領域をコピーします
  3. 外部テキストエディターに貼り付けます
  4. 変更を加える-どこかにスペースを追加するのと同じくらい簡単にできます
  5. 外部テキストエディターから数式をコピーする
  6. シートのターゲット領域に貼り付けます
  7. 数式を表示をオフにする

これは長い手順のように見えますが、実際にはほんの数回のキーストロークです。また、ステップ4はセットアップに必須です。これがない場合、スプレッドシートはセルの場所を直接コピーアンドペーストであるかのように更新します。YMMV。


0

を使用INDIRECT()すると、ターゲットをコピーして貼り付けた後、参照の絶対位置を保持するのに最適ですが、問題は、がコピーされたときに絶対位置も保持することです。つまり、大規模な使用時の範囲。

解決策は、組み合わせることであるINDIRECT()ROW()COLUMN()、およびADDRESS()プログラムで数式のセルに基づいて、標的細胞の位置を生成します。

ターゲットセルに固定列があり、常に数式と同じ行に留まる場合など、最も単純な場合、これは次のように実行できます。

INDIRECT("A"&ROW())

数式セルから動的オフセットを導入するには、次を使用できますADDRESS()

INDIRECT(ADDRESS(ROW()-1,COL()-4))

以下のスクリーンショットでは、の数式がB1:E1下の16行に拡張され、次に番号のシーケンスA7:A10がカットされ、6セル下に貼り付けられました。ご覧のとおり、最も単純な式は自動的に調整および同期解除され、一方、単純な使用はINDIRECT()すべての行に適切に外挿しませんでしたが、INDIRECT()行と列の位置のプログラムによる取得とともに使用する2つの式は参照を維持できました:

デモンストレーション写真


-1

F4カーソルがセルまたは範囲にあるときに、さまざまな絶対参照オプションを切り替えるために押すことができます。これはMacおよびWindowsで機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.