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.
Jawaban:
Formula Choose itu dapat ditulis sebagai
Tidak yakin saya mengerti apa masalahnya.
sumber
kode kalkulator:
Alih-alih tabel panjang Anda dapat menggunakan satu
MATCH()
:=MATCH([@[SO CODES]],TableHelper[code list],0)
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 sajaINDEX()
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.
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 Andasumber