Chuyển đổi dữ liệu có tiêu đề và ngày tháng

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

Vander_Quan

Thành viên mới
Tham gia
3/11/20
Bài viết
22
Được thích
2
Em có đề như sau nhờ các bác giúp em chuyển đổi ạ

- Bảng này là chi tiêu hàng ngày, mỗi ngày mỗi danh mục khác nhau.

1681826845227.png

- Nhờ các bác hướng dẫn e lập công thức để nó tự tổng hợp tất cả mục chi tiêu vô 1 cột như bên dưới và số tiền thì vẫn hiện theo từng ngày.

1681827061532.png

Cảm ơn các bác trước ạ.
 

File đính kèm

  • Book3.xlsx
    11.9 KB · Đọc: 10
Em có đề như sau nhờ các bác giúp em chuyển đổi ạ

- Bảng này là chi tiêu hàng ngày, mỗi ngày mỗi danh mục khác nhau.

View attachment 289180

- Nhờ các bác hướng dẫn e lập công thức để nó tự tổng hợp tất cả mục chi tiêu vô 1 cột như bên dưới và số tiền thì vẫn hiện theo từng ngày.

View attachment 289181

Cảm ơn các bác trước ạ.
nếu chỉ mẫu đơn giản, thì dùng công thức đơn giản, như file đính kèm, nếu cần công thức phức tạp hơn thì comment tiếp. TTr!
 

File đính kèm

  • Book3_congthuc.xlsx
    19 KB · Đọc: 13
Nếu là mình thì bảng dữ liệu phải là vầy:

NgàyChỉ tiêuSố tiền
1/10/2022​
đò
4,000​
1/10/2022​
café
10,000​
1/10/2022​
ăn tối
40,000​
1/10/2022​
card
20,000​
1/10/2022​
Tiền nhà
375,000​
1/11/2022​
ăn sáng
10,000​
1/11/2022​
ăn tối
60,000​
1/11/2022​
thuốc
25,000​
1/11/2022​
trà đường
4,000​
1/13/2022​
ăn tối
40,000​
1/13/2022​
nước cam
12,000​
 
XEM FILE MÌNH LÀM CÔNG THỨC NHÉ
Thay vì dùng công thức (loằng ngoằng, nặng máy, phức tạp) bạn sử dụng tính năng Consolidate của excel để tạo bảng Tổng hợp, Consolidate sẽ rất hiệu quả cho dạng bảng của bạn khỏi cần dùng công thức (loằng ngoằng, nặng máy, phức tạp)
(như bác SA_DQ đã viết, thực tế bạn không nên trình bày theo cách này) :cool:
 

File đính kèm

  • Book3_congthuc.xlsx
    28.3 KB · Đọc: 10
Lần chỉnh sửa cuối:
Em có đề như sau nhờ các bác giúp em chuyển đổi ạ

- Bảng này là chi tiêu hàng ngày, mỗi ngày mỗi danh mục khác nhau.

View attachment 289180

- Nhờ các bác hướng dẫn e lập công thức để nó tự tổng hợp tất cả mục chi tiêu vô 1 cột như bên dưới và số tiền thì vẫn hiện theo từng ngày.

View attachment 289181

Cảm ơn các bác trước ạ.
Em dân Tự động hóa ko phải dân văn phòng, nên e recommend bác xài VBA viết công thức ạ.
1682311748876.png
bác sẽ thêm 2 ô chi tiêu và số tiền , nhập xong sẽ bấm nút , dữ liệu đó nếu cũ trong cột chi tiêu thì sẽ điền số tiền vào cột ngày tương ứng. Còn nếu là mới thì sẽ tự động add thêm 1 dòng chi tiêu mới và điền số tiền vào ngày tương ứng.Nếu hướng dẫn chi tiết cách làm thì sẽ hơi lâu ạ, nếu bác có hứng về cách này thì reply e, có thời gian e sẽ chỉ chi tiết ạ.
Best regrads!
 
Em dân Tự động hóa ko phải dân văn phòng, nên e recommend bác xài VBA viết công thức ạ.
...
bác sẽ thêm 2 ô chi tiêu và số tiền , nhập xong sẽ bấm nút , dữ liệu đó nếu cũ trong cột chi tiêu thì sẽ điền số tiền vào cột ngày tương ứng. Còn nếu là mới thì sẽ tự động add thêm 1 dòng chi tiêu mới và điền số tiền vào ngày tương ứng.Nếu hướng dẫn chi tiết cách làm thì sẽ hơi lâu ạ, nếu bác có hứng về cách này thì reply e, có thời gian e sẽ chỉ chi tiết ạ.
Best regrads!
Khoe nghề "tự động hóa" hay khoe tiếng Tây vậy?
 
Thử bấm nút và kiểm tra kết quả xem đúng không nha!
Mã:
Option Explicit
Sub GPE()
    Dim Dic As Object, Key, Lr&, Lc&, tRes()
    Dim Arr(), j&, i&, Res(), k&, t&, m&
    Set Dic = CreateObject("Scripting.Dictionary")
    With Sheets("Sheet2")
        .Range("A19:AA100").ClearContents
        Lc = .Cells(1, Columns.Count).End(xlToLeft).Column
        Lr = .Range(.Cells(1, 1), .Cells(100000, Lc)).Find("*", _
        SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        Arr = .Range(.Cells(1, 1), .Cells(Lr, Lc)).Value
        ReDim Res(1 To 10000, 1 To Lc)
        ReDim tRes(1 To 1, 1 To Lc)
        For j = 1 To UBound(Arr, 2) Step 2
            For i = 2 To UBound(Arr)
                If Arr(i, j) <> "" Then
                    Key = Arr(i, j)
                    If Not Dic.exists(Key) Then
                        m = m + 1
                        Dic.Add (Key), m
                    End If
                End If
            Next i
        Next j
        For j = 2 To UBound(Arr, 2) Step 2
            t = t + 1: tRes(1, t) = Arr(1, j)
            For i = 2 To UBound(Arr)
                For Each Key In Dic.keys
                    If Arr(i, j - 1) = Key Then
                        m = Dic.Item(Key)
                        Res(m, 1) = Key
                        Res(m, t + 1) = Arr(i, j)
                    End If
                Next Key
            Next i
        Next j
        .Range("B19").Resize(1, t).Value = tRes
        .Range("A20").Resize(m, t + 1).Value = Res
    End With
    Set Dic = Nothing
    MsgBox "Done"
End Sub
 

File đính kèm

  • Chi_tieu.xlsb
    19.4 KB · Đọc: 2
Web KT
Back
Top Bottom