Pengenalan Solver - Petua Excel

Isi kandungan

Solver telah menjadi tambahan percuma sejak zaman Lotus 1-2-3

Excel bukan program spreadsheet pertama. Lotus 1-2-3 bukan program spreadsheet pertama. Program spreadsheet pertama adalah VisiCalc pada tahun 1979. Dibangunkan oleh Dan Bricklin dan Bob Frankston, VisiCalc diterbitkan oleh Dan Fylstra. Hari ini, Dan menjalankan Sistem Frontline. Syarikatnya menulis Solver yang digunakan dalam Excel. Ia juga telah mengembangkan seluruh rangkaian perisian analisis yang berfungsi dengan Excel.

Sekiranya anda mempunyai Excel, anda mempunyai Penyelesai. Mungkin tidak diaktifkan, tetapi anda memilikinya. Untuk mengaktifkan Solver di Excel, tekan alt = "" + T diikuti oleh I. Tambahkan tanda semak di sebelah Solver.

Diaktifkan Penyelesai dalam Excel

Untuk berjaya menggunakan Solver, anda harus membina model lembaran kerja yang mempunyai tiga elemen:

  • Harus ada satu sel Matlamat. Ini adalah sel yang anda mahu meminimumkan, memaksimumkan, atau menetapkan nilai tertentu.
  • Terdapat banyak sel input. Ini adalah satu peningkatan mendasar berbanding Goal Seek, yang hanya dapat menangani satu sel input.
  • Mungkin ada kekangan.

Matlamat anda adalah untuk membina keperluan penjadualan untuk taman hiburan. Setiap pekerja akan bekerja lima hari berturut-turut dan kemudian mempunyai cuti dua hari. Terdapat tujuh cara yang berbeza untuk menjadualkan seseorang selama lima hari berturut-turut dan dua hari cuti. Ini ditunjukkan sebagai teks dalam A4: A10. Sel biru di B4: B10 adalah sel input. Di sinilah anda menentukan berapa orang yang anda bekerja setiap jadual.

Sel Matlamat adalah jumlah Gaji per Minggu, ditunjukkan dalam B17. Ini adalah matematik lurus: Jumlah orang dari B11 kali gaji $ 68 setiap orang setiap hari. Anda akan meminta Penyelesai mencari jalan untuk meminimumkan gaji mingguan.

Kotak merah menunjukkan nilai yang tidak akan berubah. Ini adalah berapa banyak orang yang anda perlukan bekerja di taman pada setiap hari dalam seminggu. Anda memerlukan sekurang-kurangnya 30 orang pada hari hujung minggu yang sibuk - tetapi hanya 12 orang pada hari Isnin dan Selasa. Sel oren menggunakan SUMPRODUCT untuk mengira berapa orang yang akan dijadualkan setiap hari berdasarkan input dalam sel biru.

Ikon di baris 15 menunjukkan sama ada anda memerlukan lebih banyak orang, atau lebih sedikit orang atau sama ada anda mempunyai bilangan orang yang tepat.

Pertama, saya cuba menyelesaikannya tanpa Penyelesai. Saya pergi dengan 4 pekerja setiap hari. Itu hebat, tetapi saya tidak mempunyai cukup orang pada hari Ahad. Oleh itu, saya mula menambah jadual yang akan memberi saya lebih ramai pekerja Ahad. Saya berakhir dengan sesuatu yang berjaya: 38 pekerja dan $ 2,584 gaji mingguan.

Kumpulan Data Contoh

Klik ikon Penyelesai pada tab Data. Beritahu Penyelesai bahawa anda cuba menetapkan gaji di B17 minimum. Sel input adalah B4: B10.

Kekangan tergolong dalam kategori yang jelas dan tidak begitu jelas.

Kekangan pertama yang jelas ialah D12: J12 mestilah> = D14: J14.

Tetapi, jika anda cuba menjalankan Solver sekarang, anda akan mendapat hasil yang pelik di mana anda mempunyai pecahan bilangan orang dan mungkin bilangan negatif orang yang menjalankan jadual tertentu.

Walaupun nampak jelas bagi anda bahawa anda tidak dapat menggaji 0,39 orang, anda perlu menambahkan batasan untuk memberitahu Solver bahawa B4: B10 adalah> = 0 dan B4: B10 adalah bilangan bulat.

Parameter Penyelesai

Pilih Simplex LP sebagai kaedah penyelesaian dan pilih Selesaikan. Dalam beberapa saat, Solver memberikan satu penyelesaian yang optimum.

Penyelesai menemui cara untuk merangkumi kakitangan taman hiburan yang menggunakan 30 pekerja dan bukannya 38 orang. Penjimatan setiap minggu adalah $ 544 - atau lebih daripada $ 7,000 sepanjang musim panas.

Menggunakan Penyelesai

Perhatikan lima bintang di bawah Pekerja yang Diperlukan. Jadual yang dicadangkan oleh Solver memenuhi keperluan tepat anda selama lima dari tujuh hari. Hasil sampingannya ialah anda akan mempunyai lebih banyak pekerja pada hari Rabu dan Khamis daripada yang anda perlukan.

Saya dapat memahami bagaimana Solver membuat penyelesaian ini. Anda memerlukan banyak orang pada hari Sabtu, Ahad, dan Jumaat. Salah satu cara untuk membuat orang di sana pada hari itu adalah dengan memberi mereka cuti Isnin dan Selasa. Itulah sebabnya Solver memberhentikan 18 orang dengan cuti Isnin dan Selasa.

Tetapi hanya kerana Solver memberikan penyelesaian yang optimum tidak bermakna tidak ada penyelesaian yang sama optimalnya.

Ketika saya hanya meneka staf, saya sebenarnya tidak mempunyai strategi yang baik.

Setelah Solver memberi saya salah satu penyelesaian yang optimum, saya boleh memakai topi logik saya. Mempunyai 28 pekerja usia kuliah pada hari Rabu dan Khamis apabila anda hanya memerlukan 15 atau 18 pekerja akan menimbulkan masalah. Tidak akan cukup untuk dilakukan. Selain itu, dengan jumlah pekerja yang tepat selama lima hari, anda perlu memanggil seseorang untuk kerja lebih masa sekiranya orang lain memanggilnya sakit.

Saya mempercayai Solver bahawa saya perlu mempunyai 30 orang untuk membuat kerja ini. Tetapi saya yakin bahawa saya dapat menyusun semula orang-orang itu agar tidak mengikut jadual dan memberikan penyangga kecil pada hari-hari lain.

Sebagai contoh, memberi seseorang cuti pada hari Rabu dan Khamis juga memastikan orang itu bekerja pada hari Jumaat, Sabtu, dan Ahad. Oleh itu, saya secara manual memindahkan beberapa pekerja dari baris Isnin, Selasa ke baris hari Khamis Rabu. Saya terus memasukkan kombinasi yang berbeza secara manual dan menghasilkan penyelesaian ini yang mempunyai perbelanjaan gaji yang sama dengan Penyelesai tetapi tidak ketara. Situasi pekerja berlebihan kini berlaku pada empat hari dan bukannya dua hari. Ini bererti anda dapat menangani pemberhentian pada hari Isnin hingga Khamis tanpa perlu menghubungi seseorang dari hujung minggu mereka.

Keputusan

Adakah teruk saya dapat menghasilkan penyelesaian yang lebih baik daripada Solver? Tidak. Faktanya adalah bahawa saya tidak akan dapat mendapatkan penyelesaian ini tanpa menggunakan Solver. Setelah Solver memberi saya model yang meminimumkan kos, saya dapat menggunakan logik mengenai intangibles untuk mengekalkan gaji yang sama.

Sekiranya anda perlu menyelesaikan masalah yang lebih kompleks daripada yang dapat diselesaikan oleh Solver, periksa pemecah Excel premium yang terdapat di Frontline Systems: http://mrx.cl/solver77.

Terima kasih kepada Dan Fylstra dan Frontline Systems untuk contoh ini. Walter Moore menggambarkan roller coaster XL.

Tonton Video

  • Solver telah menjadi tambahan percuma sejak zaman Lotus 1-2-3
  • Solver adalah produk pengasas Visicorp Dan Fylstra
  • Penyelesai dalam Excel anda adalah versi pemecah tugas berat yang lebih kecil
  • Ketahui lebih lanjut mengenai penyelesai pro: http://mrx.cl/solver77
  • Untuk memasang Solver, ketik alt = "" + T kemudian I. Periksa Solver.
  • Penyelesai akan dijumpai di sebelah kanan tab Data
  • Anda ingin mempunyai sel objektif yang anda cuba kurangkan atau maksimumkan.
  • Anda boleh menentukan beberapa sel input.
  • Anda boleh menentukan batasan, termasuk beberapa yang tidak anda jangkakan:
  • Tiada separuh orang: Gunakan INT untuk Integer
  • Penyelesai akan mencari penyelesaian yang optimum, tetapi mungkin ada yang lain yang mempunyai hubungan
  • Sebaik sahaja anda mendapat penyelesaian Penyelesaian, anda mungkin dapat mengubahnya.

Transkrip Video

Belajar Excel dari podcast, episod 2036 - Pengenalan kepada Penyelesai!

Baiklah, saya menyiarkan keseluruhan buku ini, klik “i” di sudut kanan atas untuk masuk ke senarai main, di mana anda boleh memainkan semua video!

Selamat kembali ke netcast, saya Bill Jelen. Kami membincangkan beberapa analisis What-If baru-baru ini, seperti Goal Seek, anda tahu, dengan satu sel input yang anda ubah, tetapi bagaimana jika anda mempunyai sesuatu yang lebih kompleks? Terdapat alat hebat yang disebut Solver, Solver sudah lama wujud, saya jamin jika anda mempunyai Excel dan anda menjalankan Windows, anda mempunyai Solver, kemungkinan ia tidak dihidupkan. Oleh itu, untuk menghidupkannya, anda perlu pergi ke alt = "" T dan kemudian saya, jadi T untuk Tom, saya untuk ais krim, dan tandakan kotak ini untuk Solver, klik OK, dan selepas beberapa saat, anda akan mempunyai tab Penyelesai di sini di sebelah kanan. Baiklah, dan kita akan menyiapkan model di sini yang mungkin dapat diselesaikan oleh penyelesai, kita mempunyai taman hiburan, kita berusaha untuk mengetahui berapa banyak pekerja yang akan dijadualkan. Semua orang bekerja lima hari berturut-turut, jadi di sana 'benar-benar tujuh jadual yang mungkin untuk anda pergi, Ahad Isnin, Isnin Selasa, Selasa Rabu. Kita harus memikirkan berapa banyak pekerja yang perlu ditempatkan pada setiap jadual tersebut.

Oleh itu, hanya sedikit matematik sederhana di sini, melakukan beberapa RINGKASAN, bilangan pekerja kali Ahad untuk mengetahui berapa banyak orang yang berada di sana pada hari Ahad, Isnin, Selasa, Rabu. Dan apa yang telah kita pelajari semasa mengendalikan taman hiburan ini adalah kita memerlukan banyak orang pada hari Sabtu dan Ahad. 30 orang pada hari Sabtu dan Ahad, pada minggu Isnin, Selasa, agak lambat, 12 kakitangan akan dapat melakukannya. Baiklah, hanya dengan datang ke sini dan hanya mencari-cari, anda tahu, dengan mencari nombor yang betul, anda boleh terus memasukkannya, tetapi dengan tujuh pilihan yang berbeza, ia akan berlangsung selamanya, baiklah.

Sekarang di Solver, apa yang kita ada, kita mempunyai serangkaian sel input, dan dalam versi percuma Solver, saya rasa anda boleh memiliki, adakah itu seratus? Saya tidak tahu, ada beberapa nombor, dan jika anda harus melampaui itu, ada Penyelesai Premium yang boleh anda dapatkan dari Frontline Systems. Baiklah, jadi kami mempunyai beberapa sel input, kami mempunyai beberapa sel kekangan, dan kemudian anda harus menurunkan semuanya ke nombor akhir. Jadi dalam kes saya, saya cuba meminimumkan gaji setiap minggu, jadi nombor hijau adalah perkara yang ingin saya cuba dan optimalkan, baiklah, jadi inilah yang akan kami lakukan!

Penyelesai, inilah sel objektif, itu adalah sel hijau, dan saya ingin menetapkannya ke nilai minimum, cari kakitangan yang memberi saya nilai minimum, dengan menukar sel biru ini. Dan berikut adalah kekangan, baiklah, jadi kekangan pertama adalah bahawa jumlah jadual harus> = bahagian merah, dan kita dapat melakukan semua itu sebagai satu kekangan. Perhatikan betapa kerennya ini, semua sel ini mestilah> = sel yang sesuai di sini, hebat, klik Tambah, baiklah, tetapi kemudian ada perkara lain yang tidak akan anda fikirkan. Sebagai contoh, Penyelesai pada masa ini mungkin memutuskan bahawa yang terbaik adalah mempunyai 17 orang dalam jadual ini, 43 orang dalam jadual, dan -7 orang dalam jadual ini. Baiklah, jadi kita harus memberitahu Penyelesai bahawa sel input ini mestilah bilangan bulat, klik Tambah. Kita juga tidak boleh meminta seseorang tidak muncul,dan mereka akan mengembalikan gaji mereka, bukan? Jadi kita akan mengatakan sel-sel ini harus> = 0, klik Tambah, kita kembali sekarang, kita mempunyai tiga kekangan di sana.

Terdapat tiga cara yang berbeza untuk menyelesaikannya, dan yang satu ini mengikut matematik linier, jadi kita boleh menggunakan Simplex LP. Sekiranya yang satu ini tidak berfungsi, maka cubalah dua yang lain, saya mempunyai kes di mana Simplex mengatakan bahawa ia tidak dapat mencari jalan penyelesaian, dan salah satu dari dua yang lain berfungsi. Frontline Systems mempunyai tutorial hebat mengenai Solver, saya hanya mencuba untuk anda melalui yang pertama di sini hari ini, saya tidak menyatakan menjadi ahli Solver. Sebaik sahaja saya mempunyai Penyelesai yang tidak akan berfungsi, dan saya menghantar nota ke Frontline Systems, dan wow, saya mendapat surat 5 halaman yang mengagumkan ini, tepat, dari Dan Fylstra sendiri, presiden Solver! Dan ia bermula: "Dear Bill, senang mendengar daripada anda!" Dan kemudian pergi sejauh 4.9 halaman, semuanya hampir betul-betul di atas kepala saya, tidak mengapa Tetapi anda tahu, saya cukup tahu mengenai Solver untuk menyelesaikannya, baiklah,jadi kita akan klik di sini di Selesaikan, ia menemui jalan keluar, "Semua Kekangan dan keadaan optimum dipenuhi." Saya akan menyimpannya, saya dapat membuat beberapa laporan, tidak perlu melakukannya sekarang. Oh, saya benar-benar dapat menyimpan senario, saya mengolok-olok senario semalam, mungkin Solver dapat membuat senario baru untuk saya, jadi kami akan mengklik OK.

Baiklah, dan sudah pasti ia menjimatkan wang kita, kita menulis 2584 sebelumnya, dan sekarang menjadikan kita turun hingga 2040. Oleh itu, kita memerlukan banyak orang cuti pada hari Isnin dan Selasa, baiklah, beberapa orang, 2 orang cuti pada hari Rabu Khamis, dan kemudian hari Jumaat Sabtu. Baiklah, ini sangat mengagumkan, saya tidak akan pernah mendapat jawapan ini secara rawak, baiklah, tetapi adakah itu bermaksud jawapan terbaik? Ini bermaksud, ini adalah gaji minimum, tetapi saya mungkin dapat memberikan pelbagai jawapan yang masih mempunyai gaji minimum ini. Ada cara lain untuk melakukannya, itu mungkin jadual yang sedikit lebih baik. Seperti contohnya, sekarang kita mempunyai 28 orang pada hari Rabu dan Khamis, ketika kita hanya memerlukan 15 dan 18 orang, itulah banyak orang. Fikirkan siapa yang bekerja di taman hiburan, ini adalah anak-anak kuliah di rumah untuk berehat,ini akan menjadi masalah sekiranya kita mempunyai banyak orang tambahan. Dan pada hari Isnin Selasa, kita hampir mati, tepat di tempat kita mahu berada. Oleh itu, jika ada orang yang saya akan berhenti sakit, sekarang anda perlu memanggil anda dan membayar mereka setengah jam, kerana mereka sudah bekerja lima hari yang lain.

Baiklah, jadi hanya dengan sedikit matematik sederhana di sini, jika saya akan mengambil 8 dari hari Isnin Selasa, dan menjadikannya 10, dan mengambil 8 dan menambahkannya ke hari Rabu Khamis, baiklah. Sekarang saya mempunyai penyelesaian Penyelesaian dengan jawapan yang sama, 2040, mereka mendapat jumlah orang yang tepat. Saya hanya mengimbangkan jadual, dan sekarang kami mempunyai 8 tambahan, 8 tambahan, 3 tambahan, dan 2 tambahan, dan apa yang kami perlukan pada hujung minggu yang, anda tahu, senario kakitangan penuh. Bagi saya, ini sedikit lebih baik daripada apa yang dibuat oleh Solver, adakah itu bermaksud bahawa penyelesai gagal? Tidak, sama sekali tidak, kerana saya tidak akan pernah mencapai ini tanpa Solver. Sebaik sahaja Penyelesai memberi saya jawapan, ya, saya dapat mengubahnya sedikit dan sampai di sana, baiklah. Petua # 37, "40 Petua Excel Terhebat Sepanjang Masa", menjelang akhir 40 pertama, pengenalan kecil yang hebat untuk Solver.Panduan untuk semua podcast dalam siri ini ada di sini, "MrExcel XL - 40 Tip Excel Terbaik Sepanjang Masa", anda boleh memiliki e-book dengan harga hanya $ 10, mencetak buku dengan harga $ 25, klik "i" di bahagian atas - sudut tangan kanan!

Baiklah, rekap: Selesaikan, jika anda menggunakan Excel versi Windows, Lotus 1-2-3, ia ada, ia dicipta oleh pengasas Visicorp Dan Fylstra. Ini adalah versi percuma pemecah tugas berat, berikut adalah pautan untuk melihat pemecah tugas berat, yang akan turun dalam komen YouTube. Kemungkinan mereka tidak dipasang, alt = "" TI, tandakan Penyelesai, lihat di sebelah kanan tab Data untuk mencari Penyelesai. Baiklah, anda mesti mempunyai sel objektif yang anda cuba kurangkan atau maksimumkan atau tetapkan ke nilai, satu julat sel input. Nyatakan kekangan, termasuk sesuatu yang tidak dijangka, seperti saya harus mengatakan "Tidak ada orang setengah" dan "Tidak ada orang negatif". Penyelesai akan mencari penyelesaian yang optimum, tetapi mungkin ada yang lain yang mengikat dan anda mungkin dapat mengubahnya untuk mendapatkan penyelesaian yang lebih baik.

Baiklah, di sana anda memilikinya, saya ingin mengucapkan terima kasih kerana berhenti, kami akan berjumpa anda di lain kali untuk siaran net lain!

Muat turun fail

Muat turun fail contoh di sini: Podcast2036.xlsx

Artikel menarik...