返回列表 上一主題 發帖

[發問] 如何在特定位置自動加一?

[發問] 如何在特定位置自動加一?

本帖最後由 yozcbm 於 2012-6-2 03:21 編輯

例如我有一堆員工資料,假設我想在"姓名"左邊加上順序編號
e.g.
姓名xxxxxxxxxxxxx
xxxxxxxxxxxxxxx
姓名xxxxxxxx
xxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxx
姓名xxxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxx
加編號後變成:
1姓名xxxxxxxxxxxxx
xxxxxxxxxxxxxxx
2姓名xxxxxxxx
xxxxxxxx
xxxxxxxxxxxxx
xxxxxxxxxxxx
3姓名xxxxxxxxxxxx
xxxxxxxxxxx
xxxxxxxxx
.
.
.
p.s.每個姓名中間之行數並不相同,,

我剛學識了if function,,
eg.=IF(B1="姓名",1,"")
如果這樣再向下拉的話只能每個姓名旁邊出現"1"
而我問題是如何多一個"姓名"出現就加一?
thx so much~

另外一個問題是,如果excel內有很多行數的資料,而我要copy (let say 5000直行,要包括整橫行,不是A1:A5000),,怎樣才能比較快捷的向下copy? (只用向下拉的方法每次copy都很慢><)

回復 1# yozcbm
上傳你的檔案看看

TOP

sample1.rar (14.37 KB)

uploaded~thx~

TOP

=IF(B4="姓名",COUNTIF(B$4:B4,"姓名"),"")

TOP

回復 3# yozcbm
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar, xi As Integer, E As Range
  4.     With ActiveSheet.Range("b:b")   ' ActiveSheet  可改成->Sheets("SHEET1")
  5.         Ar = .Value
  6.         .Cells.Replace "姓名", "=1/0", xlWhole
  7.         .SpecialCells(xlCellTypeFormulas, xlErrors).Name = "姓名"
  8.          .Value = Ar
  9.         xi = 1
  10.         For Each E In [姓名]
  11.             E.Offset(, -1) = xi
  12.             xi = xi + 1
  13.         Next
  14.         ActiveWorkbook.Names("姓名").Delete
  15.     End With
  16. End Sub
複製代碼

TOP

回復 3# yozcbm
  1. Sub XX()
  2. C = 0
  3. With Sheets("Sheet1").[B:B]
  4.   Set Rng = .Find("姓名", , , xlWhole)
  5.   If Not Rng Is Nothing Then
  6.     Findaddress = Rng.Address
  7.     Do
  8.       C = C + 1
  9.       Rng.Offset(, -1) = C
  10.       Set Rng = .FindNext(Rng)
  11.     Loop While Not Rng Is Nothing And Rng.Address <> Findaddress
  12.   End If
  13. End With
  14. End Sub
複製代碼

TOP

回復 3# yozcbm
  1. Sub ex()
  2. With Range([A1], Cells(Rows.Count, 2).End(xlUp).Offset(, -1))
  3. .FormulaR1C1 = "=IF(RC[1]=""姓名"",COUNTIF(R1C2:RC2,""姓名""),"""")"
  4. .Value = .Value
  5. End With
  6. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題