Nhờ giúp: Chuyển công thức dài thành vba (3 người xem)

Liên hệ QC

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

ngocki2016

Thành viên chính thức
Tham gia
4/7/16
Bài viết
78
Được thích
4
em có cpông thức sau: =IFERROR(IF($D$1="Hiện Tên Tuổi";SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001)&TUOI("tự trần bản mệnh sinh ư";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(E10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("niên";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("hành canh";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI(F10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("tuế";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001);" ";"");"");"")&IF($D$1="Hiện Sao";IFERROR(SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001)&TUOI("tự trần bản mệnh sinh ư";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(E10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("niên";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("hành canh";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI(F10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("tuế";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&IFERROR(TUOI("kim niên chính trực";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(G10;'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI("tinh quân";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&L10&TUOI("bát quái";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(H10;'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI("cung thần quan";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001);"");" ";"");"");"")&IF($D$1="Hiện Mỗi Tên";IFERROR(SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001);" ";"");"");"")&IF($D$1="Hiện Bán Khoán";SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001)&TUOI("tự trần bản mệnh sinh ư";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(E10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("niên";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("hành canh";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI(F10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("tuế";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001);" ";"");"") được điền từ ô J10:I110. em muốn chuyển thành vba cho đỡ nặng file. có thầy nào rộng lòng hướng dẫn. em xin cảm ơn ạ
 
em có cpông thức sau: =IFERROR(IF($D$1="Hiện Tên Tuổi";SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001)&TUOI("tự trần bản mệnh sinh ư";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(E10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("niên";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("hành canh";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI(F10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("tuế";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001);" ";"");"");"")&IF($D$1="Hiện Sao";IFERROR(SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001)&TUOI("tự trần bản mệnh sinh ư";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(E10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("niên";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("hành canh";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI(F10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("tuế";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&IFERROR(TUOI("kim niên chính trực";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(G10;'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI("tinh quân";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&L10&TUOI("bát quái";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(H10;'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI("cung thần quan";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001);"");" ";"");"");"")&IF($D$1="Hiện Mỗi Tên";IFERROR(SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001);" ";"");"");"")&IF($D$1="Hiện Bán Khoán";SUBSTITUTE(IFERROR(VLOOKUP(B10;'TĐ-TÊN'!$K$3:$L$10001;2;0);"")&HO(O10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$C$3:$D$10001)&LOT(P10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$E$3:$F$10001)&TEN(Q10;'TĐ-TÊN'!$A$3:$B$10001;'TĐ-TÊN'!$A$3:$B$10001)&TU(N10;'TĐ-TÊN'!A3:B1001;'TĐ-TÊN'!P3:Q10001)&TUOI("tự trần bản mệnh sinh ư";'TĐ-TÊN'!A3:B10001;'TĐ-TÊN'!G3:H10001)&TUOI(E10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("niên";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("hành canh";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI(F10;'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001)&TUOI("tuế";'TĐ-TÊN'!G3:H10001;'TĐ-TÊN'!G3:H10001);" ";"");"") được điền từ ô J10:I110. em muốn chuyển thành vba cho đỡ nặng file. có thầy nào rộng lòng hướng dẫn. em xin cảm ơn ạ
cơ bản là phải có file dữ liệu xem các liên kết công thức. Dài thế này chắc mấy anh chị VBA khóc luôn.
 
cám ơn bạn nhiều khổ nỗi file không thể gửi lên được vì lý do bảo mật
- Công thức dài do dùng không hợp lý, rút ngắn lại hơn 1/2
- Tên sheet, tên điều kiện và kết quả có dấu tiếng Việt, viết VBA tốn nhiều công sức, nhiều khi không chạy được do khác bộ Font
 
- Công thức dài do dùng không hợp lý, rút ngắn lại hơn 1/2
- Tên sheet, tên điều kiện và kết quả có dấu tiếng Việt, viết VBA tốn nhiều công sức, nhiều khi không chạy được do khác bộ Font
Trong công thức có cả công thức bằng VBA, ý tác giả chắc là gán công thức chạy ra kết quả rồi cất công thức cho nhẹ đó mà.
Không biết có cách nào không anh nhỉ :D
 
Trong công thức có cả công thức bằng VBA, ý tác giả chắc là gán công thức chạy ra kết quả rồi cất công thức cho nhẹ đó mà.
Không biết có cách nào không anh nhỉ :D
Muốn nhẹ file thì copy và dán giá trị lại, khi cần thì copy công thức lại thôi
Nhìn công thức viết code cũng được nhưng ngán vụ tạo code tiếng Việt, mấy từ hán Việt không biết dùng bộ Font gì
 
Bài này là điển hình của sử dụng names. Trong công thức chỉ có vài vùng tra, đổi chúng thành names thì vừa ngắn vừa sáng sủa.
(tuy nhiên, toi vẫn chưa hiểu tại sao có vùng thì dùng địa chỉ tuyệt đối, vùng lại không)
 
Bài này là điển hình của sử dụng names. Trong công thức chỉ có vài vùng tra, đổi chúng thành names thì vừa ngắn vừa sáng sủa.
(tuy nhiên, toi vẫn chưa hiểu tại sao có vùng thì dùng địa chỉ tuyệt đối, vùng lại không)
Toàn bộ là địa chỉ tuyệt đối hết, chỉ quên bấm F4:p, và may mắn giá trị tra nằm ở đoạn dưới bảng tra nên không bị gì
 
cái này nhờ các bác viết thành vba được thì hay nhỉ
 
Muốn làm cái gì đó thì phải dựa vào quy luật, từ quy luật ta mới thiết kế File Excel mới đáp ứng được quy luật đó:

1/ Cái này gọi là tính mệnh (thuộc mạng), Can Chi, Ngũ hành theo chu kỳ lặp lại là 60 năm.
- Có 10 Can theo thứ tự: Giáp , Ất, Bính, Đinh, Mậu, Kỷ, Canh, Tân, Nhâm, Quý.
- Có 12 Chi đại diện là 12 con vật hay 12 con giáp. Gồm: Tý, Sửu, Dần, Mẹo, Thìn, Tỵ, Ngọ, Mùi, Thân, Dậu, Tuất, Hợi.

2/ Cách tính mệnh như sau: Can + Chi = Mệnh
- Can có giá trị như sau: Giáp + Ất = 1, Bính + Đinh = 2, Mậu + Kỷ = 3, Canh + Tân = 4, Nhâm + Quý = 5
- Chi có giá trị như sau:
Tý, Sửu, Ngọ, Mùi = 0
Dần, Mão, Thân, Dậu = 1
Thìn, Tỵ, Tuất, Hợi = 2

3/Giá trị của Can + Chi ứng với các Mệnh (thuộc mạng), nếu > 5 thì trừ đi 5 để ra mệnh: Kim = 1, Thủy =2, Hỏa = 3, Thổ = 4, Mộc = 5
Từ giá trị Can, Chi nêu trên: Bính + Đinh = 2 và Dần, Mão, Thân, Dậu = 1
Ta có kết quả cung mệnh của người có tuổi Bính Thân như sau: Bính + Thân = 2 + 1 = 3 (suy ra Mạng Hỏa)
 
Lần chỉnh sửa cuối:
Đây em gửi file gia lập nhờ các Bác xem chứ em nhìn công thức thấy hoa cả mắt. muốn tham khảo và nhờ các bác. xin cảm ơn
 

File đính kèm

dạ có bạn nào không ạ xin hày giúp đỡ ạ
 
Lần chỉnh sửa cuối:
Các Bạn đâu hết rồi. xin giúp mình với
 
Đã thử tổ chức như bài #12 đề nghị chưa?

Vả lại, bài này có một đống IF's. Tức là cái bảng chân lý (truth table) bự tổ bố. Khong có dữ liệu sát thật thì không có cách nào thử code cả. Vì vậy chả ai buồn để ý đến.

- Một là bạn theo đề nghị ở bài #12 mà tự giải quyết lấy.

- Hai là bạn cắn răng đưa cả file "bí mật nghề nghiệp" lên thì mới hy vọng.
 
Đã thử tổ chức như bài #12 đề nghị chưa?

Vả lại, bài này có một đống IF's. Tức là cái bảng chân lý (truth table) bự tổ bố. Khong có dữ liệu sát thật thì không có cách nào thử code cả. Vì vậy chả ai buồn để ý đến.

- Một là bạn theo đề nghị ở bài #12 mà tự giải quyết lấy.

- Hai là bạn cắn răng đưa cả file "bí mật nghề nghiệp" lên thì mới hy vọng.
cám ơn bạn rất nhiều. hiện tại mình đã đưa file lên rồi mà. đang chờ các bác giúp đỡ đây. nhưnh không thấy các bác hồi âm
 
@chủ thớt: Mình chuyển các điều kiện IF đó thành bảng tra rồi dùng hàm vlookup xem...

Mấy công thức khó như thế này chắc ai luyện được "càn khôn đại na di" tầng 7 mới làm được. Mà luyện được thứ nội công kia chắc chỉ cần úm ba la là xong chứ đâu cần Excel.
 
@chủ thớt: Mình chuyển các điều kiện IF đó thành bảng tra rồi dùng hàm vlookup xem...

Mấy công thức khó như thế này chắc ai luyện được "càn khôn đại na di" tầng 7 mới làm được. Mà luyện được thứ nội công kia chắc chỉ cần úm ba la là xong chứ đâu cần Excel.
bạn xem phim nhiều quá mình nhờ các bạn nếu giúp đỡ được. mình xin cảm ơn chứ mình đâu luyện võ công gì
 
Web KT

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

Back
Top Bottom