ギャップのある列からギャップのない列に値を入れるにはどうすればよいですか?
前もって感謝します。
入力と必要な出力の例を次に示します。
Index Input Output
1 10 10
2 15
3 15 55
4 12
5 27
6 55
7
8 12
9 27
ギャップのある列からギャップのない列に値を入れるにはどうすればよいですか?
前もって感謝します。
入力と必要な出力の例を次に示します。
Index Input Output
1 10 10
2 15
3 15 55
4 12
5 27
6 55
7
8 12
9 27
インデックスが列 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 を押す必要があります。
データの順序を気にしない場合。範囲を並べ替えて、データから空白を除外できます