Cách bao gồm nhiều câu lệnh IF trong một ô trong Google Sheets


16

Tôi đang cố gắng thay đổi giá trị của một ô trong Google Sheets dựa trên giá trị của một ô liền kề. Ô liền kề này nhận được giá trị của nó từ màu của ô liền kề với nó bằng công thức từ câu trả lời Quora này . Vì vậy, giá trị của ô sẽ thay đổi dựa trên mã hex được lấy từ màu của ô đầu tiên. Có bốn giá trị hex có thể tại thời điểm này vì vậy tôi đã cố gắng đặt bốn câu lệnh IF khác nhau trong cùng một ô, vì vậy giá trị của nó được thay đổi dựa trên điều này.

Nỗ lực đầu tiên của tôi đã dẫn đến một lỗi phân tích công thức:

=if((J2="#00ff00","Read"), if(j2="#ff0000", "Unread"), if(j2="#ff9900","In Progress"), if(j2="#000000", "Not Applicable"))

Rõ ràng là bạn không thể tách riêng nếu câu lệnh bằng dấu phẩy. Dựa trên này Stack Overflow câu hỏi tôi đã thử mã này, với lồng IF báo cáo:

=if((J2="#00ff00","Read", if(j2="#ff0000", "Unread", if(j2="#ff9900","In Progress",if(j2="#000000", "Not Applicable")))))

Điều này cũng dẫn đến một lỗi phân tích công thức.

Có cách nào đơn giản để tôi có thể bao gồm nhiều câu lệnh IF trong cùng một ô sẽ hoạt động cho mã của tôi không?


Bạn có thể kết hợp chúng thành một = HOẶC hoặc một cái gì đó tương tự?
AccioBooks

Câu trả lời:


18

Sử dụng lookupthay vì if:

=lookup(B7,
       {"#000000","#00ff00","#ff0000","#ff9900"},
       {"Not applicable", "Read","Unread","In Progress"}
  ) 

Lưu ý tham số thứ hai phải là một danh sách được sắp xếp.


1
Lưu ý rằng điều này không hoạt động nếu các mục trong đối số thứ 3 là biểu thức
Christiaan Westerbeek

1
Lưu ý rằng mảng đầu tiên (mảng "khóa") phải được sắp xếp (nó hoạt động khi của tôi được sắp xếp theo thứ tự bảng chữ cái tăng dần) để nó hoạt động như dự định.
fgblomqvist

@ChristiaanWesterbeek, có cách nào khác không, hay bạn chỉ phải sử dụng lồng nhau ifs?
Andrew

22

Câu trả lời ngắn

Vấn đề trong các ví dụ được cung cấp là dấu ngoặc đơn. Áp dụng chúng đúng cách.

Giải trình

IF() Hàm nên có hai tham số và tùy chọn một tham số thứ ba.

IF(logical_expression, value_if_true, value_if_false)

Vấn đề cụ thể với

  • ví dụ đầu tiên được cung cấp là bên ngoài IF()có quá nhiều tham số.
  • ví dụ thứ hai là logical_expressionbên ngoài IF()không quay trở lại TRUEhoặcFALSE

Trong Google Sheets, các tham số chức năng được phân tách bằng dấu phẩy (hoặc dấu chấm phẩy nếu bảng tính của bạn sử dụng dấu phẩy làm dấu tách thập phân). Khi dấu ngoặc đơn được sử dụng để bao quanh một số hoạt động và chức năng bên trong một chức năng, chúng được coi là một tham số của chức năng có chứa chúng.

Một thực tế phổ biến là đặt bên trong IF()value_if_false, nhưng nó có thể được thực hiện theo nhiều cách. Thêm IF()vào bên trong khác value_if_truevalue_if_falseđược gọi là IF() logical test nestinghoặc chỉ IF() nesting.

Dưới đây là một ví dụ về một công thức có ba IF(), hai trong số chúng được sử dụng để xác định value_if_falsecha mẹ IF(). Một kiểu đa dòng và dọc của kiểu dấu ngoặc đơn được áp dụng cho khả năng đọc

 =IF(logical_expression, value_if_true, 
     IF(logical_expression, value_if_true, 
        IF(logical_expression, value_if_true, value_if_false
          )
       )
    )

Kiểu trên có thể được sử dụng trong văn bản công thức Google Sheets. Tôi thấy nó hữu ích cho công thức gỡ lỗi.

Tài liệu tham khảo


1
Rất hữu ích, đặc biệt là mẫu multiline được định dạng - làm cho nó dễ hiểu và dễ thực hiện hơn nhiều.
Lu-ca


1

Bạn có thể lồng các câu lệnh IF chẳng hạn

If(if(if(when all 3 equal true)))

Sẽ làm việc

HOẶC LÀ

bạn có thể sử dụng IFAND lồng nhau chẳng hạn

IF(AND(AND()))

Cũng sẽ làm việc.


Hàm IF () yêu cầu ít nhất hai tham số. Xem webapps.stackexchange.com/a/89068/88163
Rubén

1

Bạn đã được cung cấp lý thuyết và phương pháp tốt hơn nhưng để trả lời cụ thể:

Có cách nào đơn giản để tôi có thể bao gồm nhiều câu lệnh IF trong cùng một ô sẽ hoạt động cho mã của tôi không?

Vui lòng thử:

=if(J2="#00ff00","Read", if(J2="#ff0000", "Unread", if(J2="#ff9900","In Progress",if(J2="#000000", "Not Applicable"))))

Đó là, lần thử thứ hai của bạn mà không có dấu ngoặc đơn mở đầu tiên và không có dấu ngoặc đơn đóng cuối cùng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.