Giúp mình chuyển hàm If sang hàm khác với!

  • Thread starter tusiandat
  • Ngày gửi
T

tusiandat

Guest
4/4/07
3
0
0
Hanoi
Mình có vấn đề với hàm If quá 7 cấp. Mình đã thử chuyển sang dùng Vlookup để tìm tương đối,nhưng không ổn trong trường hợp này vì (cái mình làm không cần giá trị bằng. Nếu nhập CX31= 10000 thì kết quả phải nhận được là 0.Mình copy hàm if mình làm, mong mọi người giúp đỡ, mình đang cần gấp.
IF(AND(CX31>2499,CX31<5000),2500,IF(AND(CX31>4999,CX31<9999),5000,IF(AND(CX31>10000,CX31<19999),10000,IF(AND(CX31>20000,CX31<34999),20000,iF(AND(CX31>35000,CX31<49999),35000,IF(AND(CX31>50000,CX31<69999),50000,IF(AND(CX31>70000,CX31<99999),70000,IF(AND(CX31>100000,CX31<149999),100000,IF(CX31>149999,150000,0))))))))).
Mình đã thử làm theo một số hàm trên forum hướng dẫn nhưng nó chỉ thích hợp với điều kiện là text thôi???
 
Khóa học Quản trị dòng tiền
T

tusiandat

Guest
4/4/07
3
0
0
Hanoi
Cảm ơn bạn rất nhiều đã quan tâm đến vấn đề của mình. Thật sự mình đã áp dụng các cách mà chị Dung hướng dẫn, nhưng hàm CONCATENATE hình như chỉ dùng được điều kiện là text,hay do sai sót gì mà không ra kết quả mong muốn, nó chỉ chạy hàm if cuối cùng thôi???
Bạn trả lời giúp mình càng nhanh càng tốt.
 
B

Bình_OverAC

Over Abnormal / Crazy
14/5/04
845
11
18
44
Nha Trang
Bạn thêm hàm Value để biến Text thành number.
=value(concatenate(if(and(a1>2499,a1<5000),2500,""), If(and(a1>4999, A1<9999),5000,""), If(and(a1>10000,a1<19999),10000,""), If(and(a1>20000,a1<34999),20000,""), If(and(a1> 35000,a1<49999),35000,""), If(and(a1>50000,a1<69999),50000,""), If(and(a1>70000,a1<99999),70000,""), If(and(a1>100000,a1<149999),100000,""), If(a1>149999, 150000,"")))
 
Sửa lần cuối:
T

tusiandat

Guest
4/4/07
3
0
0
Hanoi
Cảm ơn các bạn. Mình đã làm được rồi. Thật sự những hàm trên web giới thiệu giúp ích mình rất nhiều. Chúc các bạn vui vẻ hạnh phúc.
 
D

daoconsetre

Sơ cấp
12/4/06
38
0
6
GO VAP -TP HCM
CHao các bạn, mình cũng có vấn đề giống tuíandat, mong các bạn hướng dẫn, sau đây là công thức 'mày mò' của mình,
IF(AND(G4<99,G4>1),G4+15,G4+10),IF(AND(G4<300,G4>99),G4+20,G4+15),IF(AND(G4<700,G4>300),G4+30,G4+25),IF(AND(G4<1000,G4>700),G4*1.3,"")
 
QDuc

QDuc

Cao cấp
3/6/06
254
18
18
Biển khơi
Mình cũng có vấn đề giống tuíandat, mong các bạn hướng dẫn, sau đây là công thức 'mày mò' của mình,
IF(AND(G4<99,G4>1),G4+15,G4+10),IF(AND(G4<300,G4>99),G4+20,G4+15),IF(AND(G4<700,G4>300),G4+30,G4+25),IF(AND(G4<1000,G4>700),G4*1.3,"")
Đoán thôi ( bạn viết khó hiểu lắm!):wall:
=If( G4 > 700 ; G4 * 1.3 ; G4 + If( G4 > 300; 30 ; If( G4 > 99 ; 25 ;If( G4 >1 ; 20 ; 10 ))))
 
H

Ho phong

Guest
13/5/08
8
0
0
40
thu duc
thắc mắc về hàm IF

tôi cũng có vấn đề với hàm if này, tôi có một sheet bảng cân đối phát sinh gồm các tài khoản cấp 1,2 và nhiều bảng chi tiết loại 4.
ví dụ: bảng cân đối phát sinh tôi có tài khoản 111,131,331,411....
bảng chi tiết thì gồm những tài khaon3 có tài khoản chi tiết từ loại 4 trở lên như 331,131,411... chi tiết từng khách hàng... tôi muốn hỏi nếu trên sổ cái tôi đặt công thức để lấy số dư đầu kỳ của các tài khoản , nếu là TK lại 1,2 như là 111,1111,131,331,411...thì lấy số dư đầu kỳ trên bảng cân đối số phát sinh ngược lại thì lấy trên sổ chi tiết tài khaon3 tương ứng...
ví dụ như nếu là TK131 chi tiết khách hàng A chẳng hạn(thì lấy ở tài khaon3 chi tiết của khách hàng đó) như vậy nói túm lại là hàm if không thể cho ra quá 7 vòng lặp, và nếu như ta có từ 7-8 TK chi tiết trở lên thì không thể sài If được..., có ai cho tôi thọ giáo câu hỏi này....(chời dài thiệt)--->các bạn thông cảm tôi văn chương dỡ tệ nên viết dài dòng...hihi!
thanks so much!
 
M

muontennguoi

Trung cấp
19/1/08
84
0
6
25
sg
Cách tốt hơn hết là bạn hãy cấu trúc chương trình của bạn hợp lý hơn.
Khi đó bạn sẽ chỉ cần dùng những hàm và vài đoạn macro đơn giản là vẫn làm được việc của mình.

Cụ thể là bạn nghĩ rằng máy tính nó suy nghĩ rất đơn giản. Nó không thể có suy nghĩ như con người được.
Do đó đừng bắt nó làm chồng quá nhiều cái vào nhau. Các lệnh lồng nhau sẽ làm chậm máy.


Khi lập BCĐ thay vì bạn lồng nhiều cấp vào chung 1 bảng để in ra thì hãy chia ra nhiều bảng.

- BCĐ TK cấp 1
- BCĐ TK cấp 2
- BCĐ TK cấp 3


(Trong kế tóan không có khái niệm TK cấp 4. Tất cả các sổ chi tiết gọi là TK cấp 3).


Như vậy đến đây bạn sẽ thấy là kỳ thực bạn chỉ cần BCĐ TK cấp 2 là đủ.
Trong bảng này tất cả TK là cùng cấp nhau. Không cần dòng tổng TK cấp 1 cho các TK cấp 2

(Ví dụ:
111
1121
1122
131
...
Không nên xen dòng tổng 1121+1122 vào thành 112)

Kế đến bạn in riêng các chi tiết (TK cấp 3) như là để thuyết minh cho các số liệu trên BCD TK cấp 2 đó.
Vì số lượng chi tiết là rất lớn nên nếu bạn phân thành 1 tập riêng thì người đọc cũng dễ đọc hơn.



Chỉ nên lồng vào nhau khi bạn lập trình để cho máy nó tự tìm chỗ tính tóan và xen vào dòng tổng cộng.
Nhưng nếu đã lập trình thì bạn có thể tung hứng tùy ý mà không ngại chuyện giới hạn 7 vòng lặp của hàm IF nữa.



Tuy nhiên nếu bạn lập trình thì cũng nên làm cho nó đơn giản, dễ hiểu.
Không nên lập BCĐ lồng vào nhau quá nhiều.
Hãy lập trình như không lập trình.
Đừng làm cho chương trình của mình trở nên hùng vỹ.
Vì nó sẽ đi gần với rùng rợn, nặng nề...
 

Xem nhiều