Tính tổng mặt hàng dựa vào lần đánh giá sau cùng (1 người xem)

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

vitinhvnbmt

Thành viên hoạt động
Tham gia
30/5/09
Bài viết
108
Được thích
7
đếm số mặt hàng thỏa mãn nhiều điều kiện

mình có vài câu hỏi đã ghi sẵn trong file excel gửi kèm, do câu hỏi tương đối phức tạp nên mình không thể diễn đạt bằng lời tại đây được. mong các ace gpe xem file và giải đáp --=0
 

File đính kèm

Lần chỉnh sửa cuối:
mình có vài câu hỏi đã ghi sẵn trong file excel gửi kèm, do câu hỏi tương đối phức tạp nên mình không thể diễn đạt bằng lời tại đây được. mong các ace gpe xem file và giải đáp --=0

trong câu hỏi đâu tiên của bạn
1.a. đếm tổng số mặt hàng X145(4 chữ cái đầu tiên là X145) mà ở cột trạng thái(cột E) là 90% hoặc 100% ở lần xuất hiện sau cùng
đáp án bạn chọn T10 là 80%, là sao?

câu b cũng vậy
1.b. đếm tổng số mặt hàng X145(4 chữ cái đầu tiên là X145) mà giá trị nhỏ nhất ở phần Trạng thái của những lần xuất hiện là >=90%
kết quả T15:T19, không có giá trị nào lớn hơn 90
====
cái này chắc phải sử dụng vba quá
 
Lần chỉnh sửa cuối:
trong câu hỏi đâu tiên của bạn
1.a. đếm tổng số mặt hàng X145(4 chữ cái đầu tiên là X145) mà ở cột trạng thái(cột E) là 90% hoặc 100% ở lần xuất hiện sau cùng
đáp án bạn chọn T10 là 80%, là sao?
====
cái này chắc phải sử dụng vba quá

lấy con số đó làm căn cứ tính toán(đếm) bạn à, không phải là kết quả.
câu 1b thực chất thì cùng ý nghĩa với câu 1a, mình soạn ra đó để mọi người xem cách tính nào dễ hơn thì tính thôi
 
lấy con số đó làm căn cứ tính toán(đếm) bạn à, không phải là kết quả.
câu 1b thực chất thì cùng ý nghĩa với câu 1a, mình soạn ra đó để mọi người xem cách tính nào dễ hơn thì tính thôi

chẳng thể hiểu nổi??? số 90%, 100% đó để làm cái gì
tôi nghĩ để có lời giải bạn nên giải thích rỏ ràng hơn
 
chẳng thể hiểu nổi??? số 90%, 100% đó để làm cái gì
tôi nghĩ để có lời giải bạn nên giải thích rỏ ràng hơn

cột trạng thái đưa ra mức độ hoàn thành chỉ tiêu của từng lần bán bạn à.
mức độ hoàn thành là 90% , 100%

cũng như là điểm số của một môn học thì mỗi lần kiểm tra lại có số điểm khác nhau
nhưng khi đánh giá học lực thì tôi muốn căn cứ vào điểm kiểm tra cuối cùng để đánh giá, những điểm trước thì bỏ qua.
bài toán này nó cũng tương tự như vậy đấy
 
trong câu hỏi đâu tiên của bạn
1.a. đếm tổng số mặt hàng X145(4 chữ cái đầu tiên là X145) mà ở cột trạng thái(cột E) là 90% hoặc 100% ở lần xuất hiện sau cùng
đáp án bạn chọn T10 là 80%, là sao?

đề bài chỉ nói cột E là 90% hoặc 100% chứ đâu có nói cột E không được phép bằng 80% đâu =)) -+*/-+*/-+*/
 
trong câu hỏi đâu tiên của bạn
1.a. đếm tổng số mặt hàng X145(4 chữ cái đầu tiên là X145) mà ở cột trạng thái(cột E) là 90% hoặc 100% ở lần xuất hiện sau cùng
đáp án bạn chọn T10 là 80%, là sao?

câu b cũng vậy
1.b. đếm tổng số mặt hàng X145(4 chữ cái đầu tiên là X145) mà giá trị nhỏ nhất ở phần Trạng thái của những lần xuất hiện là >=90%
kết quả T15:T19, không có giá trị nào lớn hơn 90
====
cái này chắc phải sử dụng vba quá

câu b:
nếu không có giá trị nào lớn hơn 90 thì mặt hàng đó không được tính
tương tự ở các mặt hàng khác, nếu có >=90 thì được tính là 1
cứ như vậy ở các mặt hàng khác, nếu có >=90 thì được tính là 1
cứ như vậy ở các mặt hàng khác và khác nữa.....
rồi tổng của các số 0 và 1 đó với nhau là ra kết quả

về tính toán thủ công thì như vậy, nhưng mình muốn hỏi là có công thức nào có thể tính nhanh hơn việc làm thủ công đó không?
 
đề bài chỉ nói cột E là 90% hoặc 100% chứ đâu có nói cột E không được phép bằng 80% đâu =)) -+*/-+*/-+*/

Chịu thua bạn ạ, đầu óc lú lẫn rồi-+*/-+*/-+*/

cột trạng thái đưa ra mức độ hoàn thành chỉ tiêu của từng lần bán bạn à.
mức độ hoàn thành là 90% , 100%

cũng như là điểm số của một môn học thì mỗi lần kiểm tra lại có số điểm khác nhau
nhưng khi đánh giá học lực thì tôi muốn căn cứ vào điểm kiểm tra cuối cùng để đánh giá, những điểm trước thì bỏ qua.
bài toán này nó cũng tương tự như vậy đấy

tôi vẫn không hiêu
làm đại công thức này, nó là đếm bỏ trùng
Mã:
=SUMPRODUCT((LEFT(D6:D68,4)="X145")/COUNTIF(D6:D68,D6:D68))
bạn có 22 mã "X145-****"
 
Chịu thua bạn ạ, đầu óc lú lẫn rồi-+*/-+*/-+*/



tôi vẫn không hiêu
làm đại công thức này, nó là đếm bỏ trùng
Mã:
=SUMPRODUCT((LEFT(D6:D68,4)="X145")/COUNTIF(D6:D68,D6:D68))
bạn có 22 mã "X145-****"

đáp án đúng! nhưng chưa có điều kiện phía sau --=0 mà điều kiện phía sau mới khó nghĩ bạn à hjhj
 
dùng hàm tự tạo nha
nhớ Enable macro khi mở file
kết quả để ở H20

câu 2b thì như thế nào hả bạn?
mình chỉ thấy hàm demso được nhập vào ô H20, vậy khi mình muốn thay đổi điều kiện >=90%, 100% bằng điều kiện <=80% thì thay đổi ở đâu hả bạn? khi đó phải tạo macro như thế nào để tính được cả hai giá trị (1b và 2b) trong cùng một file excel hả bạn?
 
Lần chỉnh sửa cuối:
câu 2b thì như thế nào hả bạn?
mình chỉ thấy hàm demso được nhập vào ô H20, vậy khi mình muốn thay đổi điều kiện >=90%, 100% bằng điều kiện <=80% thì thay đổi ở đâu hả bạn? khi đó phải tạo macro như thế nào để tính được cả hai giá trị (1b và 2b) trong cùng một file excel hả bạn?
làm đại chưa kiểm tra, không biết đúng sai
 
Lần chỉnh sửa cuối:
Tác gia bài đăng thử kiểm số liệu theo file:
(Mình xài macro sự kiện tại [G1])
-0-/.
 

File đính kèm

Lần chỉnh sửa cuối:
file bài trước có code sai
Mã:
darr = dic.keys
sửa lại
darr = dic.items
 

File đính kèm

mình có vài câu hỏi đã ghi sẵn trong file excel gửi kèm, do câu hỏi tương đối phức tạp nên mình không thể diễn đạt bằng lời tại đây được. mong các ace gpe xem file và giải đáp --=0
Câu a, CT tại G6
Mã:
G6=OR(E6=0.9,E6=1)*(COUNTIF(D6:$D$68,D6)=1)*(LEFT(D6,4)="X145")
Bạn fill xuống, rồi sum cột G lại
Câu b, CT tại H6:
Mã:
H6=(MIN(IF($D$6:$D$68=D6,$E$6:$E$68))>=0.9)*(COUNTIF($D$6:D6,D6)=1)*(LEFT(D6,4)="X145")
Ctrl+Shift+Enter, bạn fill xuống, rồi sum cột H lại
 
Lần chỉnh sửa cuối:
Nếu dùng công thức thì tạo các cột phụ
 

File đính kèm

file bài trước có code sai
Mã:
darr = dic.keys
sửa lại
darr = dic.items

cảm ơn bạn, kết quả thật chính xác --=0

nhưng mình có 2 vấn đề cần hỏi:

+ trong công thức =demmin($D$6:$E$48,"X145",0.9,1) thì có vùng dữ liệu là $D$6:$E$48 chính là cột mặt hàng với cột trạng thái liền kề nhau. nếu mà hai cột đó không đặt liền kề trong bảng excel thì công thức sẽ báo lỗi ngay. vậy làm sao để không bị lỗi này khi 2 cột không ở liền kề nhau? vùng dữ liệu $D$6:$E$48 lúc đó sẽ được nhập như thế nào?

+ trong công thức =demmin($D$6:$E$48,"X145",0.9,1) thì vùng dữ liệu đang là $D$6:$E$48. nếu mình chọn quá vùng dữ liệu thành $D$6:$E$50 chẳng hạn là công thức bị lỗi ngay. có cách nào khắc phục không bạn trong khi vẫn muốn chọn vùng dữ liệu vượt quá vùng dữ liệu thực tế có. (để khi nhập thêm data vào thì nó tự tính thêm phần mới bổ xung mà không cần phải chỉnh lại công thức nữa)
 
Lần chỉnh sửa cuối:
Câu a, CT tại G6
Mã:
G6=OR(E6=0.9,E6=1)*(COUNTIF(D6:$D$68,D6)=1)*(LEFT(D6,4)="X145")
Bạn fill xuống, rồi sum cột G lại
Câu b, CT tại H6:
Mã:
H6=(MIN(IF($D$6:$D$68=D6,$E$6:$E$68))>=0.9)*(COUNTIF($D$6:D6,D6)=1)*(LEFT(D6,4)="X145")
Ctrl+Shift+Enter, bạn fill xuống, rồi sum cột H lại

cảm ơn bạn nhé--=0

nhưng có cách nào gộp công thức lại để không phải dùng đến cột phu không bạn?
 
cảm ơn bạn, kết quả thật chính xác --=0

nhưng mình có 2 vấn đề cần hỏi:

+ trong công thức =demmin($D$6:$E$48,"X145",0.9,1) thì có vùng dữ liệu là $D$6:$E$48 chính là cột mặt hàng với cột trạng thái liền kề nhau. nếu mà hai cột đó không đặt liền kề trong bảng excel thì công thức sẽ báo lỗi ngay. vậy làm sao để không bị lỗi này khi 2 cột không ở liền kề nhau? vùng dữ liệu $D$6:$E$48 lúc đó sẽ được nhập như thế nào?

+ trong công thức =demmin($D$6:$E$48,"X145",0.9,1) thì vùng dữ liệu đang là $D$6:$E$48. nếu mình chọn quá vùng dữ liệu thành $D$6:$E$50 chẳng hạn là công thức bị lỗi ngay. có cách nào khắc phục không bạn trong khi vẫn muốn chọn vùng dữ liệu vượt quá vùng dữ liệu thực tế có. (để khi nhập thêm data vào thì nó tự tính thêm phần mới bổ xung mà không cần phải chỉnh lại công thức nữa)
tạo cho bạn hàm DemSo, 4 trong một
 

File đính kèm

tạo cho bạn hàm DemSo, 4 trong một

bạn cho mình hỏi thêm nhé:
trước đây thì mình tính dựa vào điều kiện >= hoặc là <=
[TABLE="width: 286"]
[TR]
[TD]1.b. đếm giá trị nhỏ nhất >= 90%[/TD]
[/TR]
[TR]
[TD]2.b. đếm giá trị nhỏ nhất <= 80%[/TD]
[/TR]
[/TABLE]
nhưng bây giờ mình muốn dùng điều kiện = thì làm như thế nào hả bạn?
cụ thể thì mình muốn tính với từng điều kiện sau: =10%, =50%, =80%, =90%, =100% thì công thức sẽ như thế nào?
bạn xem giúp mình với nhé--=0
 
làm luôn 6 trong 1, khai báo tham số theo hướng dẩn, bạn kiểm tra lại kết quả, nếu chưa được thì báo
 

File đính kèm

cảm ơn bạn nhé--=0

nhưng có cách nào gộp công thức lại để không phải dùng đến cột phu không bạn?
Mã:
1a=SUMPRODUCT((LEFT(D$6:D$68;4)="X145")*(COUNTIF(OFFSET(D$6:D$68;ROW(D$6:D$68)-ROW(D$6);0);D$6:D$68)=1)*(E$6:E$68>=90%))
Mã:
1b=SUM((LEFT(D$6:D$68;4)="X145")*(COUNTIF(OFFSET(D$6:D$68;ROW(D$6:D$68)-ROW(D$6);0);D$6:D$68)=1)*(MMULT(--(D$6:D$68=TRANSPOSE(D$6:D$68));--(E$6:E$68>=90%))=COUNTIF(D$6:D$68;D$6:D$68)))
ctrl+shift+enter
 
Mã:
1a=SUMPRODUCT((LEFT(D$6:D$68;4)="X145")*(COUNTIF(OFFSET(D$6:D$68;ROW(D$6:D$68)-ROW(D$6);0);D$6:D$68)=1)*(E$6:E$68>=90%))
Mã:
1b=SUM((LEFT(D$6:D$68;4)="X145")*(COUNTIF(OFFSET(D$6:D$68;ROW(D$6:D$68)-ROW(D$6);0);D$6:D$68)=1)*(MMULT(--(D$6:D$68=TRANSPOSE(D$6:D$68));--(E$6:E$68>=90%))=COUNTIF(D$6:D$68;D$6:D$68)))
ctrl+shift+enter

câu 2a thì mình chỉ thay điều kiện >=90% thành điều kiện <=80% là ra kết quả đúng
câu 2b thì mình cũng thay điều kiện >=90% thành điều kiện <=80% thì lại không ra kết quả đúng bạn à.

- bạn xem lại hộ mình câu 2b được không?
- trong trường hợp mình muốn tính theo điều kiện = hay > hay < (không phải là >= hoặc <= như hiện tại nữa) thì công thức sẽ như thế nào hả bạn?
 
Lần chỉnh sửa cuối:
mà bạn ơi, hiện tại mình đang tính toán với điều kiện >= hay <=
bây giờ muốn tính toán với điều kiện > hay < thì sửa code như thế nào hả bạn?
thì bạn tính > bằng >= trừ đi =
và < bằng <= trừ đi =
còn nếu muốn rắc rối thì viết hàm 10 trong 1
 
thì bạn tính > bằng >= trừ đi =
và < bằng <= trừ đi =
còn nếu muốn rắc rối thì viết hàm 10 trong 1

oh vậy à--=0 vậy mà mình cứ tưởng sửa code dễ lắm.
thực ra thì không cần đến 10 trong 1 đâu bạn HieuCD!
chỉ cần 3 trong 1 là đủ thôi. >, <, =
cái này đối với bạn chắc là chỉ cần một nốt nhạc là xong nhỉ?
 
bạn xem file, cách nhập tương tự, hàm trước đổi tên lại cho dể nhập hơn
 

File đính kèm

bạn xem file, cách nhập tương tự, hàm trước đổi tên lại cho dể nhập hơn

bạn ơi giả sử ở cột Mặt hàng (cột D) ngoài mã X145 và X131 ra còn có thêm mã X137A nữa thì sửa code như thế nào hả bạn?.
Làm sao để có thể vừa tính cho trường hợp mã hàng có 4 ký tự đồng thời cũng tính được cho cả mã hàng có 5 ký tự? (Mã X145 và X131 thì có 4 ký tự nhưng mà mã X137A lại có 5 ký tự)
 
bạn ơi giả sử ở cột Mặt hàng (cột D) ngoài mã X145 và X131 ra còn có thêm mã X137A nữa thì sửa code như thế nào hả bạn?.
Làm sao để có thể vừa tính cho trường hợp mã hàng có 4 ký tự đồng thời cũng tính được cho cả mã hàng có 5 ký tự? (Mã X145 và X131 thì có 4 ký tự nhưng mà mã X137A lại có 5 ký tự)
bạn sửa lại một chút để tìm bao nhiêu ký tự cũng được
Mã:
For i = n To 1 Step -1
    If Left(arr(i, 1), [COLOR=#ff0000]4[/COLOR]) = cr Then
        If Not dic.exists(arr(i, 1)) Then

sửa thành

For i = n To 1 Step -1
    If Left(arr(i, 1), [COLOR=#ff0000]Len(cr)[/COLOR]) = cr Then
        If Not dic.exists(arr(i, 1)) Then
 
bạn sửa lại một chút để tìm bao nhiêu ký tự cũng được
Mã:
For i = n To 1 Step -1
    If Left(arr(i, 1), [COLOR=#ff0000]4[/COLOR]) = cr Then
        If Not dic.exists(arr(i, 1)) Then

sửa thành

For i = n To 1 Step -1
    If Left(arr(i, 1), [COLOR=#ff0000]Len(cr)[/COLOR]) = cr Then
        If Not dic.exists(arr(i, 1)) Then

thanks bạn nhiều nhé
 
Lần chỉnh sửa cuối:
Số 4 thì mình đoán là số ký tự, nhưng còn Len(cr) thì mình không hiểu?
khi muốn tìm 5, 6 ký tự chẳng hạn thì chỗ Len(cr) mình nhập gì vào đó?
cr là ký tự cần tìm, nếu là X145 thì len(cr)=4, nếu là X137A thì len(cr)=5, luôn trả về đúng số ký tự cần lấy trong hàm Left
 
Trường hơp này có thể dùng Left(i,1) Like cr & "*"
 

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

Back
Top Bottom