返回列表 上一主題 發帖

[發問] 橫式資料轉換為直式資料

[發問] 橫式資料轉換為直式資料

本帖最後由 aer 於 2016-7-24 07:47 編輯

[請問公式如何寫,才能將sheet1(上圖示) 的橫式資料,轉換為sheet2(下圖示) 的直式資料?謝謝!

[

報名轉檔.zip (11.08 KB)

A2.陣列公式:〔Shift + Ctrl → Enter〕三鍵
=TRIM(MID(SUBSTITUTE(INDIRECT("Sheet1!"&TEXT(SMALL(IF(Sheet1!$B$2:$M$64="",4^8,ROW($2:$64))*100+COLUMN($B:$M)^(COLUMN(A$1)>1),ROW(A1)),"!r0c00"),)&"","梯","梯"&REPT(" ",99)),99^(COLUMN(A$1)>2),99))
1

評分人數

    • ML089: 巧妙 +COLUMN($B:$M)^(COLUMN(A$1)>1)金錢 + 2

TOP

http://blog.xuite.net/hcm19522/twblog/435047307

TOP

回復 2# 准提部林
謝謝版主!公式測試沒問題。
不過,是否可解釋一下公式意思?感謝您!

TOP

回復 3# hcm19522
謝謝您的回覆!

TOP

回復 4# aer


這公式不好解釋, 將公式分段, 請試著自行去理解:
Xl0000011.rar (62.92 KB)

TOP

回復 6# 准提部林
"准大" 巧妙安排程式 可懂不易寫
想請教,"!r0c00"),)&"" ,此段加 &"" 何意

TOP

回復 7# hcm19522


避空格出現0, 將其去掉可見分明!

這種公式慢, 資料多, 最好用VBA

TOP

回復  hcm19522


避空格出現0, 將其去掉可見分明!

這種公式慢, 資料多, 最好用VBA
准提部林 發表於 2016-7-25 12:40


也請您賜教VBA 程式,因資料將近有1000筆,無限感激!

TOP

回復 9# aer


程式碼很簡單, 多看幾次應可以理解:
  1. Sub TEST()
  2. Dim Arr, Brr, i&, j%, T, N&
  3. With Sheets("Sheet1").UsedRange
  4.      Arr = .Value
  5.      ReDim Brr(1 To .Count, 1 To 3)
  6. End With

  7. For i = 2 To UBound(Arr)
  8. For j = 2 To UBound(Arr, 2)
  9.     If Arr(i, j) <> "" Then
  10.        N = N + 1: T = Split(Trim(Arr(i, j)), "梯")
  11.        Brr(N, 1) = Arr(i, 1)
  12.        Brr(N, 2) = T(0) & "梯"
  13.        Brr(N, 3) = T(1)
  14.     End If
  15. Next j
  16. Next i

  17. With Sheets("Sheet2")
  18.      .UsedRange.Clear
  19.      If N = 0 Then Exit Sub
  20.      .[A1:C1] = Array("姓名", "梯次", "日期")
  21.      .[A2:C2].Resize(N) = Brr
  22.      Application.Goto .[A1]
  23. End With
  24. End Sub
複製代碼

TOP

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題