Mọi người hỗ trợ em bài toán thu gọn công thức không qua bảng trung gian (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

AnhPhong411

Thành viên thường trực
Tham gia
29/7/15
Bài viết
343
Được thích
84
Nghề nghiệp
Nhân viên kinh doanh các phần mềm doanh nghiệp và
Hiện tại em đang có 1 bài toán như file đính kèm. Em đã thử nhiều cách mà chưa có hướng giải quyết. Mong được mọi người giúp đỡ ạ. Trong file em có mô tả đầy đủ về bài toán rồi ạ. Nếu còn vấn đề nào không rõ có thể cmt em sẽ giải thích rõ hơn. Mong được giúp đỡ.:)
sr mn : pass là 789.

Mô tả bài toán.
+ Bảng dữ liệu là dữ liệu đầu vào
+ Bảng điều kiện là điều kiện dùng để tìm kiếm
+ Dòng điều kiện tính tổng là dòng dùng đêt tính tổng trong ô màu xanh lá cây
+ Những dòng đầu có chung 1 màu xanh da trời là dòng mặc định. K cần dùng công thức
+ Ở đây en có làm 2 bảng dữ liệu bàng hàm vlookup và index để ra dữ liệu như 2 bảng màu xanh da trời
Giờ em cần nhờ anh chị giúp em, tính tổng trong ô màu xanh lá cây mà k qua bước trung gian ở một trong
hai bảng xanh da trời ạ (2 bảng này là 1 nhưng dùng 2 công thúc khác nhau ạ)
Mong mọi người hỗ trợ em ạ. Thank !
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
chú Phong cố tình chơi khăm à, attach file kèm event password nữa hả?
 
Hiện tại em đang có 1 bài toán như file đính kèm. Em đã thử nhiều cách mà chưa có hướng giải quyết. Mong được mọi người giúp đỡ ạ. Trong file em có mô tả đầy đủ về bài toán rồi ạ. Nếu còn vấn đề nào không rõ có thể cmt em sẽ giải thích rõ hơn. Mong được giúp đỡ.:)
Bạn gửi file kèm theo pass thì giúp bằng niềm tin à.
 
Hiện tại em đang có 1 bài toán như file đính kèm. Em đã thử nhiều cách mà chưa có hướng giải quyết. Mong được mọi người giúp đỡ ạ. Trong file em có mô tả đầy đủ về bài toán rồi ạ. Nếu còn vấn đề nào không rõ có thể cmt em sẽ giải thích rõ hơn. Mong được giúp đỡ.:)
sr mn : pass là 789.


Cái này dùng sumproduct chắc là được.
Có lẽ chỉ cần giải thích ngắn gọn là tính tổng của cái gì chứ nhìn nhiều bảng quá không hiểu được
 
Cái này dùng sumproduct chắc là được.
Có lẽ chỉ cần giải thích ngắn gọn là tính tổng của cái gì chứ nhìn nhiều bảng quá không hiểu được
Có hàm tổng trong ô màu xanh lá cây rồi anh ạ. Đó là dùng bước trung gian đó anh. Em cần tính tổng lại không qua bước trung gian ở ô màu xanh da trời ạ
 
Có hàm tổng trong ô màu xanh lá cây rồi anh ạ. Đó là dùng bước trung gian đó anh. Em cần tính tổng lại không qua bước trung gian ở ô màu xanh da trời ạ

Công thức từ E17:K24 có lẽ cần phải kiểm tra lại ( vùng tính không được cố định )
Bài của bạn mà dùng công thức thì chắc chờ thành viên khác trên diễn đàn sẽ hỗ trợ

Viết tạm đoạn code gửi bạn
kết quả tính dán vào sheet1
Nhấn alt+F8, chạy sub TTT

Mã:
Public Sub TTT()
Dim Nguon, DK1(), DK2(), Tam(), kq(), r As Long, c As Long, cl As Long

With Sheet1
Nguon = .Range("E3:R11")
Tam = .Range("A17:C24")
DK2 = .Range("E15:K15")
End With
ReDim kq(1 To UBound(Tam), 1 To UBound(DK2, 2)), DK1(1 To UBound(Tam))

For r = 1 To UBound(Tam)
For c = 1 To UBound(Tam, 2)
DK1(r) = DK1(r) & " " & Tam(r, c)
Next c
Next r

Tam = Sheet1.Range("E3:R11")

For c = 1 To UBound(Tam, 2)
For r = 2 To UBound(Tam)
If InStr(DK1(r - 1), Mid(Tam(r - 1, c), 2, 2)) Then
Tam(r, c) = Nguon(1, c)
Else
Tam(r, c) = Nguon(Left(Tam(r - 1, c), 1) + 1, c)
End If
Next r
Next c

For c = 1 To UBound(kq, 2)
For r = 1 To UBound(kq)
For cl = 1 To UBound(Tam, 2)
If InStr(Tam(r + 1, cl), DK2(1, c)) Then
kq(r, c) = kq(r, c) + Val(Right(Tam(r + 1, cl), 2))
End If
Next cl
Next r
Next c

Sheet2.UsedRange.Clear
Sheet2.Range("A1").Resize(UBound(kq), UBound(kq, 2)) = kq
End Sub

Hy vọng là đúng ý
---
Quên lưu chưa bỏ pass
Vẫn "789" của bạn
 

File đính kèm

Lần chỉnh sửa cuối:
Công thức từ E17:K24 có lẽ cần phải kiểm tra lại ( vùng tính không được cố định )
Bài của bạn mà dùng công thức thì chắc chờ thành viên khác trên diễn đàn sẽ hỗ trợ

Viết tạm đoạn code gửi bạn
kết quả tính dán vào sheet1
Nhấn alt+F8, chạy sub TTT

Mã:
Public Sub TTT()
Dim Nguon, DK1(), DK2(), Tam(), kq(), r As Long, c As Long, cl As Long

With Sheet1
Nguon = .Range("E3:R11")
Tam = .Range("A17:C24")
DK2 = .Range("E15:K15")
End With
ReDim kq(1 To UBound(Tam), 1 To UBound(DK2, 2)), DK1(1 To UBound(Tam))

For r = 1 To UBound(Tam)
For c = 1 To UBound(Tam, 2)
DK1(r) = DK1(r) & " " & Tam(r, c)
Next c
Next r

Tam = Sheet1.Range("E3:R11")

For c = 1 To UBound(Tam, 2)
For r = 2 To UBound(Tam)
If InStr(DK1(r - 1), Mid(Tam(r - 1, c), 2, 2)) Then
Tam(r, c) = Nguon(1, c)
Else
Tam(r, c) = Nguon(Left(Tam(r - 1, c), 1) + 1, c)
End If
Next r
Next c

For c = 1 To UBound(kq, 2)
For r = 1 To UBound(kq)
For cl = 1 To UBound(Tam, 2)
If InStr(Tam(r + 1, cl), DK2(1, c)) Then
kq(r, c) = kq(r, c) + Val(Right(Tam(r + 1, cl), 2))
End If
Next cl
Next r
Next c

Sheet2.UsedRange.Clear
Sheet2.Range("A1").Resize(UBound(kq), UBound(kq, 2)) = kq
End Sub

Hy vọng là đúng ý
---
Quên lưu chưa bỏ pass
Vẫn "789" của bạn
Em cảm ơn anh nhiều ạ.:)
 
Web KT

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

Back
Top Bottom