vuanhmy123
Thành viên hoạt động



- Tham gia
- 1/10/11
- Bài viết
- 100
- Được thích
- 4
- Giới tính
- Nam



Thử công thứcChào cả nhà,
Em đang có bài toán liên quan về hàm "if" trong excel nhưng em đang không biết cách sử dụng nó. Nội dung em ghi chi tiết trong file đính kèm.
Em cảm ơn
Aj4 =-MOD(SUM(E4:AI4),-D4)



Không đúng rồi bác ơi.Thử công thứcMã:Aj4 =-MOD(SUM(E4:AI4),-D4)



"Nếu tôi khong lầm thì đây là bảng tính vật liệu sản xuất.
Điển hình là mỗi cái khuôn chỉ đúc được 50.000 món.
Ta có cột D là quy định số sản xuất (50.000); cột E là số đã sản xuất từ tháng trước; cột F, G, ... là số sản xuất ngày 1, 2, 3,... của tháng này.
Nếu như vậy thì bài này tương đối rắc rối. Cần phải chỉnh cách thiết kế bảng chứ công thức suông không đủ.
Nếu trong tháng tối đa chỉ thay mẫu 1 lần thì cần thêm 1 cột cho biết ngày thay. Nếu nhiều lần thì bắt buộc phải thêm một bảng phụ cho biết những ngày thay.



Hiện tại thì e đã làm thêm 1 sheet bên cạnh "APR ngày thay dụng cụ". mục đích nhìn vào đó là biết được ngày thay. ngày thay thì e đánh dấu "x".Nếu trong tháng tối đa chỉ thay mẫu 1 lần thì cần thêm 1 cột cho biết ngày thay. Nếu nhiều lần thì bắt buộc phải thêm một bảng phụ cho biết những ngày thay.
Nhấn Ctrl+Shift+EnterChào cả nhà,
Em đang có bài toán liên quan về hàm "if" trong excel nhưng em đang không biết cách sử dụng nó. Nội dung em ghi chi tiết trong file đính kèm.
Em cảm ơn
AJ4=D4-SUM(INDEX(INDEX(F4:AI4,,MAX(IFERROR(MATCH(ROW($1:$5),INT(SUMIF(OFFSET(F4,,,,COLUMN(A$1:AD$1)),">0")/D4),0)+1,""))):AI4,1,))
AJ4=D4-SUM(INDEX(INDEX(F4:AI4,,MAX(IF('APR thay dụng cụ'!D4:AG4="x",COLUMN(A$1:AD$1)))):AI4,,))
Công thức của mình tính tự động đến đúng 50.000 là ngừng máy thay mớiKhông đúng rồi bác ơi.
Ngày thay dụng cụ của MAZ64004601 là vào ngày 23/Apr. vậy số lượng tiêu chuẩn của mỗi mã hàng là 50.000, khi sản phẩm chạy tới 50.000 thì ta phải thay dụng cụ mới. Mà sum(23/Apr-30/Apr) = 7.019. tức là 50.000 - 7.019 = 42.981. (kết quả tại cột remain)
=D4-SUM(INDEX(E4:AI4,0,IFERROR(LOOKUP("x",'APR thay dụng cụ'!D4:AG4,COLUMN(B:AF)),0)):$AI4)
Xem lại dòng 15Nhấn Ctrl+Shift+Enter
Hoặc theo sheet bên cạnh:
PHP:AJ4=D4-SUM(INDEX(INDEX(F4:AI4,,MAX(IF('APR thay dụng cụ'!D4:AG4="x",COLUMN(A$1:AD$1)))):AI4,,))

Công thức của bác ra 2 kết quả khác nhauNhấn Ctrl+Shift+Enter
Khi nào đủ 50.000 thì tự động lấy cột kế tiếp.
Hoặc theo sheet bên cạnh:PHP:AJ4=D4-SUM(INDEX(INDEX(F4:AI4,,MAX(IFERROR(MATCH(ROW($1:$5),INT(SUMIF(OFFSET(F4,,,,COLUMN(A$1:AD$1)),">0")/D4),0)+1,""))):AI4,1,))
PHP:AJ4=D4-SUM(INDEX(INDEX(F4:AI4,,MAX(IF('APR thay dụng cụ'!D4:AG4="x",COLUMN(A$1:AD$1)))):AI4,,))

Công thức của bác ngắn hơn của mình, kkkCông thức của mình tính tự động đến đúng 50.000 là ngừng máy thay mới
Nếu dựa vào sheet "APR thay dụng cụ", thì dòng 4 phải có ngày thay là 20 không phải là 23 (xem công thức kiểm tra trong file)
Coi như sheet "APR thay dụng cụ" đúng:Mã:=D4-SUM(INDEX(E4:AI4,0,IFERROR(LOOKUP("x",'APR thay dụng cụ'!D4:AG4,COLUMN(B:AF)),0)):$AI4)
Xem lại dòng 15![]()
Công thức nầy do bạn QuocGiaCan chỉ mình đóCông thức của bác ngắn hơn của mình, kkk
Không có kết quả kiểm chứng, chủ bài nói nhiều nhưng em không chuyên nên khó hiểuCông thức của mình tính tự động đến đúng 50.000 là ngừng máy thay mới
Nếu dựa vào sheet "APR thay dụng cụ", thì dòng 4 phải có ngày thay là 20 không phải là 23 (xem công thức kiểm tra trong file)
Coi như sheet "APR thay dụng cụ" đúng:Mã:=D4-SUM(INDEX(E4:AI4,0,IFERROR(LOOKUP("x",'APR thay dụng cụ'!D4:AG4,COLUMN(B:AF)),0)):$AI4)
Xem lại dòng 15![]()
Tôi cũng không rõ thớt có "chuyên" hay không nữa.Không có kết quả kiểm chứng, chủ bài nói nhiều nhưng em không chuyên nên khó hiểu![]()

Phản đối! câu nói trên hoàn toàn thất thiệt! khà khà khà.Công thức nầy do bạn QuocGiaCan chỉ mình đó![]()






công thức của bác thì chuẩn đúng ý em luôn rồi, cơ mà khó hiểu quá, toàn hàm nâng cao kết hợp với nhau, indirect , address, row.Công thức của bác ra 2 kết quả khác nhau
Mình góp công thức thường, không phải hàm mảng, nhẹ máy hơnvà nó giống kết quả của thủ topic hơn khi sheet bên cạnh chưa đánh dấu "x"
tại AJ4==D4-IFERROR(SUM(INDIRECT(ADDRESS(ROW(),DAY(LOOKUP(2,1/('APR thay dụng cụ'!D4:AG4="x"),'APR thay dụng cụ'!$D$3:$AG$3))+5,1)&":"&ADDRESS(ROW(),35,1))),SUM(E4:AI4))
Xem file dòng 15Không có kết quả kiểm chứng, chủ bài nói nhiều nhưng em không chuyên nên khó hiểu![]()
Công thức ngắn là nhờ chiêu Index(...,Iferror(...,0))Phản đối! câu nói trên hoàn toàn thất thiệt! khà khà khà.
Anh xuất chiêu giúp bạn, chứ làm gì có người nào xen tay xen chân vào.
Chúc anh em ngày vui.
(mấy bửa lu bu không vào chơi với anh em được, nhiều bài vui quá, tiếc thật!)

Vậy bỏ luôn khúc sau đuôi từ dấu ":" được không anh!?Công thức ngắn là nhờ chiêu Index(...,Iferror(...,0))



Không tìm được cách nếu dùng hàm IndexVậy bỏ luôn khúc sau đuôi từ dấu ":" được không anh!?
À! không được rồi, công thức anh là chuẩn quá rồi! không bớt thêm được.
hihi ^o^

Bạn kiểm tra lại xem sao vì hàm LOOKUP nó trả về kết quả sau cùng của vùng tìm kiếm mà, mình cũng sử dụng LOOKUP để lấy cái "x" sau đócông thức của HieuCD
=D5-SUM(INDEX(E5:AI5,0,IFERROR(LOOKUP("x",'APR thay dụng cụ'!D5:AG5,COLUMN(B:AF)),0)):$AI5)
công thức này ngắn gọn, nhưng nếu ngày thay dụng cụ 1 tháng mà có 2 lần thì tại ngày cuối cùng có đánh dấu "x" thì công thức sẽ vẫn lấy "x" của ngày đầu tiên.

Bạn chỉ cần chỉnh một chút trong công thức Lookup() của anh @HieuCD là chọn được ngày có dấu "x" sau cùng:công thức của HieuCD
=D5-SUM(INDEX(E5:AI5,0,IFERROR(LOOKUP("x",'APR thay dụng cụ'!D5:AG5,COLUMN(B:AF)),0)):$AI5)
công thức này ngắn gọn, nhưng nếu ngày thay dụng cụ 1 tháng mà có 2 lần thì tại ngày cuối cùng có đánh dấu "x" thì công thức sẽ vẫn lấy "x" của ngày đầu tiên. công thức này e thấy cũng khá là ổn rồi, vì 1 tháng cùng lắm là thay dụng cụ 1 lần thôi.
cảm ơn cả nhà rất nhiều. 3 rưỡi sáng vẫn có mem trả lời câu hỏi . <3
AJ4=D4-SUM(INDEX(E4:AI4,,IFERROR(LOOKUP(2,1/("x"='APR thay dụng cụ'!D4:AG4),ROW($2:$31)),)):AI4)

Của anh chuẩn quá rồi! cũng chịu thua rồi!Không tìm được cách nếu dùng hàm Index, dùng Offset thì hơi dài. Khà khà chịu thua chờ bạn ra tay
![]()



Đưa ra có 1 kết quả trong khi dữ liệu dễ thay đổi thì thuaXem file dòng 15



LOOKUP(2,1/("x"='APR thay dụng cụ'!D4:AG4),ROW($2:$31)Bạn chỉ cần chỉnh một chút trong công thức Lookup() của anh @HieuCD là chọn được ngày có dấu "x" sau cùng:
Chỉ Enter, rồi fill xuống.Mã:AJ4=D4-SUM(INDEX(E4:AI4,,IFERROR(LOOKUP(2,1/("x"='APR thay dụng cụ'!D4:AG4),ROW($2:$31)),)):AI4)
Xem file kèm.
hihi ^o^

Để trả lời cho các thắc mắc của bạn, bạn theo link sau tìm hiểu về hàm Lookup(2,1/.....):LOOKUP(2,1/("x"='APR thay dụng cụ'!D4:AG4),ROW($2:$31)
LOOKUP(lookup_value, lookup_vector, [result_vector])
lookup( giá trị tìm kiếm, vùng tìm kiếm, vùng chứa dữ liệu trả về)
tại sao : giá trị tìm kiếm : 2 → cái này khó hiểu
vùng tìm kiếm: 1/("x"='APR thay dụng cụ'!D4:AG4) → cái này khó hiểu
giá trị trả về : ROW($2:$31)
và cuối cùng là :AI4
e nghĩ Sum(index(E4:AI4) là nó đã bao gồm cả đoạn cuối là AI4 rồi chứ