nhờ giúp đỡ xử lý dữ liệu để làm luận văn

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Humant2o

Thành viên mới
Tham gia
13/11/22
Bài viết
16
Được thích
0
Dạ em xin chào mn, em có đính kièm file data nhờ mn giúp. Em đã xử lý được 1 phần, hiện em đang bị kẹt ở việc lấy dữ liệu từ các sheet khác đưa về sheet tổng, tại cell H2 em có dùng công thức này
Mã:
=IF(ISERROR(VLOOKUP($D2,sales_2021_W02!$D:$G,4,FALSE)),0,VLOOKUP($D2,sales_2021_W02!$D:$G,4,FALSE))
em muốn áp dụng nó cho các ô tiếp theo cho tới cột CS, nhảy số tự động ở chỗ "sales_202x_Wxx" để nó chạy từ 2021_W02 (cột H) đến 2022_W39 (cột CS). ví dụ H2 là "sales_2021_W02", I2 là "sales_2021_W03", J2 là "sales_2021_W04", K2 là "sales_2021_W05" ... đến CS2 là "sales_2022_W39"
xin cảm ơn mn đã đọc, mong dc mn giúp đỡ ạ.
 

File đính kèm

Dạ em xin chào mn, em có đính kièm file data nhờ mn giúp. Em đã xử lý được 1 phần, hiện
xin cảm ơn mn đã đọc, mong dc mn giúp đỡ ạ.
Hãy sửa các từ viết tắt đi.
Mô tả rõ ràng 1 chút. Tự động là thế nào thì thế nào cũng có người giúp
 
@Chủ bài đăng: Mình thấy trong file có vài những macro;
Sao bạn không tiếp tục ý tưởng xài macro cho các trường hợp chuyển dữ liệu các trang về trang 'Tổng' (e rằng xài công thức sẽ khó hơn (?!?)
 
Hãy sửa các từ viết tắt đi.
Mô tả rõ ràng 1 chút. Tự động là thế nào thì thế nào cũng có người giúp
Ngoài cái vụ viết tắt ra, tôi không thích những trò láu cá như tiêu đề bài này.
Giả vờ dùng cụm từ "làm luận văn" để câu trí tò mò từ mọi người.
 
Lần chỉnh sửa cuối:
Giả vờ dùng cụm từ "làm luận văn" để cấu trí tò mò từ mọi người.
Cháu thì thấy từ luận văn nó không có liên quan tới vấn đề nhờ lắm. Nhưng thôi kệ. Chỉ thấy viết tắt là muốn nhắc thớt thôi
 
Cháu thì thấy từ luận văn nó không có liên quan tới vấn đề nhờ lắm. Nhưng thôi kệ. Chỉ thấy viết tắt là muốn nhắc thớt thôi
Ở bài bên kia thì bảo dùng code vba, còn sang bên này thì lại bảo dùng công thức, không biết đường nào mà lần.
 
mọi người nói thế oan cho em quá, thật sự thì data này em dùng để làm luận văn cho kì sau.
tất nhiên là em đang muốn nhờ mọi người giúp đỡ về VBA, việc gom dữ liệu ko trùng cho bài post lần trước đã xong, hiện tới bước tiếp theo thì nó khác một chút, đó là em đang muốn từ sheet sales_2021_W02 lấy cột net_quantity đưa về sheet tổng, tương tự sheet sales_2021_W03, rồi 04 05 06 07 tới sheet sales_2022_W39. em muốn gom để có 1 bộ dữ liệu liên tục rồi trực quan hóa lên vì mục tiêu làm luận văn của em là dự báo, cần dùng dữ liệu quá khứ.
em có dùng công thức như trên để lấy được rồi, nhưng áp dụng nó cho từng cột tiếp theo làm tay nó có rất nhiều cột và dễ lộn, em có thử làm như này nhưng VBA chạy báo lỗi chỗ hàng 13, em ko rành về VBA lắm nên thật sự ko biết sửa làm sao
Mã:
Sub data()

Dim n As Integer
Dim i As Integer

'Xác dinh cot du lieu cuoi cung
n = 7
Do While Cells(2, n + 1) <> 0
n = n + 1
Loop
For i = 7 To n - 1
Cells(2, i + 1).Formula = _
        "=IF(ISERROR(VLOOKUP(RC4,sales_2021_W" + i + 1 + "!C4:C7,4,FALSE)),0,VLOOKUP(RC4,sales_2021_W" + i + 1 + "!C4:C7,4,FALSE))"
        i = i + 1
Next

End Sub
 
Nhận xét đầu tiên là tên trang tính quá dài; & do vậy mà sẽ hao tốn điện, bàn fím, thời gian . . . khi thao tác với file
Nếu là mình thì tên chỉ là "S21W35", thậm chí có thể bỏ đi kí tự 'S' trong chuỗi kí tự mình đã dẫn.

Nếu bạn, thay vì dẫn ra công thức (mà bạn nêu ờ #1) ta ghi thành lời tiếng Việt thì mình sẽ cảm ơn nhiều!
 
mọi người nói thế oan cho em quá, thật sự thì data này em dùng để làm luận văn cho kì sau.
tất nhiên là em đang muốn nhờ mọi người giúp đỡ về VBA, việc gom dữ liệu ko trùng cho bài post lần trước đã xong, hiện tới bước tiếp theo thì nó khác một chút, đó là em đang muốn từ sheet sales_2021_W02 lấy cột net_quantity đưa về sheet tổng, tương tự sheet sales_2021_W03, rồi 04 05 06 07 tới sheet sales_2022_W39. em muốn gom để có 1 bộ dữ liệu liên tục rồi trực quan hóa lên vì mục tiêu làm luận văn của em là dự báo, cần dùng dữ liệu quá khứ.
em có dùng công thức như trên để lấy được rồi, nhưng áp dụng nó cho từng cột tiếp theo làm tay nó có rất nhiều cột và dễ lộn, em có thử làm như này nhưng VBA chạy báo lỗi chỗ hàng 13, em ko rành về VBA lắm nên thật sự ko biết sửa làm sao
Mã:
Sub data()

Dim n As Integer
Dim i As Integer

'Xác dinh cot du lieu cuoi cung
n = 7
Do While Cells(2, n + 1) <> 0
n = n + 1
Loop
For i = 7 To n - 1
Cells(2, i + 1).Formula = _
        "=IF(ISERROR(VLOOKUP(RC4,sales_2021_W" + i + 1 + "!C4:C7,4,FALSE)),0,VLOOKUP(RC4,sales_2021_W" + i + 1 + "!C4:C7,4,FALSE))"
        i = i + 1
Next

End Sub
sửa chỗ i + 1 lại bạn , nối chuỗi dùng &
1672361619304.png
trước khi set công thức dùng Debug.Print để xem kết quả ở console log thử có đúng ý mình chưa
Mã:
Debug.Print ("=IF(ISERROR(VLOOKUP(RC4,sales_2021_W" & CStr(i + 1) & "!C4:C7,4,FALSE)),0,VLOOKUP(RC4,sales_2021_W" & CStr(i + 1) & "!C4:C7,4,FALSE))")
Ctrl + G nếu cửa sổ Immediate không hiện
1672361838860.png
 
Luận văn thì nên tự làm, không thế hệ sau, luận văn sau ... lại nhờ
Nếu có hỏi thì phải tự làm, sai đâu nhờ mọi người ý kiến
Làm luận văn thì càng phải chú ý đến văn, đến quy định viết văn, viết tắt ...
 
sửa chỗ i + 1 lại bạn , nối chuỗi dùng &
View attachment 285235
trước khi set công thức dùng Debug.Print để xem kết quả ở console log thử có đúng ý mình chưa
Mã:
Debug.Print ("=IF(ISERROR(VLOOKUP(RC4,sales_2021_W" & CStr(i + 1) & "!C4:C7,4,FALSE)),0,VLOOKUP(RC4,sales_2021_W" & CStr(i + 1) & "!C4:C7,4,FALSE))")
Ctrl + G nếu cửa sổ Immediate không hiện
View attachment 285238
dạ em cảm ơn anh, em có chỉnh lại xíu và nó ra gần đúng ý em muốn luôn rồi ạ chỉ có chỗ này em đang hơi vướng, liệu mình có thể làm cho chỗ i nó hiện 2 chữ số mà ko phải thêm trc 1 số 0 chỗ string dc ko anh, như 1 thành 01, 2 thành 02, 3 thành 03, nhưng 10 vẫn là 10, 11 là 11, 52 vẫn là 52 ấy ạ
 
Nghe thấy chữ luận văn cứ thấy sờ sợ.
Em hỏi ngu tí, có phải là chuẩn bị trở thành tiến sĩ không anh chị?
 
dạ em cảm ơn anh, em có chỉnh lại xíu và nó ra gần đúng ý em muốn luôn rồi ạ chỉ có chỗ này em đang hơi vướng, liệu mình có thể làm cho chỗ i nó hiện 2 chữ số mà ko phải thêm trc 1 số 0 chỗ string dc ko anh, như 1 thành 01, 2 thành 02, 3 thành 03, nhưng 10 vẫn là 10, 11 là 11, 52 vẫn là 52 ấy ạ
thêm hàm
Mã:
Function padZero(num As Integer, numDigits As Integer) As String
    padZero = Right("0000" & num, numDigits)
End Function

sau đó chuyển : CStr(i + 1) thành padZero(i + 1, 2)
 
Web KT

Bài viết mới nhất

Back
Top Bottom