Hỏi nhanh - đáp nhanh về công thức (phần 1)

Liên hệ QC
Status
Không mở trả lời sau này.
Công thức này của bác rất chuẩn ah, Em sẽ chọn dùng công thức của bác tuy hơi dài và dùng Macro của em sẽ nhanh hơn. Cám bác rất nhiều!
Nếu bạn sợ "dài" thì đưa nó vào Define name đi... Ví dụ đặt name:
ShName=MID(CELL("filename",INDIRECT("A1")),FIND("]",CELL("filename",INDIRECT("A1")),1)+1,255)
Công thức thì chỉ cần gõ:
 
Tách dữ liệu

Xin chào GPE!
Em muốn lấy giá trị trong chuổi thì dùng công thức nào ạ?
  • Tại A1 em có 1 chuổi dữ liệu : VSS30D+VSS30D+VSS30D+VSS30D+VSS30D+VSS30D Tại B1 em muốn thành VSS30D
  • Tại A1 em có 1 chuổi dữ liệu : VSS30D+VSS30D+MEE6M+MEE6M+DEE6M+DEE6M Tại B1 em muốn thành VSS30D+MEE6M+DEE6M
Trong File em gửi có nhiều trường hợp. Mong anh chị cho em công thức làm bài toán này. Viết Macro cũng được ạ.

Em chân thành cám ơn
 
Lần chỉnh sửa cuối:
Xin chào GPE!
Em muốn lấy giá trị trong chuổi thì dùng công thức nào ạ?
  • Tại A1 em có 1 chuổi dữ liệu : VSS30D+VSS30D+VSS30D+VSS30D+VSS30D+VSS30D Tại B1 em muốn thành VSS30D
  • Tại A1 em có 1 chuổi dữ liệu : VSS30D+VSS30D+MEE6M+MEE6M+DEE6M+DEE6M Tại B1 em muốn thành VSS30D+MEE6M+DEE6M
Trong File em gửi có nhiều trường hợp. Mong anh chị cho em công thức làm bài toán này. Viết Macro cũng được ạ.

Em chân thành cám ơn
Ai chà... bài này hay đây! Là lọc duy nhất trong chuổi
KHÓ
 
Xin chào GPE!
Em muốn lấy giá trị trong chuổi thì dùng công thức nào ạ?
  • Tại A1 em có 1 chuổi dữ liệu : VSS30D+VSS30D+VSS30D+VSS30D+VSS30D+VSS30D Tại B1 em muốn thành VSS30D
  • Tại A1 em có 1 chuổi dữ liệu : VSS30D+VSS30D+MEE6M+MEE6M+DEE6M+DEE6M Tại B1 em muốn thành VSS30D+MEE6M+DEE6M
Trong File em gửi có nhiều trường hợp. Mong anh chị cho em công thức làm bài toán này. Viết Macro cũng được ạ.

Em chân thành cám ơn
Dùng thhử code này thử.
Cú pháp:
B1=TachKT(A1)
PHP:
Option Explicit
Function TachKT(MyStr As String) As String
Dim aSplit() As String
Dim OurStr As String, SearchChar As String
Dim i As Long, n As Long, j As Long
MyStr = Trim(MyStr)
If Len(MyStr) = 0 Then Exit Function
SearchChar = "+"
n = 0
For i = 1 To Len(MyStr)
    If Mid(MyStr, i, 1) = SearchChar Then n = n + 1
Next
    aSplit = Split(MyStr, "+", n + 1) 'Returns aSplit(0)="...",...,aSplit(4)="..."
    For i = 0 To n
        j = InStr(1, OurStr, aSplit(i))
        If j = 0 Then
            OurStr = OurStr & "+" & aSplit(i)
        End If
    Next
    TachKT = Right(OurStr, Len(OurStr) - 1)
End Function
 
Lần chỉnh sửa cuối:
Ham SUMIF có cú pháp thế nào ạ, mọi người giúp em với
 
Tính tổn 2 điều kiện

Em có 3 cột: Sản phẩm, loại sp, số lượng.


vd:
  • có 2 sản phẩm QUẦN và ÁO.
  • có 2 loại Xịn và Dỏm
Em muốn tính tổng QUẦN loại xịn thì dùng công thức nào ạ? Nếu dùng sumif() thì mới chỉ được 1 đk là quần thui, thiếu đk loại Xịn nữa.

Em chân thành cám ơn!

Thân!
 
Lần chỉnh sửa cuối:
Em có 3 cột: Sản phẩm, loại sp, số lượng.


vd:
  • có 2 sản phẩm QUẦN và ÁO.
  • có 2 loại Xịn và Dỏm
Em muốn tính tổng QUẦN loại xịn thì dùng công thức nào ạ? Nếu dùng sumif() thì mới chỉ được 1 đk là quần thui, thiếu đk loại Xịn nữa.

Em chân thành cám ơn!

Thân!
Bạn dùng Pivot Table là OK ngay.
 
Bạn xem file nha!
Thân.
 
=SUMPRODUCT(((A2:A13)="Dỏm")*((B2:B13)="ÁO")*C2 :C13)

Có nghĩa là đi tìm trong khối ô A2:C13, hàng nào mà ở cột A là "dỏm" và ở cột B là "áo", thì cộng mấy con số ở hàng đó bên cột C.
 
Hàm này
=SUMPRODUCT(((A2:A13)="Dỏm")*((B2:B13)="ÁO")*C2 :C13)
ở phiên bản excel nào vậy? em tìm mãi không thấy
em mới học excel nên mong a chị giúp chỉ cho
 
Hàm này
=SUMPRODUCT(((A2:A13)="Dỏm")*((B2:B13)="ÁO")*C2 :C13)
ở phiên bản excel nào vậy? em tìm mãi không thấy
em mới học excel nên mong a chị giúp chỉ cho
Phiên bản nào cũng có, cô bé dễ thương ạ.
Nếu chưa biết, thì vào Help, gõ SUMPRODUCT, Excel sẽ nói cho mà nghe.
Còn không nữa thì nhấn vào nút Tìm kiếm của diễn đàn, gõ SUMPRODUCT vào đó, có rất nhiều bài để đọc. Không nữa thì vào mục Tra cứu Hàm Excel để học.
 
Phiên bản nào cũng có, cô bé dễ thương ạ.
Nếu chưa biết, thì vào Help, gõ SUMPRODUCT, Excel sẽ nói cho mà nghe.
Còn không nữa thì nhấn vào nút Tìm kiếm của diễn đàn, gõ SUMPRODUCT vào đó, có rất nhiều bài để đọc. Không nữa thì vào mục Tra cứu Hàm Excel để học.

Trong hàm SUM sau có sử dụng:
dấu + để biểu thị phép toán "OR"
dấu * để biểu thị phép toán "AND"
{=SUM((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)}

mình sử dụng công thức SUMPRODUCT
=SUMPRODUCT((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)

Tuy nhiên các phép toán này không cho kết quả tương đương. Các anh chị có thể chỉ giúp xem mình đã làm sai chỗ nào không, hoặc hàm này có tính năng này không. Mình mới tìm hiểu về excel nên không rành lắm
 
Lần chỉnh sửa cuối:
Trong hàm SUM sau có sử dụng:
dấu + để biểu thị phép toán "OR"
dấu * để biểu thị phép toán "AND"
{=SUM((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)}

mình sử dụng công thức SUMPRODUCT
=SUMPRODUCT((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)

Tuy nhiên các phép toán này không cho kết quả tương đương. Các anh chị có thể chỉ giúp xem mình đã làm sai chỗ nào không, hoặc hàm này có tính năng này không. Mình mới tìm hiểu về excel nên không rành lắm
Hai công thức của bạn là tương đương. Tôi đã thử đi thử lại mấy lần.
Bạn kiểm tra lại xem có nhập gì sai sót hay không.
 
Trong hàm SUM sau có sử dụng:
dấu + để biểu thị phép toán "OR"
dấu * để biểu thị phép toán "AND"
{=SUM((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)}

mình sử dụng công thức SUMPRODUCT
=SUMPRODUCT((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)

Tuy nhiên các phép toán này không cho kết quả tương đương. Các anh chị có thể chỉ giúp xem mình đã làm sai chỗ nào không, hoặc hàm này có tính năng này không. Mình mới tìm hiểu về excel nên không rành lắm

Công thức bạn sai chỗ này:
(ChucVu="TP")+(ChucVu="PP")

Đúng ra phải như thế này mới đúng:
{=SUM((BoPhan="KD")*((ChucVu="TP")*OR(ChucVu="PP"))*Luong)}

Hoặc:
=SUMPRODUCT((BoPhan="KD")*((ChucVu="TP")*OR(ChucVu="PP"))*Luong)
 
Trong hàm SUM sau có sử dụng:
dấu + để biểu thị phép toán "OR"
dấu * để biểu thị phép toán "AND"
{=SUM((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)}

mình sử dụng công thức SUMPRODUCT
=SUMPRODUCT((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)

Tuy nhiên các phép toán này không cho kết quả tương đương. Các anh chị có thể chỉ giúp xem mình đã làm sai chỗ nào không, hoặc hàm này có tính năng này không. Mình mới tìm hiểu về excel nên không rành lắm
Cái công thức này phải hiểu làm sao đây?
Theo tôi hiểu thì nó là: Tính tổng lương của những người có chức vụ là TP hoặc PP thuộc bộ phận KD.

Cái chữ hoặc tôi bôi đỏ này, theo tôi, phải hiểu nó là thì mới đúng.

Cho tôi giải thích thêm. Do chúng ta nói là hoặc TP hoặc PP, cho nên công thức trên sẽ lấy tất cả những gì là TP và PP, và bỏ ra những cái không phải là TP hoặc PP.

Vì vậy, công thức:
{=SUM((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)}​
và công thức:
=SUMPRODUCT((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)​
là như nhau, và đều đúng, chỉ khác là một cái là công thức mảng, một cái là công thức thường.

Không phải là công thức của Ca_Dafi sẽ cho kết quả không chính xác, vì tôi cũng chưa biết là tôi hiểu như trên có đúng hay không. Xin tác giả và các bạn cho ý kiến.

Xin gửi lên đây một file giả lập cho trường hợp này.
 
Cái công thức này phải hiểu làm sao đây?
Theo tôi hiểu thì nó là: Tính tổng lương của những người có chức vụ là TP hoặc PP thuộc bộ phận KD.

Cái chữ hoặc tôi bôi đỏ này, theo tôi, phải hiểu nó là thì mới đúng.

Cho tôi giải thích thêm. Do chúng ta nói là hoặc TP hoặc PP, cho nên công thức trên sẽ lấy tất cả những gì là TP và PP, và bỏ ra những cái không phải là TP hoặc PP.

Vì vậy, công thức:
{=SUM((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)}​
và công thức:
=SUMPRODUCT((BoPhan="KD")*((ChucVu="TP")+(ChucVu="PP"))*Luong)​
là như nhau, và đều đúng, chỉ khác là một cái là công thức mảng, một cái là công thức thường.

Không phải là công thức của Ca_Dafi sẽ cho kết quả không chính xác, vì tôi cũng chưa biết là tôi hiểu như trên có đúng hay không. Xin tác giả và các bạn cho ý kiến.

Xin gửi lên đây một file giả lập cho trường hợp này.

Cảm ơn các bạn đã giúp đỡ, Đúng là do mình gõ nhầm trong công thức ((ChucVu="TP")+(ChucVu="PP")) thành ((ChucVu="TP")+(ChucVu="TP")) dẫn đến kết quả bị sai.
Mình đã kiểm tra lại và hàm đã hoạt động đúng
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom