Những vấn đề về hàm IF

Liên hệ QC
Status
Không mở trả lời sau này.
Thế tại sao không là:
Mã:
=IF(E2<=DATE(2008,10,15),"Đúng","Sai")
Cho nó gọn và dể hiểu
 
Giúp đỡ rút gọn hàm IF

Xin chào,

Mình xin các bro giúp đỡ mình cách rút gọn công thức có liên quan đến hàm IF như sau :
PHP:
=IF(ISBLANK(E4)=TRUE,"",IF(AND(E4="A",C4>0),C4*D4,IF(AND(E4="A",C4<0),D4,
IF(AND(E4="T",C4>0),-(D4),IF(AND(E4="T",C4<0),C4*D4,IF(AND(E4="A 0.5",C4>0),(C4*D4)/2,
IF(AND(E4="A 0.5",C4<0),D4/2,IF(AND(E4="T 0.5",C4>0),-(D4)/2,
IF(AND(E4="T 0.5",C4<0),(C4*D4)/2,0)))))))))

Thanks !
 
Điều kiện mỗi if khác nhau làm sao mà rút gọn được.
 
Điều kiện mỗi if khác nhau làm sao mà rút gọn được.

Thanks, hiện tại hàm IF của mình đã vượt quá 7 IF nên Excel không thể nào thực hiện được công thức đó. Vì vậy mình nhờ các bro có giải pháp nào khác để có thể thực hiện giống yêu cầu đó của mình được không ?
 
Mình xin các bro giúp đỡ mình cách rút gọn công thức có liên quan đến hàm IF
Không có file, khó làm và không test được.
Thử thế này xem sao bạn nhé, tôi rút mất IF luôn và dùng toán tử :
PHP:
=IF(ISBLANK(E4)=TRUE,"",(E4="A")*((C4>0)*C4*D4+(C4<0)*D4)+
(E4="T")*((C4>0)*(-D4)+(C4<0)*C4*D4)+(E4="A 0.5")*((C4>0)*(C4*D4)/2+
(C4<0)*D4/2)+(E4="T 0.5")*((C4>0)*(-D4/2)+
(C4<0)*(C4*D4)/2))
 
Xin chào,

Mình xin các bro giúp đỡ mình cách rút gọn công thức có liên quan đến hàm IF như sau :
PHP:
=IF(ISBLANK(E4)=TRUE,"",IF(AND(E4="A",C4>0),C4*D4,IF(AND(E4="A",C4<0),D4,
IF(AND(E4="T",C4>0),-(D4),IF(AND(E4="T",C4<0),C4*D4,IF(AND(E4="A 0.5",C4>0),(C4*D4)/2,
IF(AND(E4="A 0.5",C4<0),D4/2,IF(AND(E4="T 0.5",C4>0),-(D4)/2,
IF(AND(E4="T 0.5",C4<0),(C4*D4)/2,0)))))))))
Thanks !
Xin hỏi C4 có phải là số nguyên: -2, -1, 0, 1, 2,...,n. Nếu vậy thì kết hợp hàm max(C4,1) hay là min(C4,-1)
Mà có 9 If thì công thức trên có chạy không. Hay là bạn tạo 1 ví dụ up lên.
 
Không có file, khó làm và không test được.
Thử thế này xem sao bạn nhé, tôi rút mất IF luôn và dùng toán tử :
PHP:
=IF(ISBLANK(E4)=TRUE,"",(E4="A")*((C4>0)*C4*D4+(C4<0)*D4)+
(E4="T")*((C4>0)*(-D4)+(C4<0)*C4*D4)+(E4="A 0.5")*((C4>0)*(C4*D4)/2+
(C4<0)*D4/2)+(E4="T 0.5")*((C4>0)*(-D4/2)+
(C4<0)*(C4*D4)/2))

Cám ơn bro rất nhiều, đây đúng là kết quả của mình & đã thực hiện thành công.
 

File đính kèm

  • Test.xls
    21 KB · Đọc: 39
Lần chỉnh sửa cuối:
Xin chào,

Mình xin các bro giúp đỡ mình cách rút gọn công thức có liên quan đến hàm IF như sau :
PHP:
=IF(ISBLANK(E4)=TRUE,"",IF(AND(E4="A",C4>0),C4*D4,IF(AND(E4="A",C4<0),D4,
IF(AND(E4="T",C4>0),-(D4),IF(AND(E4="T",C4<0),C4*D4,IF(AND(E4="A 0.5",C4>0),(C4*D4)/2,
IF(AND(E4="A 0.5",C4<0),D4/2,IF(AND(E4="T 0.5",C4>0),-(D4)/2,
IF(AND(E4="T 0.5",C4<0),(C4*D4)/2,0)))))))))

Thanks !
BẠN THỬ DÙNG CÔNG THỨC NÀY RỒI KIỂM TRA KẾT QUẢ
PHP:
=IF(OR(C4=0,ISBLANK(E4)=TRUE),"",IF(C4>0,IF(LEFT(E4,1)="A",C4*D4,-D4),IF(LEFT(E4,1)="A",D4,C4*D4))*IF(LEN(E4)=1,1,0.5))
mượn file test thêm cột mới thôi
 

File đính kèm

  • Test 01.xls
    28.5 KB · Đọc: 37
Lần chỉnh sửa cuối:
BẠN THỬ DÙNG CÔNG THỨC NÀY RỒI KIỂM TRA KẾT QUẢ

PHP:
=IF(OR(C4=0,ISBLANK(E4)=TRUE),"",IF(C4>0,IF(LEFT(E4,1)="A",C4*D4,-D4),IF(LEFT(E4,1)="A",D4,C4*D4))*IF(LEN(E4)=1,1,0.5))
mượn file test thêm cột mới thôi

Cám ơn bro rất nhiều, đây cũng là kết quả của mình & đã thực hiện thành công luôn.
 
Cám ơn bro rất nhiều, đây đúng là kết quả của mình & đã thực hiện thành công.
May quá, làm mò không test mà lại đúng --=0.
Bạn có thể dùng cách này để thêm nhiều điều kiện nữa mà không cần đến IF nhé.
 
Hỏi về cách gộp 2 hàm IF?

Nhờ anh em giải giúp.

Chân thành cảm ơn!
 

File đính kèm

  • halogen3.xls
    16.5 KB · Đọc: 59
Bạn dùng hàm if như sau:

A2=IF(A2="","",IF(A2=A1,"Nhập hàng","Xuấthàng"))

Chúc vui --=0
 
Vẫn còn dài!

Bạn dùng hàm if như sau:
A2=IF(A2="","",IF(A2=A1,"Nhập hàng","Xuấthàng"))
Chúc vui --=0
Nếu là công thức thì nên là :
A2=IF(A2="","",IF(A2=A1,"Nhập","Xuất") & " hàng")​
Bạn tham khảo thêm macro sau
Chú í: trong workbook của bạn cần có 2 Names, đó là 'Xuat' & 'Nhap'
mà trong Refer to tương ứng sẽ là: 'Xuất hàng' & 'Nhập hàng'
Macro thích hợp chỉ khi dữ liệu của bạn >10^3 records
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next
 If Not Intersect(Target, Columns("A:A")) Is Nothing Then
   With Target
      If .Value = .Offset(-1) Then
         .Offset(, 1) = "=Nhap"
      Else
         .Offset(, 1) = "=Xuat"
      End If
   End With
 End If
End Sub

Chúc vui!
 
Híc híc
Các bác toàn hướng dẫn halogen Đặt công thức tai Cell A2 (<=> cột A)
CHÚ Ý: các công thức mà các bác đã hướng dẫn ở đặt ở cột B đấy nhé

PHP:
vanhuy: A2 =IF(A2="","",IF(A2=A1,"Nhập hàng","Xuấthàng"))
Thay bằng: B2 =IF(A2="","",IF(A2=A1,"Nhập hàng","Xuấthàng"))
PHP:
SA_DQ: A2 =IF(A2="","",IF(A2=A1,"Nhập","Xuất") & " hàng")
Thay bằng: B2 =IF(A2="","",IF(A2=A1,"Nhập","Xuất") & " hàng")
Dùng Conditional Formatting... cũng có thể xử lý vụ này (không cần thay đổi công thức ở cột B). Cách làm như sau:
  1. Chọn Cell B2, kéo xuống cuối vùng cần xử lý (theo yêu cầu...)
  2. Vào Format\Conditional Formatting...
    • Chọn Formula Is, khuung bên cạnh nhập =$A2=""
    • Rồi vào Format... Chọn màu chữ = màu nền (= màu nào đó mình ưa thích)
  3. OK 2 phát, nhìn bảng tính ... Hê hê. Chúc có nụ cười thật tươi
 
tôi muốn hỏi cách lập công thức hàm if

CÚ PHÁP CỦA HÀM IF LÀ:
IF(logical test, value_if_true,value_if_false).
TUY NHIÊN, KHI TÔI NHẬP CÔNG THỨC SAU THI LẠI RA KẾT QUẢ NHƯ VẬY
=IF(WEEKDAY(TODAY())=OR(2,3,4,5),”202”,”212”)
KẾT QUẢ : 212
TẠI SAO HÔM NAY LÀ THỨ HAI MÀ KẾT QUẢ LẠI LÀ 212. XIN GIUP DÙM !
NHƯNG NẾU TÔI ĐỔI LẠI =IF(WEEKDAY(TODAY())=OR(2,3,4,5),”212”,”202”) THÌ CÓ KẾT QUẢ LÀ 202.



 
CÚ PHÁP CỦA HÀM IF LÀ:
IF(logical test, value_if_true,value_if_false).
TUY NHIÊN, KHI TÔI NHẬP CÔNG THỨC SAU THI LẠI RA KẾT QUẢ NHƯ VẬY
=IF(WEEKDAY(TODAY())=OR(2,3,4,5),”202”,”212”)
KẾT QUẢ : 212
TẠI SAO HÔM NAY LÀ THỨ HAI MÀ KẾT QUẢ LẠI LÀ 212. XIN GIUP DÙM !
NHƯNG NẾU TÔI ĐỔI LẠI =IF(WEEKDAY(TODAY())=OR(2,3,4,5),”212”,”202”) THÌ CÓ KẾT QUẢ LÀ 202.

Sai tại hàm OR bạn ạ. Nếu dùng như thế thì hàm IF luôn chọn giá trị FALSE!

=IF(OR(WEEKDAY(TODAY())=2;WEEKDAY(TODAY())=3;WEEKDAY(TODAY())=4;WEEKDAY(TODAY())=5),”202”,”212”)

Hoặc :

=IF(AND(WEEKDAY(TODAY())>=2;WEEKDAY(TODAY())<=5),”202”,”212”)

Hoặc :
...............................................................


Thân!
 
CÚ PHÁP CỦA HÀM IF LÀ:
IF(logical test, value_if_true,value_if_false).
TUY NHIÊN, KHI TÔI NHẬP CÔNG THỨC SAU THI LẠI RA KẾT QUẢ NHƯ VẬY
=IF(WEEKDAY(TODAY())=OR(2,3,4,5),”202”,”212”)
KẾT QUẢ : 212
TẠI SAO HÔM NAY LÀ THỨ HAI MÀ KẾT QUẢ LẠI LÀ 212. XIN GIUP DÙM !
NHƯNG NẾU TÔI ĐỔI LẠI =IF(WEEKDAY(TODAY())=OR(2,3,4,5),”212”,”202”) THÌ CÓ KẾT QUẢ LÀ 202.

Chào bạn.
Đây không phải lỗi hàm IF, mà là lỗi bạn sử dụng hàm OR bị sai.
Mình có thể giải thích như sau:

Công thức này là trả về một giá trị dạng Logical (True - False) và có giá trị TRUE. bạn thử ở ô bất kỳ gõ = OR(2,3,4,5) = TRUE (==> công thức này không có giá trị về mặt ý nghĩa gì cả)

Tiếp theo:
WEEKDAY(TODAY())=OR(2,3,4,5) <=> WEEKDAY(TODAY())=TRUE
Biểu thức này cũng sẽ trả về dạng Logical là False vì Weekday(Today()) không thể là TRUE mà là kiểu dữ liệu số.

Cho nên:
=IF(WEEKDAY(TODAY())=OR(2,3,4,5),"212","202")
Điều kiện IF lúc này có giá trị False nên sẽ lấy giá trị thứ hai là "202"

Như vậy nhé bạn.
 
CÚ PHÁP CỦA HÀM IF LÀ:
IF(logical test, value_if_true,value_if_false).
TUY NHIÊN, KHI TÔI NHẬP CÔNG THỨC SAU THI LẠI RA KẾT QUẢ NHƯ VẬY
=IF(WEEKDAY(TODAY())=OR(2,3,4,5),”202”,”212”)
KẾT QUẢ : 212
TẠI SAO HÔM NAY LÀ THỨ HAI MÀ KẾT QUẢ LẠI LÀ 212. XIN GIUP DÙM !
NHƯNG NẾU TÔI ĐỔI LẠI =IF(WEEKDAY(TODAY())=OR(2,3,4,5),”212”,”202”) THÌ CÓ KẾT QUẢ LÀ 202.
Đoán rằng bạn muốn: Nếu hôm nay là Thứ 2, hoặc thứ 3, hoặc thứ 4 hoặc thứ 5 thì cho kết quả = 202, ngược lại thì cho kết quả = 212
Đúng không?
Dù bạn đặt điều kiện OR đúng như Mr Okebap thì vẩn rắc rối! Như vầy đây có phải gọn hơn không:
Mã:
=IF(WEEKDAY(Today(),3)<4,"202","212")
Và muốn ngâm cứu thêm nữa thì... cái này:
Mã:
=212-(WEEKDAY(Today(),3)<4)*10
 
Lần chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom