chi ngan nguyen
Thành viên mới

- Tham gia
- 13/12/19
- Bài viết
- 46
- Được thích
- 1
Bạn mô tả chi tiết hơn, nhìn vào chẳng hiểu bạn muốn gì luôn. Nêu cụ thể vấn đề mong muốn và ví dụ minh họa cụ thể.em có một file excel, nhờ anh chị tính tổng dùm em với ạ
Bạn mô tả chi tiết hơn, nhìn vào chẳng hiểu bạn muốn gì luôn. Nêu cụ thể vấn đề mong muốn và ví dụ minh họa cụ thể.nhờ
nhờ bạn giải thích rỏ hơn dùm ạ,vì mình không biết dùng VBA, hay bạn chưa hiểu ý mình để mình giải thích thêm ạBạn mô tả chi tiết hơn, nhìn vào chẳng hiểu bạn muốn gì luôn. Nêu cụ thể vấn đề mong muốn và ví dụ minh họa cụ thể.
Bạn phải cho điều kiện như thế nào để ra 335 thì mới làm được chứ!nhờ bạn giải thích rỏ hơn dùm ạ,vì mình không biết dùng VBA, hay bạn chưa hiểu ý mình để mình giải thích thêm ạ
bạn xem file excel nhéhiểu đc chết liền
lấy chính xác nha anh, nhờ anh giải giùm cho e với, chứ em tìm rồi em cũng không biết cách làmRõ khổ, tại sao mô tả một bài toán mà xoắn xít vào nhau thế.
Mười mấy năm học tiếng Việt thì cũng tới lúc vận dụng chứ.
Viết như thế này:
Cho trước một dãy số (số lượng gì đó) tại cột A.
Điều kiện đầu vào cho một giá trị cụ thể là x.
Yêu cầu cần làm:
Lựa chọn các số trong cột A, một giá trị chỉ lấy 1 lần, sao cho tổng các giá trị cần lấy gần với giá trị x nhất (bằng giá trị x, hoặc lớn hơn/ nhỏ hơn gần nhất với x). Gần nhất là bao nhiêu thì phải thêm điều kiện này vào.
Chốt hạ. Từ khóa Solver. Tìm trong diễn đàn này có nhiều bài rồi.
Bài toán này cần phải dùng đến VBA. Bạn có biết sử dụng VBA hay không? Thấy phía trên bạn có đề cập không muốn xài VBA thì phải?ví dụ giờ mình có số lượng
100
200
150
50
30
20
15
55
75
mình cần xuất hàng số lượng là 470 ( 150+50+15+55+200 )
thay vì ngồi lấy máy tính cộng lại sẽ mất thời gian, cho mình hỏi có công thức nào lấy ra được những giá trị như vậy không ạ ?
Bạn thử tải file về coi xài được không. Chắc có thể sẽ còn phát sinh linh tinh. Hy vọng giúp được ít nhiều cho bạnlà e muốn lấy ra số lượng 335 để xuất hàng, nhưng thay vì dùng máy tính để cộng, thì có hàm nào làm được không ạ
bạn cho mình code đi, chứ mình không biết viết, chỉ biết coppy code vô rồi xài thôi à, thanks bạnBài toán này cần phải dùng đến VBA. Bạn có biết sử dụng VBA hay không? Thấy phía trên bạn có đề cập không muốn xài VBA thì phải?
Chạy solver trong file đính kèm.em có một file excel, nhờ anh chị tính tổng dùm em với ạ
dạ,thanks a nhiều nhé !Bạn thử tải file về coi xài được không. Chắc có thể sẽ còn phát sinh linh tinh. Hy vọng giúp được ít nhiều cho bạn
Nhớ tìm cách enable macros nhé
Bạn mới là người ngây thơ.Rõ khổ, tại sao mô tả một bài toán mà xoắn xít vào nhau thế.
Mười mấy năm học tiếng Việt thì cũng tới lúc vận dụng chứ.
...
em chưa hiểu cách làm từ file của anh, em muốn lấy ra một số lượng khác thì làm thế nào ạChạy solver trong file đính kèm.
VBA tính sau
Phần tô màu xanh giữ nguyên, gia trị cần tìm thay đổi tại E2.em chưa hiểu cách làm từ file của anh, em muốn lấy ra một số lượng khác thì làm thế nào ạ
không phải nha bạn, t chỉ làm nhập xuất bình thường thôi, t không làm được nên mới nhờ áBạn mới là người ngây thơ.
Người ta phải tung hoả mù trước để quý vị không nhận ra loại báo cáo.
Điển hình, cuối kỳ có con số hàng bán bị nổi lên (nổi = tồn kho trên giấy tờ - tồn kho thực tế). Bi giờ bài toán là viết một mớ biên lai thanh toán con số nổi này.
thanks anh nhiều nha !Phần tô màu xanh giữ nguyên, gia trị cần tìm thay đổi tại E2.
Sau khi chạy, trong vùng C2:C21, giá trị nào = 1 -> lấy giá trị cột A tại dòng đó.
em chọn 700 thì nó chỉ tô vàng 600,còn chọn 800 thì tô vàng 700,nhờ anh chỉnh sửa dùm với ạBạn thử tải file về coi xài được không. Chắc có thể sẽ còn phát sinh linh tinh. Hy vọng giúp được ít nhiều cho bạn
Nhớ tìm cách enable macros nhé
Mình biết nguyên nhân tại sao rồi, vì có 2 số 100 nên bị như vậy. Khi nào mình ngồi máy tính sẽ gợi ý giải pháp cho bạn. Chắc đến cuối tuần mình mới về văn phòng. Mong có ai đó sửa dùmthanks anh nhiều nha !
Bài đã được tự động gộp:
em chọn 700 thì nó chỉ tô vàng 600,còn chọn 800 thì tô vàng 700,nhờ anh chỉnh sửa dùm với ạ
thanks a nha, khi nào ngồi máy tính nhờ anh sửa dùm em với ạMình biết nguyên nhân tại sao rồi, vì có 2 số 100 nên bị như vậy. Khi nào mình ngồi máy tính sẽ gợi ý giải pháp cho bạn. Chắc đến cuối tuần mình mới về văn phòng. Mong có ai đó sửa dùm
Option Explicit
Dim MgNguon(), MgKQ()
Sub A_KiemTra()
Dim k As Long, KQi() As Double, Cot As Long, n As Long, Tong As Double, Item, Tim As Range
Tong = [C1].Value
MgNguon = Range("A2", Range("A" & Rows.Count).End(3)).Value
Range("A2", Range("A" & Rows.Count).End(3)).Interior.ColorIndex = xlNone
n = UBound(MgNguon, 1)
ReDim MgKQ(1 To n, 1 To 1)
For k = 1 To n
ReDim KQi(1 To k, 1 To 1) As Double
Main k, KQi, 0, 1, 1, Cot, n, Tong
If Cot Then
Dim i, j
k = 2
For i = 1 To n
If MgKQ(i, 1) = "" Or k > Range("A" & Rows.Count).End(3).Row Then Exit For
Item = MgKQ(i, 1)
For j = k To Range("A" & Rows.Count).End(3).Row
If Range("A" & j) = Item Then
Range("A" & j).Interior.ColorIndex = 3
k = j + 1
Exit For
End If
Next j
Next i
End If
Next
Erase MgNguon: Erase MgKQ
End Sub
Sub Main(k As Long, KQi, CongDon As Double, PhanTu As Long, SoDem As Long, Cot As Long, n As Long, Tong As Double)
Dim i As Long, j As Long
If Cot Then Exit Sub
If SoDem <= k Then
For j = PhanTu To n - k + SoDem
KQi(SoDem, 1) = MgNguon(j, 1)
Main k, KQi, CongDon + KQi(SoDem, 1), j + 1, SoDem + 1, Cot, n, Tong
Next j
Else
If CongDon = Tong Then
Cot = Cot + 1
ReDim Preserve MgKQ(1 To n, 1 To Cot)
For i = 1 To k
MgKQ(i, Cot) = KQi(i, 1)
Next
End If
End If
End Sub
Những dạng nầy không dể nuốt, lúc đầu chỉ tìm 1 số, sẽ tìm tiếp số thứ 2, 3 ...@chi ngan nguyen
Thử sửa code bài 14, dùng thử
Mã:Option Explicit Dim MgNguon(), MgKQ() Sub A_KiemTra() Dim k As Long, KQi() As Double, Cot As Long, n As Long, Tong As Double, Item, Tim As Range Tong = [C1].Value MgNguon = Range("A2", Range("A" & Rows.Count).End(3)).Value Range("A2", Range("A" & Rows.Count).End(3)).Interior.ColorIndex = xlNone n = UBound(MgNguon, 1) ReDim MgKQ(1 To n, 1 To 1) For k = 1 To n ReDim KQi(1 To k, 1 To 1) As Double Main k, KQi, 0, 1, 1, Cot, n, Tong If Cot Then Dim i, j k = 2 For i = 1 To n If MgKQ(i, 1) = "" Or k > Range("A" & Rows.Count).End(3).Row Then Exit For Item = MgKQ(i, 1) For j = k To Range("A" & Rows.Count).End(3).Row If Range("A" & j) = Item Then Range("A" & j).Interior.ColorIndex = 3 k = j + 1 Exit For End If Next j Next i End If Next Erase MgNguon: Erase MgKQ End Sub
Mã:Sub Main(k As Long, KQi, CongDon As Double, PhanTu As Long, SoDem As Long, Cot As Long, n As Long, Tong As Double) Dim i As Long, j As Long If Cot Then Exit Sub If SoDem <= k Then For j = PhanTu To n - k + SoDem KQi(SoDem, 1) = MgNguon(j, 1) Main k, KQi, CongDon + KQi(SoDem, 1), j + 1, SoDem + 1, Cot, n, Tong Next j Else If CongDon = Tong Then Cot = Cot + 1 ReDim Preserve MgKQ(1 To n, 1 To Cot) For i = 1 To k MgKQ(i, Cot) = KQi(i, 1) Next End If End If End Sub
Không hiểu ý bác lắm.Những dạng nầy không dể nuốt, lúc đầu chỉ tìm 1 số, sẽ tìm tiếp số thứ 2, 3 ...
thanks bạn nhiều nha@chi ngan nguyen
Thử sửa code bài 14, dùng thử
Mã:Option Explicit Dim MgNguon(), MgKQ() Sub A_KiemTra() Dim k As Long, KQi() As Double, Cot As Long, n As Long, Tong As Double, Item, Tim As Range Tong = [C1].Value MgNguon = Range("A2", Range("A" & Rows.Count).End(3)).Value Range("A2", Range("A" & Rows.Count).End(3)).Interior.ColorIndex = xlNone n = UBound(MgNguon, 1) ReDim MgKQ(1 To n, 1 To 1) For k = 1 To n ReDim KQi(1 To k, 1 To 1) As Double Main k, KQi, 0, 1, 1, Cot, n, Tong If Cot Then Dim i, j k = 2 For i = 1 To n If MgKQ(i, 1) = "" Or k > Range("A" & Rows.Count).End(3).Row Then Exit For Item = MgKQ(i, 1) For j = k To Range("A" & Rows.Count).End(3).Row If Range("A" & j) = Item Then Range("A" & j).Interior.ColorIndex = 3 k = j + 1 Exit For End If Next j Next i End If Next Erase MgNguon: Erase MgKQ End Sub
Mã:Sub Main(k As Long, KQi, CongDon As Double, PhanTu As Long, SoDem As Long, Cot As Long, n As Long, Tong As Double) Dim i As Long, j As Long If Cot Then Exit Sub If SoDem <= k Then For j = PhanTu To n - k + SoDem KQi(SoDem, 1) = MgNguon(j, 1) Main k, KQi, CongDon + KQi(SoDem, 1), j + 1, SoDem + 1, Cot, n, Tong Next j Else If CongDon = Tong Then Cot = Cot + 1 ReDim Preserve MgKQ(1 To n, 1 To Cot) For i = 1 To k MgKQ(i, Cot) = KQi(i, 1) Next End If End If End Sub
Bạn chạy code trong file chưa?Không hiểu ý bác lắm.
Code trên sửa lại muốn giũ nguyên ý code cũ, chỉ thay đổi cách hiển thị xuống sheet.
Nếu là tự làm sẽ thêm "exit for" trong cái "if cot ...end" để hiển thị chỉ 1 kết quả
Thêm "Exit for" trong "IF Cot ... End" chạy bình thường mà bácBạn chạy code trong file chưa?
Máy mình quay vòng vòng không ra kết quả phải ngắt ngangThêm "Exit for" trong "IF Cot ... End" chạy bình thường mà bác
mình dùng cũng toàn bị đứng máy, chạy vòng vòng, muốn thoát ra thì phải tắt máy, nhờ mọi người sửa dùm với ạMáy mình quay vòng vòng không ra kết quả phải ngắt ngang
Option Explicit
Dim MgNguon(), MgKQ()
Sub A_KiemTra()
Dim k As Long, KQi() As Double, Cot As Long, n As Long, Tong As Double, Item, Tim As Range
Tong = [C1].Value
MgNguon = Range("A2", Range("A" & Rows.Count).End(3)).Value
Range("A2", Range("A" & Rows.Count).End(3)).Interior.ColorIndex = xlNone
n = UBound(MgNguon, 1)
ReDim MgKQ(1 To n, 1 To 1)
For k = 1 To n
ReDim KQi(1 To k, 1 To 1) As Double
Main k, KQi, 0, 1, 1, Cot, n, Tong
If Cot Then
Dim i, j
k = 2
For i = 1 To n
If MgKQ(i, 1) = "" Or k > Range("A" & Rows.Count).End(3).Row Then Exit For
Item = MgKQ(i, 1)
For j = k To Range("A" & Rows.Count).End(3).Row
If Range("A" & j) = Item Then
Range("A" & j).Interior.ColorIndex = 3
k = j + 1
Exit For
End If
Next j
Next i
Exit For '<-----------------
End If
Next
Erase MgNguon: Erase MgKQ
End Sub
Sub Main(k As Long, KQi, CongDon As Double, PhanTu As Long, SoDem As Long, Cot As Long, n As Long, Tong As Double)
Dim i As Long, j As Long
If Cot Then Exit Sub
If SoDem <= k Then
For j = PhanTu To n - k + SoDem
KQi(SoDem, 1) = MgNguon(j, 1)
Main k, KQi, CongDon + KQi(SoDem, 1), j + 1, SoDem + 1, Cot, n, Tong
Next j
Else
If CongDon = Tong Then
Cot = Cot + 1
ReDim Preserve MgKQ(1 To n, 1 To Cot)
For i = 1 To k
MgKQ(i, Cot) = KQi(i, 1)
Next
End If
End If
End Sub
Nếu tìm không có số lượng cần lấy thì máy cũng vẫn quay vòng không thoát được nha bạn, nhờ bạn vô sửa thêm với ạ@ Thớt
Thêm lệnh thoát vòng lặp, kiểm tra lại xem sao
Mã:Option Explicit Dim MgNguon(), MgKQ() Sub A_KiemTra() Dim k As Long, KQi() As Double, Cot As Long, n As Long, Tong As Double, Item, Tim As Range Tong = [C1].Value MgNguon = Range("A2", Range("A" & Rows.Count).End(3)).Value Range("A2", Range("A" & Rows.Count).End(3)).Interior.ColorIndex = xlNone n = UBound(MgNguon, 1) ReDim MgKQ(1 To n, 1 To 1) For k = 1 To n ReDim KQi(1 To k, 1 To 1) As Double Main k, KQi, 0, 1, 1, Cot, n, Tong If Cot Then Dim i, j k = 2 For i = 1 To n If MgKQ(i, 1) = "" Or k > Range("A" & Rows.Count).End(3).Row Then Exit For Item = MgKQ(i, 1) For j = k To Range("A" & Rows.Count).End(3).Row If Range("A" & j) = Item Then Range("A" & j).Interior.ColorIndex = 3 k = j + 1 Exit For End If Next j Next i Exit For '<----------------- End If Next Erase MgNguon: Erase MgKQ End Sub Sub Main(k As Long, KQi, CongDon As Double, PhanTu As Long, SoDem As Long, Cot As Long, n As Long, Tong As Double) Dim i As Long, j As Long If Cot Then Exit Sub If SoDem <= k Then For j = PhanTu To n - k + SoDem KQi(SoDem, 1) = MgNguon(j, 1) Main k, KQi, CongDon + KQi(SoDem, 1), j + 1, SoDem + 1, Cot, n, Tong Next j Else If CongDon = Tong Then Cot = Cot + 1 ReDim Preserve MgKQ(1 To n, 1 To Cot) For i = 1 To k MgKQ(i, Cot) = KQi(i, 1) Next End If End If End Sub
Dùng file bài 16 có bị quay không bạnNếu tìm không có số lượng cần lấy thì máy cũng vẫn quay vòng không thoát được nha bạn, nhờ bạn vô sửa thêm với ạ
mình vẫn chưa hiểu file này luôn bạn à, bạn nói lại cho mình đi.Chạy solver trong file đính kèm.
VBA tính
Mình thấy dòng lệnh này chạy được rồi nhưng với tìm tổng nhỏ hơn 1000 và dãy số không quá 20 dòng, mình test thử tìm tổng trên 2000 và dãy số là 40 dòng là chạy 5 phút không ra kết quả.@ Thớt
Thêm lệnh thoát vòng lặp, kiểm tra lại xem sao
Mã:Option Explicit Dim MgNguon(), MgKQ() Sub A_KiemTra() Dim k As Long, KQi() As Double, Cot As Long, n As Long, Tong As Double, Item, Tim As Range Tong = [C1].Value MgNguon = Range("A2", Range("A" & Rows.Count).End(3)).Value Range("A2", Range("A" & Rows.Count).End(3)).Interior.ColorIndex = xlNone n = UBound(MgNguon, 1) ReDim MgKQ(1 To n, 1 To 1) For k = 1 To n ReDim KQi(1 To k, 1 To 1) As Double Main k, KQi, 0, 1, 1, Cot, n, Tong If Cot Then Dim i, j k = 2 For i = 1 To n If MgKQ(i, 1) = "" Or k > Range("A" & Rows.Count).End(3).Row Then Exit For Item = MgKQ(i, 1) For j = k To Range("A" & Rows.Count).End(3).Row If Range("A" & j) = Item Then Range("A" & j).Interior.ColorIndex = 3 k = j + 1 Exit For End If Next j Next i Exit For '<----------------- End If Next Erase MgNguon: Erase MgKQ End Sub Sub Main(k As Long, KQi, CongDon As Double, PhanTu As Long, SoDem As Long, Cot As Long, n As Long, Tong As Double) Dim i As Long, j As Long If Cot Then Exit Sub If SoDem <= k Then For j = PhanTu To n - k + SoDem KQi(SoDem, 1) = MgNguon(j, 1) Main k, KQi, CongDon + KQi(SoDem, 1), j + 1, SoDem + 1, Cot, n, Tong Next j Else If CongDon = Tong Then Cot = Cot + 1 ReDim Preserve MgKQ(1 To n, 1 To Cot) For i = 1 To k MgKQ(i, Cot) = KQi(i, 1) Next End If End If End Sub
Dữ liệu nhiều quá sẽ đứng máyNếu tìm không có số lượng cần lấy thì máy cũng vẫn quay vòng không thoát được nha bạn, nhờ bạn vô sửa thêm với ạ
Function SumFind(Total As Double, ParamArray RngS() As Variant) As String
Dim Data(), Cll As Range, Arr(), tmp, tSum As Double
Dim i As Long, n As Long, k As Long
For i = LBound(RngS) To UBound(RngS)
For Each Cll In RngS(i)
tmp = Val(Cll.Value)
If tmp <> 0 Then
If tmp = Total Then
SumF1 = Cll.Address(0, 0): Exit Function
Else
n = n + 1
ReDim Preserve Data(1 To 2, 1 To n)
Data(1, n) = Val(Cll.Value): Data(2, n) = Cll.Address(1, 0)
End If
End If
Next
Next
Call QuickSort(Data)
ReDim Arr(1 To n)
Arr(1) = 1: tSum = Data(1, 1)
n = 1: k = 1
Do While Total <> tSum
If Arr(1) = UBound(Data, 2) Then
SumF1 = "#N/A": Exit Function
End If
If tSum > Total Then
k = Arr(n - 1) + 1
tSum = tSum - Data(1, Arr(n)) - Data(1, Arr(n - 1)) + Data(1, k)
n = n - 1
Arr(n) = k
Else
If k = UBound(Data, 2) Then
k = Arr(n - 1) + 1
tSum = tSum - Data(1, Arr(n)) - Data(1, Arr(n - 1)) + Data(1, k)
n = n - 1
Arr(n) = k
Else
k = k + 1
tSum = tSum + Data(1, k)
n = n + 1
Arr(n) = k
End If
End If
Loop
SumFind = GetRes(Data, Arr, n)
End Function
Private Sub QuickSort(Data)
Dim oSList As Object, sArr, S
Dim j As Long, k As Long, jk As Long, m As Long
Set oSList = CreateObject("System.Collections.SortedList")
For j = LBound(Data, 2) To UBound(Data, 2)
oSList.Item(Data(1, j)) = oSList.Item(Data(1, j)) & "," & j
Next j
sArr = Data
For j = 0 To oSList.Count - 1
S = Split(oSList.GetByIndex(j), ",")
For m = 1 To UBound(S)
jk = CLng(S(m))
k = k + 1
Data(1, k) = sArr(1, jk): Data(2, k) = sArr(2, jk)
Next m
Next j
Set oSList = Nothing
End Sub
Private Function GetRes(Data, Arr, n) As String
Dim oSList As Object, sArr, S, iKey, tmp
Dim j As Long, k As Long, jk As Long, m As Long
Set oSList = CreateObject("System.Collections.SortedList")
For j = 1 To n
tmp = CLng(Split(Data(2, Arr(j)), "$")(1))
oSList.Item(tmp) = oSList.Item(tmp) & "," & j
Next j
tmp = Empty
For j = 0 To oSList.Count - 1
S = Split(oSList.GetByIndex(j), ",")
For m = 1 To UBound(S)
jk = CLng(S(m))
tmp = tmp & "+" & Data(2, Arr(jk))
Next m
Next j
tmp = Replace(tmp, "$", "")
GetRes = "=" & Mid(tmp, 2, Len(tmp) - 1)
Set oSList = Nothing
End Function
C4 =SumFind(C1,A2:A21)
bài này dùng solver để giải, bạn tìm với từ khóa solver trên diễn đàn xem.mình vẫn chưa hiểu file này luôn bạn à, bạn nói lại cho mình đi.
Bân thử với file bài 16 xem sao, số dòng <=200Mình thấy dòng lệnh này chạy được rồi nhưng với tìm tổng nhỏ hơn 1000 và dãy số không quá 20 dòng, mình test thử tìm tổng trên 2000 và dãy số là 40 dòng là chạy 5 phút không ra kết quả.
vì file mình rất nhiều loại hàng khác nhau, mỗi lần cần tính toán thì mình phải coppy dữ liệu qua file mình đưa lên đây, nhưng số dòng sẽ ít hơn 100,nên mình muốn nhờ bạn làm 1 file mẫu, cứ có dữ diệu là mình coppy qua, nếu lấy hàng khác thì lại xóa loại hàng đó,rồi coppy loại hàng cần lấy lên để file tự tính ạĐây là bài toán tìm tổng con (subset sum). Mình cũng viết mấy bài ở GPE tìm tổng con bằng quy hoạch động dùng VBA (vì mình cũng thỉnh thoảng phải "bốc thuốc"): với n số nguyên dương cho trước, tìm bộ số có tổng = S, bài toán này có khi không giải nổi nếu n và s lớn. Nếu n nhỏ khoảng vài chục thì dùng đệ quy cho dễ viết code, độ phức tạp phụ thuộc vào n. Nếu n cao hơn thì dùng đệ quy dễ tràn stack, lúc này nên dùng quy hoạch động và độ phức tạp phụ thuộc cả vào n và s.
@chi ngan nguyen bạn nên đưa dữ liệu gần giống thực lên, lúc đấy mọi người sẽ có code phù hợp.
Ví dụ code bài của mình ở link dưới, dữ liệu cần được sort tăng dần trước khi chạy, bạn thử xem chạy được không, nếu dữ liệu lớn hơn thì bạn cứ báo, mình sẽ đưa công cụ khác.
![]()
Tìm các giá trị cộng lại thỏa giá trị cho trước
Kính gửi anh/chị trên diễn đàn, Em đang bị vướng vấn đề sau ạ: Em có một dãy các số liệu từ A4:A386, em có ô mục tiêu là ô D2. Em muốn tìm các giá trị trong cột A cộng lại bằng 213962,43 ạ. Em đã thử với solver nhưng do cột A có nhiều biến nên khi em chạy solver báo lỗi "Too many Variable...www.giaiphapexcel.com
thanks bạn nhé !Đã bảo là dùng Solver rồi.
Thay vì nhọc công theo đuổi cái gì đó thì bỏ 30 phút ra đọc cách sử dụng Solver. Sau đó hoàn toàn tự bản thân mình xử lý được việc. Ngon lành.
Bài 39 mình có đưa link code mà bạn, nếu tổng cần tính khoảng trăm triệu trở lên thì nên dùng cách khác.vì file mình rất nhiều loại hàng khác nhau, mỗi lần cần tính toán thì mình phải coppy dữ liệu qua file mình đưa lên đây, nhưng số dòng sẽ ít hơn 100,nên mình muốn nhờ bạn làm 1 file mẫu, cứ có dữ diệu là mình coppy qua, nếu lấy hàng khác thì lại xóa loại hàng đó,rồi coppy loại hàng cần lấy lên để file tự tính ạ
mình tính toán ít à, mà mình lại chưa hiểu file đó chạy như thế nào, bạn nói rỏ hơn dùm ạBài 39 mình có đưa link code mà bạn, nếu tổng cần tính khoảng trăm triệu trở lên thì nên dùng cách khác.
mình làm như hình mà không được nha bạn, nhờ bạn chỉ thêm dùm ạBạn thử dùng cái này xem có giúp ích gì ko
Như đã hứa, hôm nay mình đã sửa code theo giải pháp không tô màu. Có thể sẽ chưa hoàn thiện nhưng cũng là 1 giải pháp tạmthanks a nha, khi nào ngồi máy tính nhờ anh sửa dùm em với ạ
Bạn copy các số vào cột A (chỉ số nguyên dương thôi nhé), nhập tổng vào ô bôi vàng rồi bấm nút ABC. Chú ý nếu tổng lớn vài chục triệu trở lên thì cần dùng phương pháp khác, mình cũng đã làm rồi nhưng không tiện đưa lên do đã biên dịch ra file exe, nếu bạn cần thì mình sẽ gửi.mình tính toán ít à, mà mình lại chưa hiểu file đó chạy như thế nào, bạn nói rỏ hơn dùm ạ
cám ơn a nhiều nhiều nha, nhưng file của a, nếu nhập số liệu không có trong đó, thì file bị lỗi nha a, nó quay vòng không dừng lại luôn, nhờ a tìm thêm giải pháp ạNhư đã hứa, hôm nay mình đã sửa code theo giải pháp không tô màu. Có thể sẽ chưa hoàn thiện nhưng cũng là 1 giải pháp tạm
file của bạn m đã làm thử nhưng số liệu gần đúng chứ không đúng ạ chính xác ạBạn copy các số vào cột A (chỉ số nguyên dương thôi nhé), nhập tổng vào ô bôi vàng rồi bấm nút ABC. Chú ý nếu tổng lớn vài chục triệu trở lên thì cần dùng phương pháp khác, mình cũng đã làm rồi nhưng không tiện đưa lên do đã biên dịch ra file exe, nếu bạn cần thì mình sẽ gửi.
Bạn gửi lại cho mình file có dữ liệu đó, có khả năng do mình sửa code cũ bị sót.file của bạn m đã làm thử nhưng số liệu gần đúng chứ không đúng ạ chính xác ạ
chưa ạ, nếu tìm không đúng số lượng, thì file vẫn chạy vòng vòng ạ@chi ngan nguyen
Vậy là vấn đề của bạn đã giải quyết được hay chưa?
giờ file lại chạy được rồi nha bạn, thanks bạn nhaBạn gửi lại cho mình file có dữ liệu đó, có khả năng do mình sửa code cũ bị sót.
đúng rồi đó bạn, cám ơn bạn nha,chúc bạn sức khỏe ạ !Vậy chắc là do số 1 dòng trên cùng bị nút filter che khuất.
Lỡ làm tiện thể gửi bạn xem cách sử dụng solver bài 16chưa ạ, nếu tìm không đúng số lượng, thì file vẫn chạy vòng vòng ạ
Bài đã được tự động gộp:
giờ file lại chạy được rồi nha bạn, thanks bạn nha
Mình vẫn làm được mà, nếu bạn cần thì nhắn tin vào mail mình để trao đổi thêm, mail: hieuak86@gmail.commình làm như hình mà không được nha bạn, nhờ bạn chỉ thêm dùm ạ