Giúp tôi giải quyết bài toán này với!!

Liên hệ QC

bigk

Thành viên mới
Tham gia
14/11/06
Bài viết
4
Được thích
0
Tôi cần giải quyết bài toán như sau
có 2 rows
1 2 3 4 5 6
-2 -3 1 2 -2 1
tôi muốn có kết quả là tổng của các số âm của row 2, ứng với tổng này tôi muốn có một chuỗi chỉ số ở row 1 ứng với các giá trị được tính tổng ở row 2.
Vậy phải làm thế nào?
Xin cảm ơn!
 
Ừm! Với bài toán trên, tôi muốn có kết quả là:
với hàng dưới: -2+ (-3)+ (-2) = -7
tương ứng ở hàng trên: "125"
 
Híc! Bạn còn cách nào khác không:cc_confused: ? Vì trên thực tế mỗi dòng của tôi có đến chục giá trị. E rằng dùng IF thì không ổn. Dĩ nhiên chắc là vẫn được nhưng có vẽ sẽ rắc rối. Cảm ơn rất nhiều!
 
Bạn thử code sau xem sao:
Mã:
Public Function Concatenate2(rngData1 As Range, rngData2 As Range) As String
On Error GoTo thoat
Dim i As Integer, j As Integer
Dim strText As String
For i = 1 To rngData1.Rows.Count
    For j = 1 To rngData1.Columns.Count
        If rngData1.Cells(i, j) < 0 Then strText = strText & CSng(rngData2.Cells(i, j))
    Next j
Next i
Concatenate2 = strText
thoat:
End Function
 
Thêm một Code nữa cho bạn tham khảo!

Mã:
[b]Sub StringAdd()[/b]
 Dim iZ As Integer, StrC As String
 For iZ = 67 To 78
    Range(Chr(iZ) & "2").Select
    With Selection
        If .Value <= 0 Then StrC = StrC & CStr(.Offset(-1, 0).Value)
    End With
 Next iZ
 MsgBox StrC
[b]End Sub[/b]
 
Đoạn code dưới có vẻ đơn giản hơn. Nhưng tôi ko rõ nếu muốn áp dụng cho nhiều dòng khác nhau thì phải tạo macro như thế nào. Bạn có thể giúp tôi luôn được không? Còn với đoạn trên thì tôi ko rõ phải tạo macro như thế nào?
 
excel và vba

bạn xem thử nhé, góp ý cho mình
 

File đính kèm

  • ma tran va so phuc.rar
    12 KB · Đọc: 67
Đoạn code dưới: tôi ko rõ nếu muốn áp dụng cho nhiều dòng khác nhau thì phải tạo macro như thế nào. Bạn có thể giúp tôi luôn được không?
1./ Nếu các dòng theo 1 quy luật nào đó thì là mảnh đất màu mỡ để áp dụng vòng lặp;
VD nếu các dòng chẵn lẽ xen kẻ: vòng lặp với Step 2; biến của vòng lặp thay vô số '2' trong đoạn code (tất nhiên nếu các hàng chứa trị âm cách nhau 3 thì Step = 3);
2./ Hàm CHR(Num) ở đây tương tự như hàm CHAR(Num) trong Excel; dùng để xác định nơi bắt đầu tìm giá trị âm;Số trị 67 & 78 bạn tự tìm hiểu trong Excel & gán thích hợp cho bạn;
3./ CẤu lệnh MSgbox có thể thay = câu #, như:
Range(CHR(89) & Cstr(ij).value)=StrC; Ở đây iJ là biến của vòng lặp mới thêm vô ($1)
/(/ếu còn chưa rõ thì bạn cụ thể đề bài đi, nha!
Xin hỏi NDTDL, bạn gởi file gì vậy? Mình chẵng đọc được! Có bạn nào đọc được không vậy? Xin cho mình biết trong đó nói về gì?!
Hình như Hà Giang đang thích thú với ma trận mà, sao bỏ vô đây(?) "Qua 'Ma trận' mà chơi đi, nha!"
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom