Memperbaiki formula IF dan MEMILIH bersarang

2

Saya menerima status mingguan untuk pesanan pekerjaan terbuka kami sebagai file CSV. Ini termasuk kode status 3 huruf yang terkait dengan langkah-langkah berbeda dalam proses penyelesaian.

Saya perlu menempatkan definisi bahasa sederhana di tempat kode status.

Spreadsheet saya melakukan ini secara otomatis, tetapi spreadsheet yang saya rasakan seperti yang saya lakukan sekarang benar-benar tidak efisien. Lembar yang melakukan ini, dengan sendirinya, lebih dari 75 MB, dan menutupi semuanya.

Cara kerja lembar saya saat ini adalah kisi 16 kolom yang dengan kode status dari CSV di [@ [SO Codes] dan daftar statis kode di Row 1. Setiap baris lainnya 16-lintas dengan:

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

Jadi setiap kode status akan diberi nomor dari 1 hingga 16 yang muncul di kotak 16x [jumlah pesanan kerja yang terbuka].

Kolom terakhir adalah:

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

Akhirnya, itu masuk ke pelacak saya dengan garis-garis yang terlihat seperti: =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))

Di mana kolom L adalah daftar definisi kode plaintext, dan J3 memberi makan subtotal dari kalkulator kode status.

Saya tidak dapat menahan bahwa harus ada cara yang lebih elegan dan efisien untuk melakukan ini. Adakah wawasan? Saya mencoba menggunakan fungsi = PILIH langsung pada kode dari CSV, tetapi hanya bekerja pada nilai numerik. Saya sudah memasukkan gambar dari setiap langkah, karena saya merasa saya telah menjelaskan ini dengan buruk.

Kalkulator Kode CSV masukkan deskripsi gambar di sini

Pelacak masukkan deskripsi gambar di sini

Nate Marek
sumber
Jumlahnya lebih cepat daripada subtotal (9, ... Vlookup lebih cepat daripada = IF ([@ [SO Codes]] = Table3 [[# Header], [AA]], 1,0) ... tetapi apakah Anda punya tahun data ditutup yang disembunyikan di filter pintar? mengapa begitu besar? = Vlookup (sel teks, array dengan Kode di kolom 1, 2 (jika Keterangan di kolom 2), 0 = pencocokan persis)
Sunnyskyguy EE75

Jawaban:

1

Formula Choose itu dapat ditulis sebagai

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

Tidak yakin saya mengerti apa masalahnya.

teylyn
sumber
dua Vlookup, kemungkinan Deskripsi dan Status Kode
Sunnyskyguy EE75
0

kode kalkulator:

Alih-alih tabel panjang Anda dapat menggunakan satu MATCH():
=MATCH([@[SO CODES]],TableHelper[code list],0)
masukkan deskripsi gambar di sini

Pelacak

Di sini saya tidak yakin saya memahami formula asli Anda dengan benar.

=CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3)...- Apa yang terjadi jika [@Status]<>J2? Atau itu skenario yang tidak realistis? Jika ya, maka gunakan saja INDEX()fungsi sederhana :
=INDEX($L$2:$L$17,[@Status])

Kalau tidak, sebutkan apa yang harus dilakukan formula Anda.

Optimalisasi utama:

Sekali lagi, jika Anda memahami masalah Anda dengan baik: Anda bahkan tidak perlu dua lembar, hanya satu.

Saya mencoba menggunakan fungsi = PILIH langsung pada kode dari CSV, tetapi hanya bekerja pada nilai numerik

Memang, Anda dapat memberi makan kode secara langsung, cukup gunakan VLOOKUP(), sesuatu seperti ini:
=VLOOKUP(<code>,$J:$K,2,false)

Dimana

  • <code> adalah kode yang Anda inginkan untuk mendapatkan deskripsi
  • $J:$K adalah kolom kode dan deskripsi sesuai dengan tangkapan layar Anda
Máté Juhász
sumber
Terima kasih atas semua jawabannya! Jelas bahwa saya perlu belajar cara menggunakan = vlookup. Saya baru mengenal Excel. Bagaimanapun, tabel pertama mengubah kode status 3 huruf menjadi angka. Tabel kedua melihat apa nomornya, dan kemudian mengembalikan deskripsi bahasa yang sesuai untuk kode status. Seluruh sistem ini jauh lebih berbelit-belit dan intensif sumber daya daripada yang seharusnya. Kalian benar-benar membantu saya. Terima kasih!
Nate Marek