0

ギャップのある列からギャップのない列に値を入れるにはどうすればよいですか?

前もって感謝します。

入力と必要な出力の例を次に示します。

Index Input Output
  1    10    10
  2          15
  3    15    55
  4          12
  5          27
  6    55
  7    
  8    12
  9    27
4

2 に答える 2

0

インデックスが列 A、入力列 B、出力列 C であると仮定します。次のコードをモジュールに追加します。

Option Explicit

Sub RemoveBlanks()
    Dim i As Integer
    Dim LastRow As Long
    LastRow = Range("B" & ActiveSheet.Rows.Count).End(xlUp).Row

    Range("B2:B" & LastRow).Copy Range("C2")
    ' Start at the bottom of the range and work your way up
    For i = LastRow To 2 Step -1
        If Len(Range("C" & i)) = 0 Then Range("C" & i).Delete shift:=xlUp
    Next
End Sub

配列数式を使用して同じ結果を得ることもできます。

入力範囲 (不要な空白を含む範囲) に名前を付けます。私は nrWithBlanks と呼びました。この数式を出力列のすべての行に貼り付けます。

=IFERROR(INDEX(nrWithBlanks,SMALL((IF(LEN(nrWithBlanks),ROW(INDIRECT("1:"&ROWS(nrWithBlanks))))),ROW(A2)),1),"")

配列数式なので、セルに貼り付けた後、CTRL + SHIFT + ENTER を押す必要があります。

于 2012-05-28T05:33:33.943 に答える
0

データの順序を気にしない場合。範囲を並べ替えて、データから空白を除外できます

于 2012-05-28T06:09:33.300 に答える