Nhờ chỉnh sửa công thức ngắn gọn và hợp lí hơn.

Liên hệ QC

havietchuong

Thành viên tiêu biểu
Tham gia
16/6/09
Bài viết
490
Được thích
570
Giới tính
Nam
Nghề nghiệp
Giáo viên tiểu học.
Chào các bạn.
Tôi đang lập bảng tổng kết định kì cho một lớp học, công thức đã làm được rồi nhưng vẫn thấy có điều gì đó chưa vừa ý. Nhờ các bạn có ý kiến chỉnh sửa theo yêu cầu tôi có ghi trong file đính kèm. Cám ơn rất nhiều.
 

File đính kèm

Chào các bạn.
Tôi đang lập bảng tổng kết định kì cho một lớp học, công thức đã làm được rồi nhưng vẫn thấy có điều gì đó chưa vừa ý. Nhờ các bạn có ý kiến chỉnh sửa theo yêu cầu tôi có ghi trong file đính kèm. Cám ơn rất nhiều.

Với điều kiện cuối cùng như bạn nói thì:
Chuẩn không cần chỉnh:
PHP:
=CHOOSE(MOD(MAX(CODE(B6:F6)),10),"G","","","TB","K","","","","Y")
thêm Ctrl+Shift+Enter
Xem file:
 

File đính kèm

Chào các bạn.
Tôi đang lập bảng tổng kết định kì cho một lớp học, công thức đã làm được rồi nhưng vẫn thấy có điều gì đó chưa vừa ý. Nhờ các bạn có ý kiến chỉnh sửa theo yêu cầu tôi có ghi trong file đính kèm. Cám ơn rất nhiều.
-----
Với tôi, công thức như trên cũng ổn rồi, ô D6 chỉ có các ký tự A,A+,B không có trong các ô khác trong vùng B6:F6 (G-K-TB-Y), đâu có ảnh hưởng gì đến công thức Countif(). Vẻ mỹ quan thì chắc cũng không quan trọng.
Nếu có ngắn hơn một chút xíu thì thay:
=IF(COUNTIF(A6:J6;"")>0;"";... bằng:
=IF(COUNTA(A6:J6)<10;"";...
Thân mến đồng hương.
 
Có thể nói rõ hơn vê hàm Choose được không các bạn? Thanks!
 
Với điều kiện cuối cùng như bạn nói thì:
Chuẩn không cần chỉnh:
PHP:
=CHOOSE(MOD(MAX(CODE(B6:F6)),10),"G","","","TB","K","","","","Y")
thêm Ctrl+Shift+Enter
Xem file:

Như thế thì không ổn rồi bạn ơi.
Vì các môn Đ.đức, Â.nhạc, MT., KT., T.dục nếu có B thì phải xếp Y và nếu có thiếu mỗi một môn nào thì không xếp loại được. Bạn xem lại dùm nha.
 
Chào các bạn.
Tôi đang lập bảng tổng kết định kì cho một lớp học, công thức đã làm được rồi nhưng vẫn thấy có điều gì đó chưa vừa ý. Nhờ các bạn có ý kiến chỉnh sửa theo yêu cầu tôi có ghi trong file đính kèm. Cám ơn rất nhiều.
Cái bảng này do bạn tạo ra? nếu đúng thì bạn lôi cổ cái "thằng" đạo đức về bên phải, đứng chung với Âm nhạc, Mỹ thuật thì nó không dòm tới D6 nữa. Theo ý riêng của mình muốn nhìn công thức cho nó gọn hơn sao bạn không chuyển công thức của bạn thành name, nhìn vào cực kỳ sạch sẽ, gọn gàng đỡ rối mắt ( xin nhắc lại đây chỉ là ý riêng của mình), xin mượn công thức của bạn đặt name.
Thân
 

File đính kèm

Như thế thì không ổn rồi bạn ơi.
Vì các môn Đ.đức, Â.nhạc, MT., KT., T.dục nếu có B thì phải xếp Y và nếu có thiếu mỗi một môn nào thì không xếp loại được. Bạn xem lại dùm nha.

Bởi vì bạn nói:
Một cách cụ thể: Các bạn giúp tôi lập công thức thế nào để IF chỉ cần 4 môn: Tiếng Việt (B6), Toán (C6), K.Học (E6), và LS&ĐL (F6) tham gia công thức, không chứa trong đó ô D6
Thì tôi mới làm vậy,

Còn muốn
Đ.đức, Â.nhạc, MT., KT., T.dục nếu có B thì phải xếp Y và nếu có thiếu mỗi một môn nào thì không xếp loại được
thì:
PHP:
=IF(COUNTIF(B6:J6,"B")=0,CHOOSE(MOD(MAX(CODE(B6:F6)),10),"G","","","TB","K","","","","Y"),"Y")
+ Ctrl+Shift+Enter
 
Cái bảng này do bạn tạo ra? nếu đúng thì bạn lôi cổ cái "thằng" đạo đức về bên phải, đứng chung với Âm nhạc, Mỹ thuật thì nó không dòm tới D6 nữa. Theo ý riêng của mình muốn nhìn công thức cho nó gọn hơn sao bạn không chuyển công thức của bạn thành name, nhìn vào cực kỳ sạch sẽ, gọn gàng đỡ rối mắt ( xin nhắc lại đây chỉ là ý riêng của mình), xin mượn công thức của bạn đặt name.
Thân

Đúng như bạn nêu, nếu chuyển môn Đạo đức sang phải chung với Âm nhạc, Mĩ thuật, ... thì không có gì để nói. Điều này không phải tôi tạo ra cái khó mà chính là thứ tự các môn trong sổ điểm đấy ạ. Từ chỗ đó mới nhờ đến các bạn. Thông cảm.
 
Bởi vì bạn nói:

Thì tôi mới làm vậy,

Còn muốn
thì:
PHP:
=IF(COUNTIF(B6:J6,"B")=0,CHOOSE(MOD(MAX(CODE(B6:F6)),10),"G","","","TB","K","","","","Y"),"Y")
+ Ctrl+Shift+Enter

Cám ơn bạn. Tuy công thức này vẫn còn chưa kết hợp với lại xếp loại HẠNH KIỂM (HK xếp CĐ cũng phải YẾU) nhưng tôi tìm hiểu thêm để cộng vào vậy.
 
Cái bảng này do bạn tạo ra? nếu đúng thì bạn lôi cổ cái "thằng" đạo đức về bên phải, đứng chung với Âm nhạc, Mỹ thuật thì nó không dòm tới D6 nữa. Theo ý riêng của mình muốn nhìn công thức cho nó gọn hơn sao bạn không chuyển công thức của bạn thành name, nhìn vào cực kỳ sạch sẽ, gọn gàng đỡ rối mắt ( xin nhắc lại đây chỉ là ý riêng của mình), xin mượn công thức của bạn đặt name.
Thân

Bạn conogia thân mến.
Tôi xem lại thấy cách đặt name cho công thức của bạn rất hay và ngắn gọn dễ nhìn. Bạn giúp tôi cách đặt name cho công thức như thế nào đi. Cám ơn nhiều.
 
Bạn conogia thân mến.
Tôi xem lại thấy cách đặt name cho công thức của bạn rất hay và ngắn gọn dễ nhìn. Bạn giúp tôi cách đặt name cho công thức như thế nào đi. Cám ơn nhiều.
-------
Bạn mở tập tin của Bạn concogia, chọn ô K6, sẽ thấy công thức là =XEP.
Bạn vào Insert - Name - Define... kích vào dòng XEP, dưới ô Refers to: thấy công thức của Name là (Giống như công thức của Bạn)
Mã:
=IF(COUNTIF(Sheet1!$A6:$J6;"")>0;"";IF(OR(Sheet1!$A6="CĐ";COUNTIF(Sheet1!$B6:$F6;"Y")>0;COUNTIF(Sheet1!$D6:$J6;"B")>0);"Y";IF(COUNTIF(Sheet1!$B6:$F6;"TB")>0;"TB";IF(COUNTIF(Sheet1!$B6:$F6;"K")>0;"K";"G"))))
Bạn suy ngẫm thử xem có làm được như vậy không.
Thân mến đồng hương.
 
Bạn conogia thân mến.
Tôi xem lại thấy cách đặt name cho công thức của bạn rất hay và ngắn gọn dễ nhìn. Bạn giúp tôi cách đặt name cho công thức như thế nào đi. Cám ơn nhiều.
Ban hãy làm theo gợi ý của bạn Ba Tê, còn công thức là của bạn í chứ không phải của mình, nhưng phải sửa một "tý tẹo" nhé nó mới chạy, bạn tìm được chỗ sửa của mình " bảo hành" bạn sẽ nhớ "zất" lâu, lần sau đụng chuyện cứ thế mà làm
Thân mến đồng bào BaTê, havietchuong
 
-------
Bạn mở tập tin của Bạn concogia, chọn ô K6, sẽ thấy công thức là =XEP.
Bạn vào Insert - Name - Define... kích vào dòng XEP, dưới ô Refers to: thấy công thức của Name là (Giống như công thức của Bạn)
Mã:
=IF(COUNTIF(Sheet1!$A6:$J6;"")>0;"";IF(OR(Sheet1!$A6="CĐ";COUNTIF(Sheet1!$B6:$F6;"Y")>0;COUNTIF(Sheet1!$D6:$J6;"B")>0);"Y";IF(COUNTIF(Sheet1!$B6:$F6;"TB")>0;"TB";IF(COUNTIF(Sheet1!$B6:$F6;"K")>0;"K";"G"))))
Bạn suy ngẫm thử xem có làm được như vậy không.
Thân mến đồng hương.

Tôi đã thấy được như điều bạn giới thiệu và cũng cố gắng tìm hiểu để tự thấy được cách thực hiện của các bạn, nhưng khi vào Insert\Name thì có 4 lựa chọn. Tôi cứ vòng vo mãi vẫn chưa ra được manh mối. Nhờ bạn chỉ giúp từng bước sẽ khỏe hơn. Lúc ấy tôi chép lại thành bài học vậy. Cmá ơn nhiều.

Ban hãy làm theo gợi ý của bạn Ba Tê, còn công thức là của bạn í chứ không phải của mình, nhưng phải sửa một "tý tẹo" nhé nó mới chạy, bạn tìm được chỗ sửa của mình " bảo hành" bạn sẽ nhớ "zất" lâu, lần sau đụng chuyện cứ thế mà làm
Thân mến đồng bào BaTê, havietchuong

Vâng, tôi đã thấy được chỗ sửa của bạn là thên Sheet1! vào phía trước các địa chỉ ô. Nhưng loay hoay mãi không ra được. Nhờ các bạn chỉ chi tiết giúp. cám ơn.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Tôi đã thấy được như điều bạn giới thiệu và cũng cố gắng tìm hiểu để tự thấy được cách thực hiện của các bạn, nhưng khi vào Insert\Name thì có 4 lựa chọn. Tôi cứ vòng vo mãi vẫn chưa ra được manh mối. Nhờ bạn chỉ giúp từng bước sẽ khỏe hơn. Lúc ấy tôi chép lại thành bài học vậy. Cmá ơn nhiều.

Bạn xem file, có minh họa trong đó,
File đính kèm:
Chỉ là ví dụ đặt Name
Các công thức tại cột xếp loại cũng làm tương tự
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn xem file, có minh họa trong đó,
File đính kèm:
Chỉ là ví dụ đặt Name
Các công thức tại cột xếp loại cũng làm tương tự

Cám ơn tất cả anh em, với mọi chuyện đều bắt đầu từ con số 0. Bản thân học được điều gì, chỉ biết ghi nhớ làm theo như thế, có lẽ lâu ngày sẽ có nhiều điều mới hơn.
Chân thành cám ơn tất cả anh em nhiệt tình giúp đỡ.
 
Thử viết hàm tự tạo, nhưng là người ngoại đạo; Rất mong các bạn góp í

PHP:
Option Explicit
Function XepLoai(HKiem As Range, Chinh As Range, Phu As Range)
 Dim HKK As Boolean
     
 If UCase$(Left(HKiem.Value, 1)) = "C" Then HKK = True
 
 If DHK Or BonMon(Chinh, "Y") Or BonMon(Phu, "B") Then
   XepLoai = "Y"
 If HKK = False And BonMon(Chinh, "Y") = False And BonMon(Phu, "B") = False Then
   XepLoai = "TB"
 If HKK = False And (BonMon(Chinh, "Y") = False Or BonMon(Chinh, "TB") = False) _
        And BonMon(Phu, "B") = False Then
   XepLoai = "K"
 ElseIf HKK = False And workshetfunction.Countif(Chinh, "G") = 4 And BonMon(Phu, "B") = False Then
   XepLoai = "G"
 Else
   XepLoai = "GPE"
 End If
End Function
Mã:
Function BonMon(Rng As Range, Loai As String) As Boolean
 Dim Clls As Range
 For Each Clls In Rng
   If Clls.Value = Loai Then
      BonMon = True:          Exit Function
   End If
 Next Clls
End Function
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom