Cải thiện công thức IF và CHỌN lồng nhau


2

Tôi nhận được trạng thái hàng tuần cho các đơn đặt hàng công việc mở của chúng tôi dưới dạng tệp CSV. Điều này bao gồm mã trạng thái 3 chữ cái được liên kết với các bước khác nhau trong quá trình hoàn thành.

Tôi cần đặt các định nghĩa ngôn ngữ đơn giản thay cho các mã trạng thái.

Bảng tính của tôi thực hiện điều này một cách tự động, nhưng bảng tính tôi cảm thấy như hiện tại tôi đang làm nó thực sự không hiệu quả. Bản thân nó làm điều này, hơn 75 MB, và làm hỏng toàn bộ sự việc.

Cách trang tính hiện tại của tôi hoạt động là một lưới 16 cột với mã trạng thái từ CSV tại [@ [Mã SO] và danh sách tĩnh các mã ở Hàng 1. Mỗi hàng khác có 16 hàng ngang với:

=IF([@[SO Codes]]=Table3[[#Headers],[AA]],1,0)
=IF([@[SO Codes]]=Table3[[#Headers],[CA]],2,0)
=IF([@[SO Codes]]=Table3[[#Headers],[CAN]],3,0)
v.v.

Vì vậy, mỗi mã trạng thái được gán một số từ 1 đến 16 hiển thị trên lưới 16x [số lượng đơn đặt hàng công việc mở].

Cột cuối cùng là:

=SUBTOTAL(9,E2:T2)
=SUBTOTAL(9,E3:T3)
=SUBTOTAL(9,E4:T4)
v.v.

Cuối cùng, nguồn cấp dữ liệu đó vào trình theo dõi của tôi với các dòng giống như: =CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3),IF([@Status]=J4,L4),IF([@Status]=J5,L5),IF([@Status]=J6,L6),IF([@Status]=J7,L7),IF([@Status]=J8,L8),IF([@Status]=J9,L9),IF([@Status]=J10,L10),IF([@Status]=J11,L11),IF([@Status]=J12,L12),IF([@Status]=J13,L13),IF([@Status]=J14,L14),IF([@Status]=J15,L15),IF([@Status]=J16,L16),IF([@Status]=J17,L17))

Trong đó cột L là danh sách các định nghĩa mã văn bản gốc và J3 cung cấp các tổng phụ từ máy tính mã trạng thái.

Tôi không thể giúp rằng phải có một cách thanh lịch và hiệu quả hơn để làm điều này. Bất kỳ cái nhìn sâu sắc? Tôi đã thử sử dụng hàm = CHOOSE trực tiếp trên các mã từ CSV, nhưng nó chỉ hoạt động trên các giá trị số. Tôi đã bao gồm hình ảnh của mỗi bước, bởi vì tôi cảm thấy như tôi đã giải thích điều này kém.

Máy tính mã CSV enter image description here

Theo dõi enter image description here


Tổng nhanh hơn tổng phụ (9, ... Vlookup nhanh hơn = IF ([@ [Mã SO]] = Bảng3 [[# Tiêu đề], [AA]], 1,0) ... nhưng bạn có nhiều năm không dữ liệu đã đóng bị ẩn trong bộ lọc thông minh? tại sao quá lớn? = Vlookup (ô văn bản, mảng có Mã ở cột 1, 2 (nếu Mô tả trong cột 2), 0 = khớp chính xác)
Sunnyskyguy EE75

Câu trả lời:


1

Công thức Chọn đó có thể được viết là

=Vlookup([@Status],$J$2:$L$17,3,False)

Không chắc chắn tôi hiểu phần còn lại của vấn đề là gì.


hai Vlookups, có thể mô tả mã và trạng thái
Sunnyskyguy EE75

0

mã máy tính:

Thay vì bàn dài, bạn có thể sử dụng một MATCH():
=MATCH([@[SO CODES]],TableHelper[code list],0)
enter image description here

Theo dõi

Ở đây tôi không chắc chắn tôi hiểu chính xác công thức ban đầu của bạn.

=CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3)... - Chuyện gì sẽ xảy ra nếu [@Status]<>J2? Hay đó là một kịch bản không thực tế? Nếu có, sau đó chỉ cần sử dụng một đơn giản INDEX() chức năng:
=INDEX($L$2:$L$17,[@Status])

Nếu không, xin vui lòng xác định những gì công thức của bạn nên làm.

Tối ưu hóa cuối cùng:

Một lần nữa, nếu bạn hiểu rõ vấn đề của mình: bạn thậm chí không cần gấp đôi, chỉ một tờ.

Tôi đã thử sử dụng hàm = CHOOSE trực tiếp trên các mã từ CSV, nhưng nó chỉ hoạt động trên các giá trị số

Thật vậy, bạn có thể cung cấp mã trực tiếp, chỉ cần sử dụng VLOOKUP(), một cái gì đó như thế này:
=VLOOKUP(<code>,$J:$K,2,false)

Ở đâu

  • <code> là một mã mà bạn muốn có được mô tả
  • $J:$K là các cột mã và mô tả theo ảnh chụp màn hình của bạn

Cảm ơn tất cả các câu trả lời! Rõ ràng là tôi cần học cách sử dụng = vlookup. Tôi mới dùng Excel. Dù sao, bảng đầu tiên chuyển đổi mã trạng thái 3 chữ cái thành một số. Bảng thứ hai xem xét số đó là gì và sau đó trả về mô tả ngôn ngữ đơn giản tương ứng cho mã trạng thái. Toàn bộ hệ thống này phức tạp và tốn nhiều tài nguyên hơn mức cần thiết. Các bạn thực sự đã giúp tôi ra. Cảm ơn!
Nate Marek
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.