Chọn các thanh thép theo tổng kích thước cho trước (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nhebanchan

Thành viên mới
Tham gia
23/3/12
Bài viết
2
Được thích
1
Mình có 1 dãy số bên dưới, Làm sao để tính cộng các số trong thành 6000 hoặc nhỏ hơn một tí trong excel
( mình có các đoạn ống để cắt trong ống thép dài 6000. để tiết kiệm vật tư)
843
966
1020
1035
1073
1114
1242
1242
1242
1380
1449
1449
1449
1449
1449
1449
1449
1479
1479
1600
1671
1671
1671
1671
1932
1932
1932
1932
1932
1932
1986
2228
2228
2228
2228
2415
2898
2898
3864
 
bạn có thể tham khảo công thức đây ROUNDDOWN(SUM($A$3:$A$41),-4)
file đây ạ
 

File đính kèm

bạn có thể tham khảo công thức đây ROUNDDOWN(SUM($A$3:$A$41),-4)
file đây ạ
Anh bấm nút cảm ơn tính gan dạ của em đó. Đọc hiểu đề bài chưa em? Hình nhử hỏng trúng ý tác giả đâu. Thấy cái -4 sao sao ấy.
....
Có lẻ tác giả có nhiều đoạn ống và muốn ráp các đoạn này lại với nhau để có 1 đoạn dài khoảng 6000
 
Lần chỉnh sửa cuối:
Anh bấm nút cảm ơn tính gan dạ của em đó. Đọc hiểu đề bài chưa em? Hình nhử hỏng trúng ý tác giả đâu. Thấy cái -4 sao sao ấy.

Làm sao để tính cộng các số trong thành 6000 hoặc nhỏ hơn một tí trong excel em nghĩ như sau ạ, cộng sao cho kết quả cuối cùng là 6000 hì hì, hôm trước có trường hợp chị ở cty cộng thang cáp, có 245 m thang cáp chị ý hỏi làm sao lên 300 m thang cáp ? dùng làm làm Ceiling .
em nghĩ vậy nên trả lời thôi. nếu sai Thầy sửa em sẽ học.
 
Mình có 1 dãy số bên dưới, Làm sao để tính cộng các số trong thành 6000 hoặc nhỏ hơn một tí trong excel
( mình có các đoạn ống để cắt trong ống thép dài 6000. để tiết kiệm vật tư)
843
966
1020
1035
1073
1114
1242
1242
1242
1380
1449
1449
1449
1449
1449
1449
1449
1479
1479
1600
1671
1671
1671
1671
1932
1932
1932
1932
1932
1932
1986
2228
2228
2228
2228
2415
2898
2898
3864
Có phải đây là bài toán cắt vật liệu 1 cách tối ưu không bạn?
Bạn tham khảo ở đây xem có ứng dụng vào bài của bạn không http://www.giaiphapexcel.com/forum/...ôm-để-bỏ-đầu-thừa-ít-nhất&p=327717#post327717
 
Có lẻ Sư Phụ hiểu đúng,
Em thì không biết Solver, em hiểu đề bài như thế này
1. Với mãng đề đã cho tìm tập hợp các số (xem là mãng có số phần tử bất kỳ) có tổng là 6000 (hoặc nhỏ hơn, đương nhiên là càng gần với 6000 càng tốt và không thể lớn hơn 6000). Có thể có nhiều mãng số và đương nhiên các mãng không có các phần tử trùng nhau. Theo đề ra như trên xem như số lượng mỗi chiều dài như trên có 1 Thanh
2. Có thể các mãng số tìm được có các phần tử trùng nhau. Trường hợp này tác giả "quên" đưa số lượng thanh cho mỗi chiều dài, nếu vậy mãng đề bài cho gồm có 2 cột: 1 cột là như trên (chiều dài) và 1 cột là số lượng thanh tương ứng
Vậy cho em hỏi Solver làm được như ý em đã trình bày trên không?
 
Lần chỉnh sửa cuối:
Có lẻ Sư Phụ hiểu đúng,
Em thì không biết Solver, em hiểu đề bài như thế này
1. Với mãng đề đã cho tìm tập hợp các số (xem là mãng có số phần tử bất kỳ) có tổng là 6000 (hoặc nhỏ hơn, đương nhiên là càng gần với 6000 càng tốt và không thể lớn hơn 6000). Có thể có nhiều mãng số và đương nhiên các mãng không có các phần tử trùng nhau. Theo đề ra như trên xem như số lượng mỗi chiều dài như trên có 1 Thanh
2. Có thể các mãng số tìm được có các phần tử trùng nhau. Trường hợp này tác giả "quên" đưa số lượng thanh cho mỗi chiều dài, nếu vậy mãng đề bài cho gồm có 2 cột: 1 cột là như trên (chiều dài) và 1 cột là số lượng thanh tương ứng
Vậy cho em hỏi Solver làm được như ý em đã trình bày trên không?

Mấy bài toán về xây dựng tôi không rành lắm, nhưng nói chung, nếu ta có thể đưa ra những điều kiện ràng buộc một cách rõ ràng (càng chi tiết càng tốt) thì Solver sẽ làm được
Bạn cứ cho file lên đây rồi tính tiếp nhé
 
Mấy bài toán về xây dựng tôi không rành lắm, nhưng nói chung, nếu ta có thể đưa ra những điều kiện ràng buộc một cách rõ ràng (càng chi tiết càng tốt) thì Solver sẽ làm được
Bạn cứ cho file lên đây rồi tính tiếp nhé
Sư Phụ làm cho em xem để học hỏi thêm
Em xin cảm ơn
 

File đính kèm

Sư Phụ làm cho em xem để học hỏi thêm
Em xin cảm ơn

Làm thử thế này xem:
- Bật Solver AddIn lên (trong cửa sổ AddIn)
- Trong cửa sổ VBA, vào Tools\Refereces và check mục Solver
- Trên bảng tính, gõ số 0 vào toàn bộ các cell tại C4:C41
- Trên bảng tính, gõ công thức này vào E2:
Mã:
=IF(SUMPRODUCT(A4:A41,C4:C41)>6000,0,SUMPRODUCT(A4:A41,C4:C41))
Chạy code dưới đây:
Mã:
Sub SolverTest()
  SolverReset
  SolverOk "$E$2", 1, 0, "$C$4:$C$41"
  SolverAdd "$C$4:$C$41", 1, "$B$4:$B$41"
  SolverAdd "$C$4:$C$41", 3, "0"
  SolverAdd "$C$4:$C$41", 4, "integer"
  SolverOk "$E$2", 1, 0, "$C$4:$C$41"
  SolverSolve True
  SolverReset
End Sub
Xong, nhìn kết quả tại cột C, cell nào cho kết quả = bao nhiêu nghĩa là số thanh thép = bấy nhiêu
-----------------
Cũng có thể làm bằng tay theo các điều kiện trong Solver như sau:
$C$4:$C$41 <= $B$4:$B$41
$C$4:$C$41 >=0
$C$4:$C$41 = "int"

Untitled.jpg
 

File đính kèm

Lần chỉnh sửa cuối:
Làm thử thế này xem:
- Bật Solver AddIn lên (trong cửa sổ AddIn)
- Trong cửa sổ VBA, vào Tools\Refereces và check mục Solver
- Trên bảng tính, gõ số 0 vào toàn bộ các cell tại C4:C41
- Trên bảng tính, gõ công thức này vào E2:
Mã:
=IF(SUMPRODUCT(A4:A41,C4:C41)>6000,0,SUMPRODUCT(A4:A41,C4:C41))
Chạy code dưới đây:
Mã:
Sub SolverTest()
  SolverReset
  SolverOk "$E$2", 1, 0, "$C$4:$C$41"
  SolverAdd "$C$4:$C$41", 1, "$B$4:$B$41"
  SolverAdd "$C$4:$C$41", 3, "0"
  SolverAdd "$C$4:$C$41", 4, "integer"
  SolverOk "$E$2", 1, 0, "$C$4:$C$41"
  SolverSolve True
  SolverReset
End Sub
Xong, nhìn kết quả tại cột C, cell nào cho kết quả = bao nhiêu nghĩa là số thanh thép = bấy nhiêu
-----------------
Cũng có thể làm bằng tay theo các điều kiện trong Solver như sau:
$C$4:$C$41 <= $B$4:$B$41
$C$4:$C$41 >=0
$C$4:$C$41 = "int"
Cảm ơn Sư Phụ
Nhưng có thể có nhiều mãng kết quả không Sư Phụ, nếu có làm bằng cách nào?
Em thử như vậy với nhiều cột đều cho kết quả giống nhau
 
Cảm ơn Sư Phụ
Nhưng có thể có nhiều mãng kết quả không Sư Phụ, nếu có làm bằng cách nào?
Em thử như vậy với nhiều cột đều cho kết quả giống nhau

Cột C cho ra mấy con số rồi, từ đó xuất ra mảng gì đó như bạn nói đâu có vấn đề gì chứ ---> Bạn thừa sức làm mà
Còn cái chuyện thử nhiều cột cho cùng kết quả thì phải hỏi.. anh Bill, sao tôi biết được
Nói chung, loại bài toán này nếu không dùng Solver mà tự viết code thì có vẻ vô cùng khó khăn
 
Web KT

Bài viết mới nhất

Back
Top Bottom