Bạn sẽ làm gì khi If chỉ có 7 vòng lặp ?

  • Thread starter handung107
  • Ngày gửi
H

handung107

Thành viên thân thiết
28/8/04
576
13
0
VN
www.giaiphapexcel.com
#1
Chúng ta ai cũng biết hàm IF trong Excel chỉ thể hiện được 7 vòng lặp. Vậy trong những trường hợp cần thiết khác, chúng ta sẽ làm gì ?

Td đơn giản nhất là :
Tại B1 :Nếu A1="A", B1=1, A1="B", B1=2, A1="C", B1=3, A1="D", B1=4, A1="E", B1=5, A1="F", B1=6, A1="G", B1=7, A1="H", B1=8, A1="I", B1=9, A1="J", B1=10, A1="K", B1=11, A1="L", B1=12, A1="M", B1=13....

Tôi xin giới thiệu với các bạn vài cách thức mà tôi sưu tầm được :

1/ Đặt tên cho từng đoạn công thức. Td : MotDenSau, MotDenMuoiBa...như trong bài "Tên và nhãn trong công thức "
2/ Sử dụng hàm VLOOKUP, tạo một mảng gồm 2 cột, cột thứ nhất gồm những giá trị A, B, C..., cột thứ 2 gồm những giá trị 1, 2, 3...
B1=VLOOKUP(A1,DS,2,0)
3/ Sử dụng VBA
4/ Sử dụng hàm CONCATENATE() :
B1=CONCATENATE(IF(A1="A",1,""),IF(A1="B",2,""),IF(A1="C",3,""),....,IF(A1="M",13,"")). Hàm này sử dụng được 30 đối số
5/ Sử dụng phép kết hợp :
B1=IF(A1="A",1,"")&IF(A1="B",2,"")&IF(A1="C",3,"")&....&IF(A1="M",13,""). Phương pháp này giới hạn 30 "&"
6/Sử dụng Boolean Multiplication :
B1=(A1="A")*1+(A1="B")*2+(A1="C")*3+....+(A1="M")*13

Các bạn còn cách thức nào khác, hãy giới thiệu để chúng ta cùng nhau tham khảo
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
548
51
28
41
Hà Nội
www.bluesofts.net
#2
handung107 nói:
5/ Sử dụng phép kết hợp :
B1=IF(A1="A",1,"")&IF(A1="B",2,"")&IF(A1="C",3,"")&....&IF(A1="M",13,""). tham khảo
Theo công thức trên, mục đích của nó là cho ra giá trị kiểu số (Number), nhưng nếu dùng & kết quả sẽ trả về giá trị là "chữ số" (Text) mặc dù chúng ta thấy nó là 1,2,... Tại C1=SUM(B1) kết quả =0(vì giá trị trong B1 là kiểu Text).
Nếu mục đích của công thức cho ra giá trị kiểu Number thì phải dùng phép + (cộng) đồng thời đối số thứ 3 trong hàm IF phải là 0.
B1=IF(A1="A",1,0)+IF(A1="B",2,0)+IF(A1="C",3,0)+....+IF(A1="M",13,0).
Nếu mục đích của công thức cho ra giá trị kiểu Text thì phải dùng phép & (nối) đồng thời đối số thứ 3 trong hàm IF phải là "".
 
Sửa lần cuối:
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
7
18
37
Nha Trang
#3
handung107 nói:
4/ Sử dụng hàm CONCATENATE() :
B1=CONCATENATE(IF(A1="A",1,""),IF(A1="B",2,""),IF(A1="C",3,""),....,IF(A1="M",13,"")). Hàm này sử dụng được 30 đối số
Hàm Concatenate không kết hợp công thức mãng được phải không chị Dung nhỉ! Em không dùng công thức mãng được: ví dụ cho trường hợp của anh Cam to
http://www.unifiedtech.net.au/webketoan/forum/showthread.php?t=6878

{=CONCATENATE(IF(A2:AE2="x",A1:AE1,""))}
Thế này cũng hỏng xong:
{=CONCATENATE(IF(A2:AE2="x",TEXT(A1:AE1,"@"),""))}
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
7
18
37
Nha Trang
#5
Tuanktcdcn nói:
Dùng công thức mảng hay nhưng cẩn thận với cú pháp, nó có quy định của nó.
Vâng như vậy thì em chưa biết về những điều này rồi mời bác giảng thêm cho em về cá quy định của công thức mãng nhé. Nhưng có lẻ phải ở một topic khác bác nhỉ. Chứ theo bài giảng trước của bác thì chưa có các quy định này thì phải
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
548
51
28
41
Hà Nội
www.bluesofts.net
#6
OverAC dùng từ "giảng" nghe to chuyện rồi, chỉ trao đổi thôi. I sẽ đọc lại xem vấn đề này đã nói ở topic nào chưa nếu không thì mình hoặc mời bạn khác sẽ lại nói tiếp.
 
8

8020

Thành viên sơ cấp
30/3/04
17
0
0
#7
8020 thấy dùng Boolean multiplication là ổn nhất và cũng dễ hiểu, chỉ có điều nó chỉ dùng được khi kết quả muốn đưa ra là số, chứ k phải các dạng khác.
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
7
18
37
Nha Trang
#8
8020 nói:
8020 thấy dùng Boolean multiplication là ổn nhất và cũng dễ hiểu, chỉ có điều nó chỉ dùng được khi kết quả muốn đưa ra là số, chứ k phải các dạng khác.
Vui lòng nói rỏ hơn chứ em không hiểu gì cả.
Và nếu đã cho ra được dạng số thì dạng gì không ra được ạh.
 
G

gacon0904

Thành viên sơ cấp
9/7/05
81
0
0
37
tphcm
#9
Hàm IF

Các Anh/Chị cho em hỏi.Hàm IF có thể lồng bao nhiêu cấp?em thử là 7 cấp và 1 IF ngoài.Có thể xử lý tối đa là 9 trường hợp.Vậy có đúng không vì em thấy có bài nói hàm IF có 7 vòng lặp chỉ giải quyết tối đa 8 trường hợp thôi. Cám ơn các Anh/Chị.
 
Secret_grasses

Secret_grasses

Thành viên sơ cấp
#11
V

VanHao

Thành viên thân thiết
18/12/05
70
2
6
Go Vap
#12
Thay thế hàm IF khi hàm if có hơn 7 vòng lặp

Nếu gặp trường hợp hàm IF có quá nhiều vòng lặp thì hãy sử dụng hàm INDEX
Lấy ví dụ của chị Dung.
Lặp bảng gồm 2 cột : 1 cột chứa giá trị A,B,C...; 1 cột chứa giá trị 1,2,3
Thực hiện như sau:

0 A B C D
1 a 1 c =INDEX(A1:B26,Match(C1;A1:A26,0),2)
2 b 2
3 c 3
4 d 4
5 e 5
6 f 6
... ... ...

26 z 26
Điều kiện : giá trị ở cột A không được trùng nhau
 
B

bonphuongsa

Thành viên sơ cấp
24/11/06
3
0
0
TP.HCM
#13
Nhờ các Bác hướng dẫn cụ thể dùm trong trường hợp dưới đây em phải dùng hàm gì :

Trong Sheet1
A1 = 0a, B1 = TRUNG, C1 = L1
A2 = 0a, B2 = HAU, C2 = L2
A3 = 0a, B3 = DAM, C3 = L3
A4 = 0b, B4 = DANG, C4 = L1
A5 = 0b, B5 = NGHIA, C5 = L2
A6 = 0b, B6 = TINH, C6 = L3

Trong Sheet2
A1 gõ 0a, B1 gõ L2, C1 dùng hàm gì để có được HAU
A2 gõ 0b, B2 gõ L3, C2 dùng hàm gì để có được TINH

Cám ơn các Bác rất nhiều
 
Secret_grasses

Secret_grasses

Thành viên sơ cấp
#14
bonphuongsa nói:
Nhờ các Bác hướng dẫn cụ thể dùm trong trường hợp dưới đây em phải dùng hàm gì :

Trong Sheet1
A1 = 0a, B1 = TRUNG, C1 = L1
A2 = 0a, B2 = HAU, C2 = L2
A3 = 0a, B3 = DAM, C3 = L3
A4 = 0b, B4 = DANG, C4 = L1
A5 = 0b, B5 = NGHIA, C5 = L2
A6 = 0b, B6 = TINH, C6 = L3

Trong Sheet2
A1 gõ 0a, B1 gõ L2, C1 dùng hàm gì để có được HAU
A2 gõ 0b, B2 gõ L3, C2 dùng hàm gì để có được TINH

Cám ơn các Bác rất nhiều

Có nhiều cách làm, SG sẽ hướng dẫn bạn cách dùng cột phụ:

Ở sheet1, bạn insert trước cột A một cột, nghĩa là cột A của bạn - bây giờ sẽ trở thành cột B, cột B sẽ trở thành cột C và cột C sẽ trở thành cột D.Sau đó bạn đặt công thức: A1=B1&D1 cứ thế copy công thức xuống dòng khác .

Ở sheet 2 bạn đặt công thức như sau: =VLOOKUP(A1&B1,Sheet1!$A$1:$d$6,3,0)
 
H

Ho phong

Thành viên sơ cấp
13/5/08
8
0
0
33
thu duc
#15
hỏi

cho mình hỏi nếu như bạn nói như trên thì hàm concatenate dùng để làm gì? vì mình thử rùi, nếu đánh công thức tại B1=concatenate(if(A1="A",1,""),if(A1="B",2,""),if(........)) thì nó ra, con nếu đối số trong hàm if của mình mà là một tham chiếu đến các ô khác ví dụ như hàm Vlookup nằm trong hàm if chẳng hạn thì hàm concatenate bên ngoài không nhận diện được và nó cho ra giá trị lỗi #NA, hic
co ai giúp minh hỉu được công dụng của hàm này không?
thanks so much!:020:
 

Thành viên trực tuyến

  • Huongtb205
  • daongocnam0603
  • 4084424
  • NguyenThuanht3
  • THADI
  • kophaithach2
  • DÍM NHÍM
  • Loan31296
  • tlpkhanh
  • minhminhCIC5
  • nguyenduyen1109
  • Vu Thuy Ngan

Xem nhiều