web-dev-qa-db-ja.com

Google SpreadSheetの列のすべての行に数式を作成する方法

私は3列を使います。 A、B、C。列Cには、すべての行に=A1*(1.6*B1)という式があり、次の行には、C2に=A2*(1.6*B2)があります。

行ごとに新しい式をC列に入力する必要がないようにするにはどうすればよいですか。

私はGoogle Docs SpreadSheetとOpenOffice SpreadSheetの両方でそれを使います。

75
Jonas

マウスを使う

  1. 数式を繰り返すセルをクリックします
  2. 暗い四角い「ハンドル」が右下隅に表示されます

    Location of Drag box

  3. そのハンドルをクリックしてドラッグし、列を下に(または行を横切って)ドラッグします。また、ダブルクリック自動入力のハンドルを指定することもできます。

    Dragging the box

  4. 記入したい最後のセルに移動します

キーボードを使う

  1. 数式を繰り返すセルにカーソルを移動します。
  2. shiftを保持
  3. 押しながらdownを繰り返し押して、塗りつぶしたいセル範囲の残りを選択します。
  4. 一番下に達したら、shiftを解放してからを押します。 CTRL + D (つかいます CTRL + R を埋めている場合(マウスによる解決策とは異なり、この方法を使用してもメモは保持されます)。

どちらの場合も、あなたがしていることは「充填」と呼ばれます。すべての(?)スプレッドシートプログラムでサポートされています。

88
Geoff

Googleスプレッドシートのさらに簡単な解決策は、次の式をC1に入力することです。

=ARRAYFORMULA(IF(A5:A,A5:A*(1.6*B5:B),""))

値が列Aに入力されると、それは自動的に後続の行に伝播され、それを各行にコピーする必要がなくなります。実際、あなたがそれをC2にコピーした場合、それはC1の式の継続によって自動的に上書きされるでしょう。

重要な部分は、:A:Bです。これらの列全体を式に含めることを指定します。つまり、次のようにして単一セル式=A5*(1.6*B5)を列全体に適用できます。

=ARRAYFORMULA(A5:A*(1.6*B5:B)) 

ABが欠損値である場合、これは悪い結果をもたらすことに注意してください。したがって、値がない場合は何も表示しないようにIF()ステートメントでラップします(上記参照)。悪い結果を処理するために IFERROR() を使うこともできます。

76
ceoliphant

これは別の方法で、先に進んでそこにあるすべての式を削除してから、A1とB1に対応するようにC1に式を入力してEnterを押します。
だから今正しい式はちょうどC1にある、
C1ボックスをクリックすると、バウンディングボックスが表示されます。このバウンディングボックスの右下隅には黒い四角があります。
この四角形をダブルクリックすると、数式が「塗りつぶし」されます
C2はA2とB2に対応しています。
これがあなたが必要とするものであり、私は正しく理解しています

13

提案された答えは小さなシートにはうまくいきますが、私は何千もの行を持っていて、それらを選択するためにマウスやキーボードを使って単純に時間がかかりすぎました。

ARRAYFORMULAメソッドは機能しますが、それは複雑で、式のスタイルを書き換えてエラーの可能性を考慮する必要があります。

解決方法はとても簡単で、2秒で完了します。

  1. 最初のCELLに新しい式を書きます。
  2. セルをクリックし、Ctrl + Cを押す(セルをコピーする)
  3. 列見出し(Aなど)をクリックして列全体を選択します。
  4. Ctrl + V - >セル式を列全体に貼り付ける
  5. 利益
9
John

私はこれらの解決策の全てが非常にイライラし混乱を招くこともわかった。

私はあなたに警告しますが、これは現在セル内にあるものは何でも置き換えますが、これは式なのでこれは問題にならないはずです。

私にとっては簡単でした。

  1. 数式を1回コピーするセルをクリックして選択します。
  2. セルの内容をコピーします(Ctrl+C Windowsでは、 cmd+C macOS上)
  3. ホールド Shift+Ctrl+Down (その行のすべてのセルを選択)
  4. すべてのセルを選択したら、数式を貼り付けます。

これにより、各セルで更新された式が参照に配置されます。

5
Jamie Hutber

Forumlaを作成した後、選択したセルの右下隅にある青いボックスをダブルクリックすると、隣接するセルにデータがある限り、その列の下にデータがコピーされます。

7,000行のシートを使用している場合は、これによって時間を大幅に節約できます。

enter image description here

4
Joshua Dance

P.S私はOpenOfficeで作業しています、そしてそれはセルの内容を単にコピーして他のものに貼り付けることによっても機能することがわかりました。数式は自動的に各行に調整されます。 (自動調整を避けるために、行番号と列番号の名前の前に$を付けてください)。

3
Mihai

ヘッダーを選択して式=A1*(1.6*B1)を貼り付けることで、完全な列Cを選択できます。すべての行に適用されます。

選択してドラッグしてすべてのセルにコピーする必要はありません。

2
palaniraja

Ceoliphantの答えと非常によく似ていますが、もう少し簡単です。C1に式を1つ追加するだけです。

=ARRAYFORMULA(iferror(A:A*B:B*1.6))
2
skube