我希望有多个城市号码和给定数据中提供的块数量。这是我所看到的图像以及我需要它的外观。 image of what would be needed done
在A栏中您看到41288,在B栏中您看到整数值为4
在空列中可以说C,D,E,F,G,H .....我希望它在单元格之间分隔,如E和F列所示。
所以,我相信问题是我如何在(A)中的整数和数字之间分开?
我知道必须有一个公式。但是,不知道在谷歌上要求什么可以让你无处可去。
答案 0 :(得分:0)
这不完全是您想要的格式,但我认为这与公式一样接近。
将其放入C2:
=IF(B2="","",IF(B2=1,"",B2-1))
向下自动填充C2,然后将整个列自动填充到右侧。
然后您将拥有:
41288|4|3|2|1
然后您可以复制和转置以获得以下格式
|41288|41289|41290|
| 4 | 5 | 6 |
| 3 | 4 | 5 |
| 2 | 3 | 4 |
| 1 | 2 | 3 |
| | 1 | 2 |
| | | 1 |
HTH
编辑:
请注意,即使最后的单元格看起来是空的,如果你自动填充“太远”,那里仍然存在公式。如果您希望单元格完全为空,则可以先复制并粘贴仅使用值,然后稍后进行转置。
答案 1 :(得分:0)
VBA答案(以您所使用的确切格式为您提供)如下:
[Sheet1$B2:F6]
鉴于评论中修改后的要求,答案现在是:
Sub DigitBlocks()
Dim rng As Range, a As Double, b As Double, c As Double, d As Double, e As Double
Set rng = ActiveSheet.Range("A2").CurrentRegion
a = Val(Right(Left(rng.Address, InStr(rng.Address, ":") - 1), Len(Left(rng.Address, InStr(rng.Address, ":") - 1)) - InStrRev(Left(rng.Address, InStr(rng.Address, ":") - 1), "$"))) + 1
b = 3
For d = a To rng.Rows.Count
Range("E" & b).Value = Range("A" & d).Value
e = Range("B" & d).Value
For c = 1 To e
Range("F" & b + c - 1).Value = c
Next c
b = b + c
Next d
End Sub