Board logo

標題: 抓取特定儲存格的資料? [打印本頁]

作者: q1a2z5    時間: 2020-12-17 16:37     標題: 抓取特定儲存格的資料?

問題如附件,謝謝!
作者: 准提部林    時間: 2020-12-18 19:08

[attach]32832[/attach]
作者: q1a2z5    時間: 2020-12-21 10:13

不好意思,問題不是很清楚,各位大大看的一頭霧水,
這個表格是從網路系統中匯出的EXCEL表格,有一些儲存格則沒有資料,
問題已重新整理,問題如附件。謝謝!
作者: 准提部林    時間: 2020-12-21 20:20

不知資料有多少, 先用公式頂一頂:
都是陣列公式(三鍵輸入)
M3:下拉
=INDEX(A:A,SMALL(IF(A$1:A$40="名稱",ROW($1:$40)+1,4^8),ROW(A1)))&""

N3:右拉一格//下拉
=TEXT(INDEX($G:$G,SMALL(IF($G$1:$G$40="登入日期,時間",ROW($1:$40)+COLUMN(A$1),4^8),ROW(A1)))&"",IF(COLUMN(A$1)=1,"yyyy-mm-dd","hh:mm"))

P3:右拉一格//下拉
=TEXT(INDEX($H:$H,SMALL(IF($H$1:$H$40="登入日期,時間",ROW($1:$40)+COLUMN(A$1),4^8),ROW(A1)))&"",IF(COLUMN(A$1)=1,"yyyy-mm-dd","hh:mm"))
作者: 准提部林    時間: 2020-12-21 20:32

Sub TEST()
Dim Arr, Brr, i&, N&
Arr = Intersect(Sheet1.UsedRange, Sheet1.[A:H])
ReDim Brr(1 To UBound(Arr), 1 To 5)
For i = 1 To UBound(Arr)
    If Arr(i, 1) = "名稱" Then
       N = N + 1
       Brr(N, 1) = Arr(i + 1, 1)
       Brr(N, 2) = Format(Arr(i + 4, 7), "yyyy-mm-dd")
       Brr(N, 3) = Format(Arr(i + 5, 7), "hh:mm")
       Brr(N, 4) = Format(Arr(i + 4, 8), "yyyy-mm-dd")
       Brr(N, 5) = Format(Arr(i + 5, 8), "hh:mm")
    End If
Next i
Sheet1.[M3:Q2000].ClearContents
With Sheet1.[M3].Resize(N, 5)
     .NumberFormatLocal = "@"
     .Value = Brr
End With
End Sub
作者: q1a2z5    時間: 2021-1-4 11:37

那如果要抓取固定儲存格資料時,公式如何設定?
要抓取的儲存格資料都是固定。
例如:抓取A1,A9,A17及G5,G6;G21,G22;H5,H6,H21,H22,依此類推。
3Q
作者: 准提部林    時間: 2021-1-4 14:30

回復 6# q1a2z5

應該是 A2吧???
抓A欄
=INDEX(A:A,ROW(A1)*8-6)&""

抓G欄/日期:
=TEXT(INDEX(G:G,ROW(A1)*8-3),"yyyy-mm-dd;;;")

抓G欄/時間:
=TEXT(INDEX(G:G,ROW(A1)*8-2),"hh-mm;;;")

H欄依樣改改




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