Excel không phải là chương trình bảng tính đầu tiên. Lotus 1-2-3 không phải là chương trình bảng tính đầu tiên. Chương trình bảng tính đầu tiên là VisiCalc vào năm 1979. Được phát triển bởi Dan Bricklin và Bob Frankston, VisiCalc được xuất bản bởi Dan Fylstra. Ngày nay, Dan điều hành Frontline Systems. Công ty của ông đã viết Solver được sử dụng trong Excel. Frontline Systems cũng đã phát triển một bộ phần mềm phân tích toàn bộ hoạt động với Excel.
Nếu bạn có Excel, bạn có Solver. Nó có thể không được kích hoạt, nhưng bạn có nó. Để bật Solver trong Excel, nhấn Alt + T, sau đó nhấn I. Thêm dấu kiểm bên cạnh Solver Add-in.

Để sử dụng thành công Solver, bạn phải xây dựng mô hình trang tính có ba yếu tố:
- Phải có một ô Mục tiêu. Đây là ô mà bạn muốn thu nhỏ, tối đa hóa hoặc đặt thành một giá trị cụ thể.
- Có thể có nhiều ô đầu vào. Đây là một cải tiến cơ bản so với Goal Seek, có thể xử lý chỉ với một ô đầu vào.
- Có thể có những ràng buộc.
Mục tiêu của bạn là xây dựng các yêu cầu về lịch trình cho một công viên giải trí. Mỗi nhân viên sẽ làm việc liên tục năm ngày và sau đó có hai ngày nghỉ. Có bảy cách khả thi khác nhau để lên lịch cho ai đó trong năm ngày liên tục và hai ngày nghỉ. Chúng được hiển thị dưới dạng văn bản trong A4: A10 trong hình bên dưới. Các ô màu xanh lam trong B4: B10 là các ô đầu vào. Đây là nơi bạn chỉ định có bao nhiêu người làm việc cho mỗi lịch trình.
Ô Mục tiêu là tổng Bảng lương / Tuần, được hiển thị trong B17. Đây là phép toán đơn giản: Tổng số người từ B11 nhân với mức lương 68 đô la mỗi người mỗi ngày. Bạn sẽ yêu cầu Solver tìm cách giảm thiểu tiền lương hàng tuần.
Hộp màu đỏ hiển thị các giá trị sẽ không thay đổi. Đây là số lượng người bạn cần làm việc công viên vào mỗi ngày trong tuần. Bạn cần ít nhất 30 người vào những ngày cuối tuần bận rộn - nhưng chỉ cần 12 người vào thứ Hai và thứ Ba. Các ô màu cam sử dụng SUMPRODUCT để tính toán số lượng người sẽ được lên lịch mỗi ngày, dựa trên các đầu vào trong các ô màu xanh lam.
Các biểu tượng trong hàng 15 cho biết bạn cần nhiều người hơn hay ít người hơn hoặc liệu bạn có chính xác số lượng người phù hợp hay không.
Đầu tiên, tôi đã cố gắng giải quyết vấn đề này mà không có Trình giải quyết. Tôi đi cùng 4 nhân viên mỗi ngày. Điều đó thật tuyệt, nhưng tôi không có đủ người vào Chủ nhật. Vì vậy, tôi bắt đầu tăng lịch trình để có thêm nhân viên vào Chủ nhật. Tôi đã kết thúc với một thứ hoạt động hiệu quả: 38 nhân viên và 2,584 đô la tiền lương hàng tuần.

Tất nhiên, có một cách dễ dàng hơn để giải quyết vấn đề này. Nhấp vào biểu tượng Bộ giải trên tab Dữ liệu. Nói với Solver rằng bạn đang cố gắng đặt mức lương trong B17 ở mức tối thiểu. Các ô đầu vào là B4: B10.
Ràng buộc thuộc loại rõ ràng và không quá rõ ràng.
Ràng buộc rõ ràng đầu tiên là D12: J12 phải là >= D14:J14
.
Tuy nhiên, nếu bạn cố gắng chạy Solver ngay bây giờ, bạn sẽ nhận được kết quả kỳ lạ với số người theo tỷ lệ nhỏ và có thể là số âm những người làm việc theo lịch trình nhất định.
Mặc dù có vẻ rõ ràng là bạn không thể thuê 0,39 người, nhưng bạn cần thêm các ràng buộc để cho Solver biết rằng B4: B10 là >= 0
và B4: B10 là số nguyên.

Chọn Simplex LP làm phương pháp giải và nhấp vào Giải. Trong giây lát, Solver đưa ra một giải pháp tối ưu.
Solver tìm ra cách để trang trải nhân viên của công viên giải trí bằng cách sử dụng 30 nhân viên thay vì 38. Khoản tiết kiệm mỗi tuần là $ 544-hoặc hơn $ 7000 trong suốt mùa hè.

Lưu ý năm ngôi sao bên dưới Nhân viên Cần thiết trong hình trên. Lịch trình mà Solver đề xuất đáp ứng nhu cầu chính xác của bạn trong năm trong bảy ngày. Sản phẩm phụ là bạn sẽ có nhiều nhân viên vào thứ Tư và thứ Năm hơn mức bạn thực sự cần.
Tôi có thể hiểu cách Solver đưa ra giải pháp này. Bạn cần rất nhiều người vào thứ bảy, chủ nhật và thứ sáu. Một cách để thu hút mọi người đến đó vào ngày đó là cho họ nghỉ thứ Hai và thứ Ba. Đó là lý do tại sao Solver đã cho 18 người nghỉ thứ Hai và thứ Ba.
Nhưng chỉ vì Solver đưa ra một giải pháp tối ưu không có nghĩa là không có các giải pháp tối ưu tương đương khác.
Khi tôi chỉ phỏng đoán về nhân sự, tôi không thực sự có một chiến lược tốt.
Bây giờ Solver đã đưa cho tôi một trong những giải pháp tối ưu, tôi có thể đội mũ logic của mình. Có 28 nhân viên trong độ tuổi đại học vào thứ Tư và thứ Năm khi bạn chỉ cần 15 hoặc 18 nhân viên sẽ dẫn đến rắc rối. Sẽ không có đủ để làm. Thêm vào đó, với số lượng người đứng đầu chính xác vào năm ngày, bạn sẽ phải gọi cho ai đó làm thêm giờ nếu người khác gọi đến ốm.
Tôi tin tưởng Solver rằng tôi cần có 30 người để làm việc này. Nhưng tôi cá rằng tôi có thể sắp xếp lại những người đó để phù hợp với lịch trình và cung cấp một khoảng đệm nhỏ vào những ngày khác.
Ví dụ: cho ai đó nghỉ thứ Tư và thứ Năm cũng đảm bảo rằng người đó làm việc vào thứ Sáu, thứ Bảy và Chủ nhật. Vì vậy, tôi chuyển một số công nhân theo cách thủ công từ hàng thứ Hai, thứ Ba sang hàng thứ Tư, thứ Năm. Tôi tiếp tục cắm các kết hợp khác nhau theo cách thủ công và đưa ra giải pháp được hiển thị bên dưới có cùng chi phí trả lương như Solver nhưng vô hình tốt hơn. Tình trạng thừa nhân viên hiện tồn tại trong bốn ngày thay vì hai ngày. Điều đó có nghĩa là bạn có thể giải quyết việc vắng mặt từ Thứ Hai đến Thứ Năm mà không cần phải gọi điện cho ai đó từ cuối tuần của họ.

Thật tệ khi tôi có thể đưa ra một giải pháp tốt hơn Solver? Không. Thực tế là tôi sẽ không thể đạt được giải pháp này nếu không sử dụng Solver. Sau khi Solver đưa cho tôi một mô hình giảm thiểu chi phí, tôi có thể sử dụng logic về các yếu tố vô hình để giữ nguyên bảng lương.
Nếu bạn cần giải quyết các vấn đề phức tạp hơn Solver có thể xử lý, hãy xem các trình giải Excel cao cấp có sẵn từ Frontline Systems.
Cảm ơn Dan Fylstra và Frontline Systems về ví dụ này. Walter Moore minh họa tàu lượn XL.