Excel で以前の値に基づいて列全体 (一貫性なし) を完了するにはどうすればよいですか?

Excel で以前の値に基づいて列全体 (一貫性なし) を完了するにはどうすればよいですか?

たとえば、次のような値があるとします。

A2=a, A5=b, A6=c, A10=d

基本的に、次のように以前の値を完全に削除したいと思います。

A2:A4=a,A5=b, A6:A9=c,A10:A99999=d

私はこれを試しました: 右側に新しい列を挿入し、次のようなことをしました:=IF(A2="",A1,A2)しかし、これは B 列の最初の 2 つのインスタンスに対してのみ機能します。これは、ギャップがさらに多く、ギャップの数が常に同じではないためです。明らかに何かが欠けています。

ありがとう。

答え1

これには VBA は必要ありません。独自の数式でほぼ実現できます。A1 の代わりに B1 を使用するだけです。つまり、B2 には次の内容が含まれます。

=IF(A2="",B1,A2)

スクリーンショット

答え2

次の短いマクロを試してください:

Sub FillDown()
   Dim rng As Range, r As Range
   Set rng = Range("A2:A99999")

   Application.ScreenUpdating = False
      For Each r In rng
         v = r.Value
         If v = "" Then r.Value = r.Offset(-1, 0)
      Next r
   Application.ScreenUpdating = True
End Sub

マクロのインストールと使用は非常に簡単です。

  1. ALT-F11でVBEウィンドウが開きます
  2. ALT-I ALT-Mで新しいモジュールを開く
  3. 内容を貼り付けてVBEウィンドウを閉じます

ワークブックを保存すると、マクロも一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。

マクロを削除するには:

  1. 上記のようにVBEウィンドウを開きます
  2. コードを消去する
  3. VBEウィンドウを閉じる

Excel からマクロを使用するには:

  1. ALT+F8 キー
  2. マクロを選択
  3. タッチRUN

マクロ全般の詳細については、以下を参照してください。

http://www.mvps.org/dmcritchie/excel/getstarted.htm

そして

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

これを機能させるにはマクロを有効にする必要があります。

関連情報