Gộp công thức trong excel (1 người xem)

Liên hệ QC

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

phamdung01

Thành viên chính thức
Tham gia
3/9/10
Bài viết
74
Được thích
5
Chào anh (chị) trong diễn đàn, em có cấu hỏi muốn tham khảo ý kiến của anh (chị) như sau ạ

ví dụ như hình dưới thì tại:
D1 là kết quả của công thức A1-B1
F1 là kết quả của công thức B1-A1
G1 là kết quả của công thức D1-F1
I1 là kết quả của công thức IF(AND(D1<=F1,D1>=G1),D1,)

Anh (chị) cho em hỏi là làm cách nào để chuyển công thức tại các ô D1, F1, G1 về ô I1 sao cho kết quả tại ô I1 không thay đổi, có nghĩa là ô I1 là gộp các công thức D1, F1, G1, I1.

Capture4.PNG----->Capture3.PNG

Anh (chị) có thể tham khảo file đính kèm

Em cảm ơn
 

File đính kèm

  • Capture.PNG
    Capture.PNG
    12.2 KB · Đọc: 6
  • Capture 2.PNG
    Capture 2.PNG
    13.2 KB · Đọc: 4
  • Book1.xlsx
    Book1.xlsx
    13.6 KB · Đọc: 9
Chắc là:

=MIN(A1-B1,0)
 
Chào anh (chị) trong diễn đàn, em có cấu hỏi muốn tham khảo ý kiến của anh (chị) như sau ạ

ví dụ như hình dưới thì tại:
D1 là kết quả của công thức A1-B1
F1 là kết quả của công thức B1-A1
G1 là kết quả của công thức D1-F1
I1 là kết quả của công thức IF(AND(D1<=F1,D1>=G1),D1,)

Anh (chị) cho em hỏi là làm cách nào để chuyển công thức tại các ô D1, F1, G1 về ô I1 sao cho kết quả tại ô I1 không thay đổi, có nghĩa là ô I1 là gộp các công thức D1, F1, G1, I1.

View attachment 164005----->View attachment 164006

Anh (chị) có thể tham khảo file đính kèm

Em cảm ơn
Công thức của bạn sao mà lằng nhằng vậy, bạn tập rút gọn lại là ra ct ngay ấy mà
=IF(A1<=B1,A1-B1,0)
 

Vâng, em cảm ơn anh, đối với ví dụ này của em đưa ra là đúng rồi ạ nhưng ý em là tìm công thức chung để gộp các công thức khác tại các ô D1, F1, G1, I1, nghĩa là có công thức nào mà có thể liên kết các công thức khách nhau lại với nhau như ví dụ em đã nêu ở trường hợp trên
 
Công thức của bạn sao mà lằng nhằng vậy, bạn tập rút gọn lại là ra ct ngay ấy mà
=IF(A1<=B1,A1-B1,0)

Vâng, cảm ơn anh, với ví dụ em đưa ra thì dùng như anh là đúng ạ, nhưng làm thế nào để có công thức tổng quát để tính không ạ? nếu như tại các ô D1, F1, G1, I1 không phải là công thức em đưa ra như trên mà là một công thức khác thì có cách nào không ạ

em cảm ơn anh
 
Vâng, em cảm ơn anh, đối với ví dụ này của em đưa ra là đúng rồi ạ nhưng ý em là tìm công thức chung để gộp các công thức khác tại các ô D1, F1, G1, I1, nghĩa là có công thức nào mà có thể liên kết các công thức khách nhau lại với nhau như ví dụ em đã nêu ở trường hợp trên
Công thức khác cụ thể là công thức nào, biết thì mới làm được chứ.
 
Em cảm ơn anh đã góp ý ạ, trong file đính kèm có nội dung câu hỏi và dữ liệu ạ, anh giúp em với
File bạn dữ liệu nhiều lắm không? Chưa chắc nặng là do công thức đâu nha. Cần phải xác định chính xác nguyên nhân khiến file nặng đấy. Lúc đó mới có giải pháp hợp lý được.
chỉ có 1 hàm match ở CR1 thõa hết 7 điêu kiện của bạn hả? bạn nói thiệt chứ???
hàm match là nhẹ nhất rồi, nếu chạy ko nổi phải xài vba
í lâu lắm mới thấy anh. Chắc phải xài VBA quá anh ơi.
 
File bạn dữ liệu nhiều lắm không? Chưa chắc nặng là do công thức đâu nha. Cần phải xác định chính xác nguyên nhân khiến file nặng đấy. Lúc đó mới có giải pháp hợp lý được.

í lâu lắm mới thấy anh. Chắc phải xài VBA quá anh ơi.

Dạ, file của em năng là do giữ liệu quá nhiều ạ, nếu tiện anh có thể giúp em viết Macro trong trường hợp này là nối các công thức hay gộp các công thức lại với nhau được không, vì kết quả của ô cuối cùng là tổng hợp của các kết quả của các ô phía trước ạ

Cảm ơn anh
 
Nhìn 7 điều kiện này sao rối quá, làm đại.
Mình đặt 7 cái name (DK_1, DK_2...) tương ứng, trong đó đk 4 tách thành DK_41 - DK_47
Công thức cụ thể của từng name xem trong file nhé.
Tại O1 mình dán kết quả:

=IF(AND(DK_1,DK_2,DK_3,OR(DK_41,DK_42,DK_43,DK_44,DK_45,DK_46,DK_47),DK_5,DK_6,DK_7),M1,"")

Copy xuống.

Dòng thứ 2 sao kết quả của bạn là thoả, trong khi điều kiện 1 không thoả ? (2 ô liên tiếp nhau có giá trị liên tiếp: -45 và -46)

Hiện tại trong các name mình không cố định cột. Nếu trong file thực tế có thay đổi vị trí cột kết quả thì vào từng name sửa nhé (VD: A1:G1 thành $A1:$G1). (Vào từng đk liệt kê ở vùng phía dưới, sửa rồi past ngược lại và name cho nhanh)

Nếu file còn nặng quá thì hô lên, làm VBA thôi.
 

File đính kèm

Nhìn 7 điều kiện này sao rối quá, làm đại.
Mình đặt 7 cái name (DK_1, DK_2...) tương ứng, trong đó đk 4 tách thành DK_41 - DK_47
Công thức cụ thể của từng name xem trong file nhé.
Tại O1 mình dán kết quả:

=IF(AND(DK_1,DK_2,DK_3,OR(DK_41,DK_42,DK_43,DK_44,DK_45,DK_46,DK_47),DK_5,DK_6,DK_7),M1,"")

Copy xuống.

Dòng thứ 2 sao kết quả của bạn là thoả, trong khi điều kiện 1 không thoả ? (2 ô liên tiếp nhau có giá trị liên tiếp: -45 và -46)

Hiện tại trong các name mình không cố định cột. Nếu trong file thực tế có thay đổi vị trí cột kết quả thì vào từng name sửa nhé (VD: A1:G1 thành $A1:$G1). (Vào từng đk liệt kê ở vùng phía dưới, sửa rồi past ngược lại và name cho nhanh)

Nếu file còn nặng quá thì hô lên, làm VBA thôi.

Dạ, cảm ơn anh,
1. Do em không hiểu nên trong quá trình sửa em có thay vùng dữ liệu của các ô có ghi TRUE, FALSE nhưng khi click vào chưa kịp thay, ấn enter thì ô giá trị đấy hiển thị VALUE

2. Ngoài ra anh có thể giúp em thêm một điều kiện nữa là tại O1 hiển thị giá trị của M1 nếu L1 là giá trị dương, O1 hiển thị giá trị của N1 nếu L1 là giá trị âm ạ

Em tim hiểu từ sáng tới giờ nhưng ko có kết quả, anh giúp em hai vấn đề trên với ạ, em cảm ơn anh
 

File đính kèm

Thì thêm 1 IF ở đầu, còn lại giữ nguyên:

Mã:
=[B]IF(L1<0,N1,[/B]IF(AND(DK_1,DK_2,DK_3,OR(DK_41,DK_42,DK_43,DK_44,DK_45,DK_46,DK_47),DK_5,DK_6,DK_7),M1,""))

Trả về #VALUE do công thức mảng, sau khi chỉnh sửa xong nhấn Ctrl-shift-enter
 
Thì thêm 1 IF ở đầu, còn lại giữ nguyên:

Mã:
=[B]IF(L1<0,N1,[/B]IF(AND(DK_1,DK_2,DK_3,OR(DK_41,DK_42,DK_43,DK_44,DK_45,DK_46,DK_47),DK_5,DK_6,DK_7),M1,""))

Vâng, nếu dùng công thức trên thì kết quả trả về lại không đúng với những điều kiện đặt ra ạ

Capture 5.jpg

Trả về #VALUE do công thức mảng, sau khi chỉnh sửa xong nhấn Ctrl-shift-enter

Nếu em copy công thức sang cột khác thì giá trị trả về là #DVI/0!, Làm cách nào để có thể copy công thức sang một cột khác nữa ạ

Em cảm ơn anh
 
Nếu em copy công thức sang cột khác thì giá trị trả về là #DVI/0!, Làm cách nào để có thể copy công thức sang một cột khác nữa ạ
Em cảm ơn anh
Theo hướng dẫn này nè
Hiện tại trong các name mình không cố định cột. Nếu trong file thực tế có thay đổi vị trí cột kết quả thì vào từng name sửa nhé (VD: A1:G1 thành $A1:$G1). (Vào từng đk liệt kê ở vùng phía dưới, sửa rồi past ngược lại và name cho nhanh)
 
Theo hướng dẫn này nè

Vâng, hiện tại ở các điều kiện em sửa như sau mà copy sang cột khác hày chèn cột vào vẫn bị lỗi ạ

- DK1: =AND(AND(MATCH(ABS($A1:$G1),ABS($A1:$G1),0)={1,2,3,4,5,6,7}),AND(ABS($A1:$F1-$B1:$G1)<>1),AND(ABS($A1:$G1)>1))
- DK2: =AND(ABS(MOD($K1,$L1))>0,ABS(MOD($L1,$K1))>0)
- DK3: =$I1=$K1
- DK41: =OR(AND($A1:$G1<0),AND($A1:$G1>0))
- DK42: =AND(AND($A1:$D1>0),AND($E1:$G1<0))
- DK43: =AND(AND($A1:$D1<0),AND($E1:$G1>0))
- DK44: =AND(AND($A1:$B1>0),AND($C1:$D1<0),AND($E1:$F1>0),$G1<0)
- DK45: =AND=AND(AND($A1:$B1<0),AND($C1:$D1>0),AND($E1:$F1<0),$G1>0)
- DK46: =AND(AND($A1:$B1<0),AND($C1:$D1>0),AND($E1:$F1<0),$G1>0)
- DK47: =AND(AND($A1:$B1<0),AND($C1:$D1>0),AND($E1:$F1>0),$G1<0)
- DK5: =OR(AND($G1>0,$L1>0),AND($G1<0,$L1<0))
- DK6: =$L1<26
-DK7: =AND(ABS(MOD($A1,$B1))>0,ABS(MOD($C1,$D1))>0,ABS(MOD($E1,$F1))>0,ABS(MOD($A1,$C1))>0,ABS(MOD($C1,$E1))>0,ABS(MOD($E1,$G1))>0,ABS(MOD($B1,$A1))>0,ABS(MOD($D1,$C1))>0,ABS(MOD($F1,$E1))>0,ABS(MOD($C1,$A1))>0,ABS(MOD($E1,$C1))>0,ABS(MOD($G1,$E1))>0)

Ngoài ra, anh có thể giúp em viết lại công thức để thêm một điều kiện nữa là tại O1 hiển thị giá trị của M1 nếu L1 là giá trị dương, O1 hiển thị giá trị của N1 nếu L1 là giá trị âm ạ, công thức anh viết giúp em liệt kê cả những số không thỏa mãn điều kiện ạ (=IF(L1<0,N1,IF(AND(DK_1,DK_2,DK_3,OR(DK_41,DK_42,DK_43,DK_44,DK_45,DK_46,DK_47),DK_5,DK_6,DK_7),M1,"")))

Anh xem file đính kèm ạ, Em cảm ơn anh
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn chưa sửa trong Name đúng không?
Nhớ là name này là name có địa chỉ tương đối theo dòng. Nếu thay đổi dòng thì Name cũng thay đổi theo. VD:
Trong name có địa chỉ $A1:$G1. Khi tạo name này, hoặc copy chỉnh sửa, ô hiện hành phải nằm tại dòng 1.
Tôi đã sửa name cho bạn rồi. Có thêm 1 IF ở đầu cho đk L1.
 

File đính kèm

Bạn chưa sửa trong Name đúng không?
Nhớ là name này là name có địa chỉ tương đối theo dòng. Nếu thay đổi dòng thì Name cũng thay đổi theo. VD:
Trong name có địa chỉ $A1:$G1. Khi tạo name này, hoặc copy chỉnh sửa, ô hiện hành phải nằm tại dòng 1.
Tôi đã sửa name cho bạn rồi. Có thêm 1 IF ở đầu cho đk L1.

Vâng, em cảm ơn anh ạ
 
cho mình hỏi chút là file của bạn là file gì mà công thức nó lằng nhằng đến vậy? từ R1:X1 có cần thiết phải là or(min(A1)>0;max(B1)>0);1;3) không hay có thể cho nó gọn hơn nữa. với lại bạn nên đưa file gốc lên (nếu ko có bí mật gì) chứ đưa ra cái ví dụ trời ơi đất hỡi thế này thì bố ai mà hiểu nổi mục đích của cái file này dùng để làm gì. Phải hiểu mục đích cuối cùng của nó rồi mới tìm ra con đường nhanh nhất để đến được.
Còn cách làm giảm dung lượng file, nếu dung lượng lớn do công thức quá nhiều thì bạn có thể copy và patse dưới dạng giá trị. còn nếu dung lượng lớn do dữ liệu thì bạn có thể dùng csv, txt hoặc file nào đó tương tự.
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom