Board logo

標題: 資料轉換問題 [打印本頁]

作者: dragonbx    時間: 2014-9-19 11:25     標題: 資料轉換問題

小弟我最近在整理資料遇到要將資料轉換為橫列
然後要將指定級距內的資料放入,我該如何寫函數呢?


ex. 原始data
級距 DATA
100        101.32
110        117.53
110        119.25
110        118.99
130        138.32
130        132.79
130        132.72
160        162.92
160        167.19
180        180.98
190        199.25
20        29.31
20        29.52
240        247.46
240        249.75
240        248.66
240        249.57
240        249.03
250        251.22


2. 要改成橫式的

級距        20        30        40        50        60        70        80        90        100        110        120        130        140        150        160        170        180        190        200        210        220        230        240
DATA
作者: dragonbx    時間: 2014-9-19 11:54

請問用樞紐有辦法做得到嗎??
作者: luhpro    時間: 2014-9-20 11:57

小弟我最近在整理資料遇到要將資料轉換為橫列
然後要將指定級距內的資料放入,我該如何寫函數呢?
ex. ...
dragonbx 發表於 2014-9-19 11:25
  1. Sub nn()
  2.   Dim iCol%
  3.   Dim lRow&
  4.   Dim vD
  5.   Dim rTar As Range
  6.   
  7.   Set vD = CreateObject("Scripting.Dictionary")
  8.   lRow = 2
  9.   Do While Cells(lRow, 1) <> ""
  10.     With Cells(lRow, 1)
  11.       If Not vD.Exists(.Text) Then
  12.         vD(.Text) = .Offset(, 1)
  13.       Else
  14.         vD(.Text) = vD(.Text) & "," & .Offset(, 1)
  15.       End If
  16.     End With
  17.     lRow = lRow + 1
  18.   Loop
  19.   
  20.   iCol = 5
  21.   Do While Cells(1, iCol) <> ""
  22.     With Cells(2, iCol + 1)
  23.       Range(.Offset(, -1), .Offset(20, 26)).Clear
  24.       .Value = vD(.Offset(-1, -1).Text)
  25.       If .Value <> "" Then
  26.         .TextToColumns Comma:=True
  27.         Set rTar = Range(.Offset(0), .Offset(, .Offset(0).End(xlToRight).Column - .Column))
  28.         rTar.Copy
  29.         .Offset(, -1).PasteSpecial Transpose:=True
  30.         rTar.Clear
  31.       End If
  32.     End With
  33.     iCol = iCol + 1
  34.   Loop
  35. End Sub
複製代碼
[attach]19191[/attach]
作者: ML089    時間: 2014-9-21 10:34

回復 1# dragonbx

[attach]19194[/attach]

E2 =IFERROR(SMALL(IF($A$2:$A$20=E$1,$B$2:$B$20),ROW(A1)),"")
陣列公式(CTRL+SHIFT+ENTER三鍵齊按輸入公式)
作者: ML089    時間: 2014-9-21 10:40

回復 1# dragonbx

[attach]19195[/attach]
   
使用IFERROR函數,需EXCEL 2007版以上才能執行




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)