web-dev-qa-db-ja.com

セルをドラッグしたり選択したりせずに、Microsoft Excelで大きなシリーズ(10,000行を超える)を埋めるにはどうすればよいですか?

10,000行を超えるデータがあり、データの1つの列に対していくつかの計算を行う必要があります。 1つのセルで計算を実行しましたが、計算とすべてのセルの数式を入力する必要があります。

通常、私はキーボードを使用してセルを選択し、次に Ctrl+D セルを埋めるために。ただし、これを繰り返し行う必要があり、ファイルごとに5000行を選択し続けることは困難です。キーボードを使用して範囲を指定する簡単な方法はありますか?すべてのファイルの長さが固定されているため、おそらくマクロもあります

また、医学的な理由でマウスを使用するのが難しいため、テストしていません この特定の解決策 非常に小さな塗りつぶしハンドルをクリックする必要があります。たぶん、キーボードを使用してこれに対する並列の解決策があるか、または選択したセルのフィルハンドルをクリックして自動的にクリックするマクロを作成できます。方法がある場合はアドバイスしてください。

3
Ramana

データが列Aにあり、数式が列Bにあると仮定します。

  1. 数式をB1に入力します
  2. セルをコピーするB1
  3. 矢印キーを使用して、列Aの任意のセルに移動します
  4. 押す Ctrl+Arrow Down
  5. 押す Arrow Right (列Bの下部にある空のセルにいるはずです)
  6. 押す Ctrl+Shift+Arrow Up
  7. 貼り付け(Ctrl+V
4

重複:

ただし、すべてのセルに数式を入力する必要はありません。複数結果配列数式を使用する方が良いでしょう。通常のように数式を入力しますが、セルを範囲に置き換えます(たとえば、B1B1:B10000に置き換えます。これはやや単純化しすぎていますが、これはアイデアであり、ほとんどの単純なケースで機能します。詳細については、以下をお読みください)。次にを押します Ctrl+Shift+Enter。数式はテーブル内のすべてのセルにすぐに適用され、キーストロークはほとんど必要ありません。

更新:

新しいExcelバージョンでは、配列数式を自動的に使用して、新しいデータ行がある場合に入力するため、手動で行う必要はありません。

2018年9月のOffice365の更新以降、複数の結果を返すことができる数式は、それらを自動的に下に、または隣接するセルに波及させます。この動作の変更には、いくつかの新しい動的配列関数も伴います。動的配列数式は、既存の関数を使用しているか動的配列関数を使用しているかに関係なく、単一のセルに入力するだけで、Enterキーを押して確認できます。以前のレガシー配列数式では、最初に出力範囲全体を選択してから、次の式で数式を確認する必要があります。 Ctrl+Shift+Enter。これらは一般にCSE式と呼ばれます。

配列数式のガイドラインと例

配列数式には多くの利点があります。

配列数式を使用する理由

Excelで数式を使用した経験がある場合は、かなり高度な操作を実行できることをご存知でしょう。たとえば、特定の年数にわたるローンの総コストを計算できます。配列数式を使用して、次のような複雑なタスクを実行できます。

  • セルの範囲に含まれる文字の数を数えます。
  • 範囲内の最小値や上限と下限の間にある数値など、特定の条件を満たす数値のみを合計します。
  • 値の範囲内のn番目ごとの値を合計します。

配列数式には、次の利点もあります。

  • 一貫性:E2から下のセルのいずれかをクリックすると、同じ数式が表示されます。その一貫性は、より高い精度を保証するのに役立ちます。
  • 安全性:マルチセル配列数式のコンポーネントを上書きすることはできません。たとえば、セルE3をクリックし、Deleteキーを押します。セルの範囲全体(E2からE11)を選択して配列全体の数式を変更するか、配列をそのままにしておく必要があります。追加の安全対策として、を押す必要があります Ctrl+Shift+Enter 数式への変更を確認します。
  • 小さいファイルサイズ:多くの場合、複数の中間式ではなく、単一の配列式を使用できます。たとえば、ワークブックは1つの配列数式を使用して列Eの結果を計算します。標準の数式(= C2 * D2、C3 * D3、C4 * D4…など)を使用した場合、11の異なる数式を使用して計算します。同じ結果。

配列数式のガイドラインと例

配列式もアクセスパターンが既知であるため、高速です。これで、11の異なる計算を個別に実行する代わりに、CPUの複数のコアとSIMDユニットを利用して、それらをベクトル化して並列に実行できます。


たとえば、列DのセルにBとCのセルの積を含め、列EにBとCの合計を含める場合、D1 = B1*C1E1 = B1 + C1を使用せずに下にドラッグするだけです。それぞれD1とE1の以下の式を押して、 Ctrl+Shift+Enter

=B:B*C:C
=B:B + C:C

Googleスプレッドシートでは、Excelのようなショートカットの代わりに ARRAYFORMULA function を使用する必要があります

=ARRAYFORMULA(B:B*C:C)
=ARRAYFORMULA(B:B + C:C)

その後、数式は自動的に列全体に適用されます何もドラッグしません。 X:Xは列Xを参照します。行3から最後までのみ含める場合は、X3:Xを使用します。または、X3からX10003までのセルのみの結果を計算する場合は、X3:X10003を使用します。同じ構文を行に使用できます。つまり、行1に1:1を使用できます。これは、各列の積を計算するExcelのドキュメントの別の例です。

Multi-result array formula

配列数式は非常に強力なツールです。ただし、注意して使用してください。編集する必要があるたびに、押すことを忘れないでください Ctrl+Shift+Enter

詳細については、 配列数式の作成 を参照してください。も参照してください

それでも本当に通常の数式を使用したい場合は、 Ctrl+Enter の代わりに Ctrl+Shift+Enter。選択範囲のすべてのセルに数式を入力し、必要に応じてセル参照を変更します

5
phuclv

押す Alt+F11 VBA画面を開きます。このコードは数式をコピーし、範囲を正しいセルに変更するだけです。

Range("B1:B10000").FillDown

編集。または、VBAで数式を追加する

ActiveSheet.Range("B1:B10000").formula = "=A2+2"
1
M.Johnson