- Tham gia
- 19/12/10
- Bài viết
- 2,587
- Được thích
- 5,774
- Nghề nghiệp
- Công nhân vệ sinh số liệu
Nếu dữ liệu như mô tả của bạn thì chỉ cần sử dụng hàm SUMIF thôi, bạn xem file đính kèm nhé. Kết quả bạn mong muốn nằm ở vùng bôi màu vàng trong file.
Nếu em muốn thực hành bài này với Sumproduct thì có thể thay chỗ * đó thành hàm Left lấy số ký tự ra và so sánh với điều kiện em cần là OK, vì bài toán em không nói rõ phải dùng Sumproduct nên "anh" dùng SumIF cho nó thân thiện, heheheeVâng cảm ơn anh. Đúng rồi, em cứ loay hoay ở chỗ "*"
Hehehe, Bé Còi sướng nhé, "SONG HỶ LÂM MÔN", khỏi phải đi Thái Lan & hưởng một luật mới ban hành ......Nếu em muốn thực hành bài này với Sumproduct thì có thể thay chỗ * đó thành hàm Left lấy số ký tự ra và so sánh với điều kiện em cần là OK, vì bài toán em không nói rõ phải dùng Sumproduct nên "anh" dùng SumIF cho nó thân thiện, hehehee
Nếu em muốn thực hành bài này với Sumproduct thì có thể thay chỗ * đó thành hàm Left lấy số ký tự ra
Nếu dùng Sumproduct để nhân số lượng với đơn giá để ra thành tiền với điều kiện như file thì em làm như sau :Ban đầu chính là em dùng Hàm Sumproduct này, rồi dùng left lấy vài ký tự đầu thỏa đk thì nhân cột số lượng với đơn giá. Nhưng không biết sai chỗ nào mà loay hoay mãi với cái hàm left ấy. Xin cảm ơn anh chỉ bảo
Chúc năm mới vui vẻ![]()
Ừ, cái hàm Sumproduct này tính....buồn cười thậtNhờ ACE giúp CT sumproduct cho cột có điều kiện (cột động)
Mình cài CT kèm hàm match nhưng không hiểu cách excel tính ntn mà ra số lạ quá
=SUMPRODUCT((MATCH("Actual",$C$2:$N$2,0)*C3:N3))
Híc=SUMPRODUCT(($C$2:$N$2="Actual")*C3:N3)
Ừ, cái hàm Sumproduct này tính....buồn cười thật
Híc![]()
file ví dụ của em đây. Cảm ơn các bác
=SUM(LEN(A1:A3)-LEN(SUBSTITUTE(A1:A3,",",""))+1)
Mình làm nhưng vẩn không được,
=SUM(LEN(E9:E11)-LEN(SUBSTITUTE(SUBSTITUTE(E9:E11,",",""),".",""))+1)
Mình copy roi dán vào file gốc nhưng vẫn báo lỗi
Khuongvietphong đã nhắc bạnMình bó tay rồi không được, Bạn cho vào file lươn giúp mình nhé, cám ơn nhiều
bạn có làm như Phong hướng dẫn?Paste công thức vào rồi, phải nhớ nhấn tổ hợp phímCTRL+SHIFT+ENTER
Mính làm được rồi, cám ơn Bạn Phong và bạn Hương nhiều nhé, cho mình hỏi thêm là nếu chèn thêm 1 dòng nữa và để trống thì công thức thế nào? hai bạn chỉ giúp mình nhé, cám ơn nhiều
=SUM(LEN(E9:E12)-LEN(SUBSTITUTE(SUBSTITUTE(E9:E12,",",""),".",""))+1)-COUNTBLANK($E$9:$E$12)
Chỉ cần:em có dùm hàm sumproduct để đếm số chuyến xe với điều kiện đúng tên là A và xe là C. Tuy nhiên em có 1 chuyến tên là B và xe là C với số thứ tự chuyến trùng với 1 trong số thứ tự chuyến tên A và xe C. Lúc này kết quả bị sai. Mong các cao nhân chỉ bảo giúp em với.
H3=SUMPRODUCT((A3:A6=F3)*(C3:C6=G3))
H3=COUNTIFS(A3:A6,F3,C3:C6,G3)
Chỉ cần:
Hoặc đơn giảnPHP:H3=SUMPRODUCT((A3:A6=F3)*(C3:C6=G3))
PHP:H3=COUNTIFS(A3:A6,F3,C3:C6,G3)
Chúc bạn ngày vui.
Vậy thì thử vầy:Cảm ơn bác đã phản hồi. lệnh chạy tốt ạ.
Tuy nhiên, ngoài thỏa mãn điều kiện Tên và Xe, em muốn kiểm soát thêm 1 diều kiện nữa là đếm số chuyến nhưng loại những chuyến bị trùng ra như trong file em gửi bên dưới. nếu có 2 chuyến bị trùng thì kết quả nó phản ánh ko chính xác ạ.
Mong các bác chỉ giáo giúp em.
H3=SUMPRODUCT((A3:A6=F3)*(C3:C6=G3)/(COUNTIFS(B3:B6,B3:B6,A3:A6,A3:A6,C3:C6,C3:C6)))
Vậy thì thử vầy:
EnterPHP:H3=SUMPRODUCT((A3:A6=F3)*(C3:C6=G3)/(COUNTIFS(B3:B6,B3:B6,A3:A6,A3:A6,C3:C6,C3:C6)))
Chúc bạn ngày vui.
Đâu có lạng lách bằng xe gắn máy đâu mà "nguy hiểm" bạn.Quá nhanh quá nguy hiểm.
Tuyệt vời bác ạ. Thỏa mãn đủ các tiêu chí mà em cần.
Cảm ơn bác rất nhiều
HG-L1-60*60-60SP006
HG-L1-60*60-60SP306
HG-L1-60*60-60SP306
ASIAN-L1-60*60-6610
ASIAN-L1-60*60-6632
cho em hỏi em muốn lấy caasi chữ cái đầu thì dùng công thức nào a. , VD: HG , ASIAN
=LEFT(A1,FIND("-",A1)-1)
[/QUOToakPHP:=LEFT(A1,FIND("-",A1)-1)
ok cam on bạn nha
Dò trùng bạn có thể sử dụng CF là ra mà, hoặc có thể dùng hàng index(match(match()))cho em hỏi muốn dò trùng mã hàng thì dùng công thức gì ạ
Bạn ơi cách sử lý như thế nào vậyXin lỗi, có thể dùng hàm sumproduct để lấy riêng giá trị số trong một mảng vừa có số, vừa có chữ, vừa có các ký hiệu (#N/A; Null,#Value)...không?
Cám ơn nhiều.
Chúc mạnh khỏe
Vậy thì khi nào không dùng điện thoại, mà vẫn 'up file' lên được, thì sẽ có kết quả ngay, bạn đừng lo lắng mần chi! không tốn tiền điện thoại đâu!..........................
Mình đang dùng điện thoại nên khôg up file lên được!
Rất cám ơn góp ý của bác e sẽ post file ngay khi có thể, chỉ mong ace giúp hướng giải quyết khi trong file có nhiều kiểu dữ liệu! Thân ái và cám ơn mọi ngườiVậy thì khi nào không dùng điện thoại, mà vẫn 'up file' lên được, thì sẽ có kết quả ngay, bạn đừng lo lắng mần chi! không tốn tiền điện thoại đâu!8
Chúc bạn ngày vui.
Điều chỉnh:Gửi các anh chị trong diễn đàn mình có bảng công chấm theo tiếng muốn tổng hợp số giờ tăng ca trong tháng mà trong bảng công của mình có cả kiểu dữ liệu số và text nhờ cả nhà xem giúp
AM7=SUM(ISNUMBER(--G7:AK7)*(G7:AK7>8)*($G$6:$AK$6<>"CN")*(IFERROR(--G7:AK7,0)-8))
cám ơn bác đã giúp đỡ, tuy nhiên mình còn một vấn đề nữa là nếu trong tháng có một buổi nào đó mà công nhân chỉ làm một vài tiếng thì số công sẽ không chính xác, nhờ bác giúp đỡ xem số giờ lẻ đó quy ra công thì như thế nào !Điều chỉnh:
Kết thúc bằng Ctrl+Shift+Enter, rồi fill xuống.PHP:AM7=SUM(ISNUMBER(--G7:AK7)*(G7:AK7>8)*($G$6:$AK$6<>"CN")*(IFERROR(--G7:AK7,0)-8))
Chúc bạn ngày vui.
Điều chỉnh tiếp:cám ơn bác đã giúp đỡ, tuy nhiên mình còn một vấn đề nữa là nếu trong tháng có một buổi nào đó mà công nhân chỉ làm một vài tiếng thì số công sẽ không chính xác, nhờ bác giúp đỡ xem số giờ lẻ đó quy ra công thì như thế nào !
Trân trọng
AL7=COUNTIFS($G$6:$AK$6,"<>CN",$G7:$AK7,">=8")+ROUND(SUMIFS($G7:$AK7,$G$6:$AK$6,"<>CN",$G7:$AK7,"<8")/8,1)
Rất cám ơn Bác,Điều chỉnh tiếp:
chỉ Enter, rồi fill xuống.PHP:AL7=COUNTIFS($G$6:$AK$6,"<>CN",$G7:$AK7,">=8")+ROUND(SUMIFS($G7:$AK7,$G$6:$AK$6,"<>CN",$G7:$AK7,"<8")/8,1)
Chúc bạn ngày vui.
Xin chào bác, em có một vấn đề này muốn nhờ bác giup, trong file chấm công mà em có gửi và nhờ bác chỉ một vài công thức giờ em muốn nhờ bác giúp em tính xem ví dụ công nhân nghỉ nửa ngày ở các cột " nghỉ K", Nghỉ Ro, Nghỉ O trong file bác xem giúp em nhéĐiều chỉnh tiếp:
chỉ Enter, rồi fill xuống.PHP:AL7=COUNTIFS($G$6:$AK$6,"<>CN",$G7:$AK7,">=8")+ROUND(SUMIFS($G7:$AK7,$G$6:$AK$6,"<>CN",$G7:$AK7,"<8")/8,1)
Chúc bạn ngày vui.
Ghi nhận các trường hợp nghỉ nửa ngày bằng: Xx/2Xin chào bác, em có một vấn đề này muốn nhờ bác giup, trong file chấm công mà em có gửi và nhờ bác chỉ một vài công thức giờ em muốn nhờ bác giúp em tính xem ví dụ công nhân nghỉ nửa ngày ở các cột " nghỉ K", Nghỉ Ro, Nghỉ O trong file bác xem giúp em nhé
Rất cám ơn bác đã nhiệt tình chia sẻ và giúp đỡ, em tính một mà chưa tính tới 2 bác ạ, khi mà tính được các ngày nghỉ thì số công của họ lại bị thay đổi bác ạ, bác làm giúp em công thức tính tổng công, số giờ tăng ca lại khi mà có " 0,5Ro" tham gia vào công thức ạ, Trân trọngGhi nhận các trường hợp nghỉ nửa ngày bằng: Xx/2
Ví dụ: K/2; Ro/2; Cô/2; Ô/2; P/2.Rồi điều chỉnh công thức trong các cột tương ứng:
Ví dụ: =COUNTIF($H7:$AM7,"Ro*")-COUNTIF($H7:$AM7,"Ro/2")/2Tương tự cho các cột còn lại.
Chúc bạn ngày vui.
Thay đổi điều chỉnh các ngày nghỉ theo ký tự, có hoặc không thêm "/2".Rất cám ơn bác đã nhiệt tình chia sẻ và giúp đỡ, em tính một mà chưa tính tới 2 bác ạ, khi mà tính được các ngày nghỉ thì số công của họ lại bị thay đổi bác ạ, bác làm giúp em công thức tính tổng công, số giờ tăng ca lại khi mà có " 0,5Ro" tham gia vào công thức ạ, Trân trọng
AP7=SUM(COUNTIF($H7:$AM7,"Ro"&{"*","/2"})*{1,-0.5})
AQ7=SUM(COUNTIF($H7:$AM7,"K"&{"*","/2"})*{1,-0.5})
AR7=SUM(COUNTIF($H7:$AM7,"P"&{"*","/2"})*{1,-0.5})
AS7=SUM(COUNTIF($H7:$AM7,"Cô"&{"*","/2"})*{1,-0.5})
AM7=COUNTIFS($H$6:$AL$6,"<>CN",$H7:$AL7,">=8")+ROUND(SUMIFS($H7:$AL7,$H$6:$AL$6,"<>CN",$H7:$AL7,"<8")/8,1)+COUNTIF($H7:$AL7,"*/2")/2
dạ vâng, rất cám ơn bác đã hỗ trợ, file bác làm chạy rất tốt !Thay đổi điều chỉnh các ngày nghỉ theo ký tự, có hoặc không thêm "/2".
Enter fill xuốngPHP:AP7=SUM(COUNTIF($H7:$AM7,"Ro"&{"*","/2"})*{1,-0.5}) AQ7=SUM(COUNTIF($H7:$AM7,"K"&{"*","/2"})*{1,-0.5}) AR7=SUM(COUNTIF($H7:$AM7,"P"&{"*","/2"})*{1,-0.5}) AS7=SUM(COUNTIF($H7:$AM7,"Cô"&{"*","/2"})*{1,-0.5})
Ý bạn muốn nửa giờ còn lại tính vào công đi làm!?
Enter fill xuốngPHP:AM7=COUNTIFS($H$6:$AL$6,"<>CN",$H7:$AL7,">=8")+ROUND(SUMIFS($H7:$AL7,$H$6:$AL$6,"<>CN",$H7:$AL7,"<8")/8,1)+COUNTIF($H7:$AL7,"*/2")/2
Bạn tham khảo file kèm.
Chúc bạn ngày vui
Mình có ý đồ gì thì mình làm luôn đi. Spam kiểu này là ban nick.Đọc xong mới hàm này chắc em bỏ không giám dùng excel quá. Cho ví dụ vào đi bác ơi cho nó dễ hiểu và tường mình nữa
Bạn chịu khó nói cho rõ thêm: bài nào ở phía trên không có ví dụ để đến nỗi bạn "không giám" dùng excel.Thì cái này không biết gi cả mới cần xem có ví dụ chứ
Cái ví dụ đối với mình thì mình cần một ví dụ tường minh hơn. Mình dùng ex chỉ ở mức bt không cần quá nâng cao nên thực sự mình cũng không hiểu được hết những thứ bạn ấy viết. Mình rất muốn biết thêm thông tin để nâng cao trình độ bản thân :|
Bạn thì nói theo nghĩa đen tức "bó bột" tức không còn tay để gõ bàn phím, còn tôi nói theo nghĩa bóng tức "hết thuốc chữa".Bình thường). Bó tay thì mình vào đây xem làm gì!
Cái này cũng gần giống kiểu bạn đang học phép "+" và biết nó. Mà kiến thức của bạn thì toàn phải tính tích phân hay log vậy
Cảm ơn bác ^^.
Chắc còn mỗi anh chưa sửa được bài viết thôi ạ.Tôi không thể nào sửa lại bài viết
Bài gì vậy bạn? tôi thấy có cái gì bạn yêu cầu đâu mà làm.Các bác giúp em giải bài này với ạ, em đau đầu bao nhiêu ngày nay mà ko thể giải nổi ! Em cảm ơn các bác nhiều !
Tải file đính kèm tại bài 568. Yêu cầu nằm trong file đó bạn!Bài gì vậy bạn? tôi thấy có cái gì bạn yêu cầu đâu mà làm.
Em tải rồi anh, nhưng chẳng thấy cái yêu cầu nào trong đó, xem tới lui chẳng biết bạn ấy muốn gì luôn.Tải file đính kèm tại bài 568. Yêu cầu nằm trong file đó bạn!
Chờ lâu không thấy trả lời cũng có lý do đó: bài này thuộc chuyên đề SUMPRODUCT, có quá nhiều bài viết trong đó nên không thu hút sự chú ý. Lần sau nhớ mở topic mới sẽ dễ thu hút hơn.Bác nào giúp em với![]()
=LOOKUP(D2,{"tb2","tb3","tb4","tb5","tb6"},CHOOSE(LEN(A2)/2-COUNT(SEARCH($F$2:$F$18,A2))+1,{3,8,11,77,111},{0,0,0,3,77},{0,0,0,0,3},{0,0,0,0,0},{0,0,0,0,0}))
Sơ ý. Cả
Đúng là công thức đối với tôi hơi quá tầm, tôi đang nghiên cứu viết code nhưng chưa xong.Chờ lâu không thấy trả lời cũng có lý do đó: bài này thuộc chuyên đề SUMPRODUCT, có quá nhiều bài viết trong đó nên không thu hút sự chú ý. Lần sau nhớ mở topic mới sẽ dễ thu hút hơn.
Dùng công thức này tại E2 rồi copy xuống:
Mã:=LOOKUP(D2,{"tb2","tb3","tb4","tb5","tb6"},CHOOSE(LEN(A2)/2-COUNT(SEARCH($F$2:$F$18,A2))+1,{3,8,11,77,111},{0,0,0,3,77},{0,0,0,0,3},{0,0,0,0,0},{0,0,0,0,0}))
Công thức mảng nên kết thúc bằng Ctrl-shift-enter thay vì enter nhé. Thấy có cặp móc nhọn {}bao quanh công thức là OK.
Mình cũng muốn tầm sư học đạo bạn về code.Đúng là công thức đối với tôi hơi quá tầm, tôi đang nghiên cứu viết code nhưng chưa xong.
Em cảm ơn bác lắm lắm ạ !!!!!Chờ lâu không thấy trả lời cũng có lý do đó: bài này thuộc chuyên đề SUMPRODUCT, có quá nhiều bài viết trong đó nên không thu hút sự chú ý. Lần sau nhớ mở topic mới sẽ dễ thu hút hơn.
Dùng công thức này tại E2 rồi copy xuống:
Mã:=LOOKUP(D2,{"tb2","tb3","tb4","tb5","tb6"},CHOOSE(LEN(A2)/2-COUNT(SEARCH($F$2:$F$18,A2))+1,{3,8,11,77,111},{0,0,0,3,77},{0,0,0,0,3},{0,0,0,0,0},{0,0,0,0,0}))
Công thức mảng nên kết thúc bằng Ctrl-shift-enter thay vì enter nhé. Thấy có cặp móc nhọn {}bao quanh công thức là OK.
Các bác giúp em giải bài này với ạ, em đau đầu bao nhiêu ngày nay mà ko thể giải nổi ! Em cảm ơn các bác nhiều !
Bác cho em hỏi thêm với ạ, Em làm theo hướng dẫn của bác đã được rồi nhưng khi em thay đổi giá trị trong ($F$2:$F$18) thì nó báo lỗi ạ. ví dụ A2 là 1a2b2a mà cột F em có giá trị a2,b2 thì sẽ bị lỗi ạChờ lâu không thấy trả lời cũng có lý do đó: bài này thuộc chuyên đề SUMPRODUCT, có quá nhiều bài viết trong đó nên không thu hút sự chú ý. Lần sau nhớ mở topic mới sẽ dễ thu hút hơn.
Dùng công thức này tại E2 rồi copy xuống:
Mã:=LOOKUP(D2,{"tb2","tb3","tb4","tb5","tb6"},CHOOSE(LEN(A2)/2-COUNT(SEARCH($F$2:$F$18,A2))+1,{3,8,11,77,111},{0,0,0,3,77},{0,0,0,0,3},{0,0,0,0,0},{0,0,0,0,0}))
Công thức mảng nên kết thúc bằng Ctrl-shift-enter thay vì enter nhé. Thấy có cặp móc nhọn {}bao quanh công thức là OK.
Lỗi là chắc rồi với dữ liệu không bất nhất. Trong ví dụ chỉ là 1ký số+1 ký tự, (1a,2b) bây giờ lại ngược lại (a1,b2). Bạn đưa hết các trường hợp vào và post lại xem saoBác cho em hỏi thêm với ạ, Em làm theo hướng dẫn của bác đã được rồi nhưng khi em thay đổi giá trị trong ($F$2:$F$18) thì nó báo lỗi ạ. ví dụ A2 là 1a2b2a mà cột F em có giá trị a2,b2 thì sẽ bị lỗi ạ
Giá trị cột F là biến số có thể thay đổi bất kỳ và có thể trùng nhau chứ không phải là giá trị xác định như trên bài ạ.Lỗi là chắc rồi với dữ liệu không bất nhất. Trong ví dụ chỉ là 1ký số+1 ký tự, (1a,2b) bây giờ lại ngược lại (a1,b2). Bạn đưa hết các trường hợp vào và post lại xem sao
Ôi em cảm ơn bác, em quên để ý cột C
=-PV(0.00628,2*12,3000000*0.22,,1)em cần tính số tiền phải nộp BHXH tự nguyện cho nhiều năm về sau, tối đa là 5 năm với công thức theo quy định là
![]()
vậy có cách nào không cần lập biểu tính từng tháng một rồi tính tổng không ạ? e xin cám ơn
giúp e cái này luôn với=-PV(0.00628,2*12,3000000*0.22,,1)
Bạn dùng hàm này nha:giúp e cái này luôn với
![]()
![]()
Bạn xóa cell 90,91 là hết lỗi.e tính tổng các cột theo điều kiện bao gồm cả dòng trống dùng hàm sumproduct, bị lỗi, các anh, chị có cách nào hay hơn chỉ giúp e với ạ
cám ơn bạn đã hỗ trợ, mình thấy trong cell 90, 91 của mình k có dữ liệu gì mà, bạn giải thích giúp mình vớiBạn xóa cell 90,91 là hết lỗi.
2 cell đó không biết bạn thao tác copy dán từ đâu: nó đang là kiểu dữ liệu text chứ không phải Number: nên Sum không được.cám ơn bạn đã hỗ trợ, mình thấy trong cell 90, 91 của mình k có dữ liệu gì mà, bạn giải thích giúp mình với
Bạn bôi đen A90:C91 =>delete =>entercám ơn bạn đã hỗ trợ, mình thấy trong cell 90, 91 của mình k có dữ liệu gì mà, bạn giải thích giúp mình với
Bạn ơi, có thể cho mình xin file exel ví dụ minh họa cho cá công thức trên được ko.Trong các ứng dụng về công thức mãng mình được biết thì dạng công thức mãng dạng sum nhiều điều kiện là mình tâm đắc nhất vì cú pháp đơn giản, khi kết hợp với những hàm khác thì nó rất linh hoạt , giải quyết rất nhiều tình huống trước đây mình xử lý bằng hàm thông thường rất vất vã, hình như nó tính hơi lâu nhưng kết quả rất ưng ý
Ví dụ
1/ sum nhiều if - thay thế một macro rút trích rồi tính tổng
vd:tính tiền thu được do bán mặt hàng là "sơn" thời gian từ 01/06/07 ( tungay) đến 30/06/07( denngay)
{sum(if(ngay=>tungay,1,0)*if(ngay<=denngay,1,0)*if(mat_hang="son",1,0)*tien)}
2/ Sumproduct nhiều if
vd:tính tổng diện tích các thửa ruộng ấp A, xã B, Huyện C
{sum(if(ap="a",1,0)*if(xa="b",1,0)*if(huyen="c",1,0)*dai*rong)}
3/ count nhiều if
vd: đếm số sv điểm trên trung bình là nam,lớp B, khoa C, Trường D
{sum(if(diem>=5,1,0)*if(gioitinh="nam",1,0)*if(lop="b",1,0)*if(khoa="c",1,0)*if(truong="d",1,0)}
4/max nhiều if
vd:tự động nhảy số hóa đơn thứ mấy xuất cho đơn vị A, chứ không phải là STT hóa đơn, stt hóa đơn =max(stt_hd)
{max(if(dv="a",1,0)*shd_dv)}
5/ Vlookup_if
vd: tìm trong vùng dữ liệu cột 1 mã máy bằng AAA, cột ngày di chuyển=gần nhất, xem nơi đến là nơi nào ( tìm giá trị cột noi_den )
- kết hợp hàm findtwoconditions trên giaiphapexcel và hàm max_if trên
Bạn tìm hiểu thử nhaBạn ơi, có thể cho mình xin file exel ví dụ minh họa cho cá công thức trên được ko.
mình làm thử rồi mà ko ra kết quả.
Thanks bạn ^^
Tham khảo bài #17, download file về xem sheet: GPE và Sheet3. Theo link:em muốn tính tổng có điều kiện cho khoảng 500 đầu mục công việc mà không biết dùng hàm nào cho nhanh. Các anh, chị có cách nào giúp em với ạ
Dữ liệu của bạn gửi tuy tương đồng kết cấu, nhưng phần chi tiết yêu cầu "cộng phân khoản" không phức tạp như file theo đường link mà tôi đề cập trên.em muốn tính tổng có điều kiện cho khoảng 500 đầu mục công việc mà không biết dùng hàm nào cho nhanh. Các anh, chị có cách nào giúp em với ạ
A4=IF(COUNTA(B4:G4),IF(B4<>"",INT(IFERROR(--A3,0))+1,INT(--A3)&"."&TEXT(IFERROR(LOOKUP(4,{2,3}/(SEARCH({"Nhân","Máy"},C4)>0)),1),"00")),)
H4=IF(A4<>"",ROUND(IF(B4<>"",SUM(H5:OFFSET(H4,MATCH(1,INDEX(N(A4<>INT(--A4:A1000)),),)-2,)),PRODUCT(E4,F4,G4)*IF(OR(C4={"Vật liệu khác","Máy khác"}),SUM(OFFSET($H$3,MATCH(1,INDEX(N(A4=$A$3:A3),),)-1,):H3)%,1)),),"")
Sao vẫn không được vậy ạ. Em toàn thấy VALUE thôiDữ liệu của bạn gửi tuy tương đồng kết cấu, nhưng phần chi tiết yêu cầu "cộng phân khoản" không phức tạp như file theo đường link mà tôi đề cập trên.
Do vậy, tôi thực hiện cho bạn cùng giải pháp nhưng đơn giản hơn chút, với một vài lưu ý như sau:
Công thức áp dụng:
- Về chi tiết cộng: bạn chỉ muốn phân nhỏ theo 3 mục (!?): Vật liệu, Nhân công, và Máy nhằm cộng Vùng theo từng tiêu chí đó để ra số tính toán cho "Vật liệu khác" và "Máy khác". Nếu đúng như vậy, thì bạn nên lưu ý chỗ các dòng bạn muốn cộng cho "Máy khác" phải đảm bảo có chữ "Máy" nằm ở cột Nội dung công việc, Vd: ô C25: Cần cẩu xích 10T, bạn phải thêm chữ "(Máy)" để báo cho công thức biết mà phân biệt. Tóm lại, nôm na hễ có "Nhân" và "Máy" thì hiểu là "Nhân công" và "Máy móc", các cái khác còn lại là "Vật liệu". Nếu bạn muốn chính xác hơn nữa thì bạn phải tạo thêm cột phân loại theo ba tiêu chí đó, nhưng hơi rườm rà tí, còn nếu như cách nêu trên là tạm ổn thì cứ việc áp dụng công thức dưới đây.
- Cột A số thứ tự (STT) tuy nhìn nó rất đơn giản và bình thường, nhưng chính nhờ nó mà bạn phân Vùng được chính xác. Nên nó là cốt lõi cho công thức cộng tại cột H phía sau. Do bạn chỉ phân biệt 3 chỉ tiêu như trên, nên công thức chỉ đơn giản có "Mẹ" và "Con" thôi không cần "Cháu"
- Công thức tại cột H tôi dùng SUM() và phân từng đoạn Vùng nhỏ và phù hợp với yêu cầu để không chiếm nhiều bộ nhớ máy. Nên nếu bạn có hơn "500 đầu mục" thì không lo nặng máy. Tôi cũng tính áp dụng Sumif(...,".??",....) như cách bên file hướng dẫn theo link kia, nhưng thấy nó kéo Vùng vào bộ nhớ hơi nhiều (với hơn 500 đầu mục), nên đã chọn giải pháp SUM(OFFSET()).
Tính số thứ tự:
Fill xuống.Mã:A4=IF(COUNTA(B4:G4),IF(B4<>"",INT(IFERROR(--A3,0))+1,INT(--A3)&"."&TEXT(IFERROR(LOOKUP(4,{2,3}/(SEARCH({"Nhân","Máy"},C4)>0)),1),"00")),)
Tính Cộng Phân Vùng hoặc Tính Giá trị dòng Chi tiết:
Fill xuống.Mã:H4=IF(A4<>"",ROUND(IF(B4<>"",SUM(H5:OFFSET(H4,MATCH(1,INDEX(N(A4<>INT(--A4:A1000)),),)-2,)),PRODUCT(E4,F4,G4)*IF(OR(C4={"Vật liệu khác","Máy khác"}),SUM(OFFSET($H$3,MATCH(1,INDEX(N(A4=$A$3:A3),),)-1,):H3)%,1)),),"")
Xem file đính kèm.
Chúc bạn học tập vui với GPE.
hihi ^o^
Máy vi tính của bạn đang xài excel phiên bản mấy vậy!?Sao vẫn không được vậy ạ. Em toàn thấy VALUE thôi
Phiên bản Excel có liên quan gì đến kết quả Value vậy taMáy vi tính của bạn đang xài excel phiên bản mấy vậy!?
Với code như thế thì bạn phải có thiết lập trong CP giống như người viết code cho bạn. Tức code phụ thuộc vào thiết lập trong CP. Nếu thiết lập của bạn khác đi thì sẽ có VALUESao vẫn không được vậy ạ. Em toàn thấy VALUE thôi
A4=IF(COUNTA(B4:G4),IF(B4<>"",INT(IFERROR(--A3,0))+1,INT(--A3)&"."&TEXT(IFERROR(LOOKUP(4,{2,3}/(SEARCH({"Nhân","Máy"},C4)>0)),1),"00")),)
A6 =IF(COUNTA(B6:G6),IF(B6<>"",INT(IFERROR(--A5,0))+1,INT(--A5)&"."&TEXT(IFERROR(LOOKUP(4,{2\3}/(SEARCH({"Nhân"\"Máy"},C6)>0)),1),"00")),)
=IF(B4<>"",SUM(H5:INDEX(H$1:H$1000,IFERROR(MATCH("*",B5:B$1000,0)+ROW(B4)-1,LOOKUP("zzz",C5:C$1000,ROW(C5:C$1000))))),IF(C4="Vật liệu khác",E4*SUM(INDEX(H$1:H4,LOOKUP("zzz",B$1:B3,ROW(B$1:B3))+1):H3)/100,IF(C4="Máy khác",E4*G4*SUM(INDEX(H$1:H4,LOOKUP(2,1/(D$1:D4="công"),ROW(D$1:D4))+1):H3)/100,E4*F4*G4)))