thanhphuong
Thành viên hoạt động



- Tham gia
- 16/10/06
- Bài viết
- 116
- Được thích
- 0
Mình nhận được câu hỏi này từ bạn duyennt 6888 :
Nhờ mọi người xem giúp bạn ấy.
Bạn xem file đính kèm
Mình nhận được câu hỏi này từ bạn duyennt 6888 :
Nhờ mọi người xem giúp bạn ấy.
Sub UniqueFilter()
Dim Cll As Range, i As Long, Ar()
With CreateObject("Scripting.Dictionary")
For Each Cll In Selection
If .Exists(Cll.Value) = False And Cll <> "" _
Then .Add Cll.Value, 1
Next Cll
Ar = .Keys
For i = 0 To .Count - 1
[F:F].Cells(i + 2) = Ar(i)
Next i
End With
Range("F2", [F65000].End(xlUp)).Sort [F1], xlAscending
End Sub
Cái Function của bạn nhìn nó... kỳ kỳ thế nào ấyBạn xem file đính kèm
Function UniqueList(Rng As Range)
Dim Clls As Range
On Error Resume Next
With CreateObject("Scripting.Dictionary")
For Each Clls In Rng
.Add Clls.Value, ""
Next
UniqueList = .Keys
End With
End Function
Sub GetUnique()
Dim Src As Range, Des As Range
Set Src = Application.InputBox("Chon vung du lieu", Type:=8)
Set Des = Application.InputBox("Chon 1 cell de xuat du lieu", Type:=8)
With Des.Resize(UBound(UniqueList(Src)) + 1)
.Value = WorksheetFunction.Transpose(UniqueList(Src))
.Sort .Cells(1, 1), 1, Header:=xlNo
End With
End Sub
Bạn dùng Dictionary Object là đúng rồi.. có điều, đã ra được đến .Keys thì tại sao lại phải For tiếp nữa nhỉ? ---> 2 vòng lập à?Thêm 1 cách khác, bạn xem File, nhớ Enable Macro --> Chọn vùng dữ liệu (không chọn dòng tiêu đề) --> Nhấn nút.
PHP:Sub UniqueFilter() Dim Cll As Range, i As Long, Ar() With CreateObject("Scripting.Dictionary") For Each Cll In Selection If .Exists(Cll.Value) = False And Cll <> "" _ Then .Add Cll.Value, 1 Next Cll Ar = .Keys For i = 0 To .Count - 1 [F:F].Cells(i + 2) = Ar(i) Next i End With Range("F2", [F65000].End(xlUp)).Sort [F1], xlAscending End Sub
Ar = .Keys
For i = 0 To .Count - 1
[F:F].Cells(i + 2) = Ar(i)
Next i
Range("...gì gì đó...").Resize(....).Value = WorksheetFunction.Transpose(.Keys)
Sub UniqueFilter()
Dim Cll As Range, i As Long, Ar()
On Error Resume Next
With CreateObject("Scripting.Dictionary")
For Each Cll In Selection
If Not .Exists(Cll.Value) And Cll <> "" Then
.Add Cll.Value, ""
[F65000].End(xlUp)(2) = Cll.Value
End If
Next Cll
End With
Range("F2", [F65000].End(xlUp)).Sort [F1], xlAscending
End Sub
Tại cell B4 bạn gõ công thức này vào nhé:Chào tất cả mọi người.
Tôi có vấn đề về việc sắp xếp ký tự như sau mà không biết làm thế nào.
Rất mong được mọi người giúp.
Trên một ô Excel có các ký tự A,B,C,D...nhưng bị xuống dòng bởi tổ hợp phím "Alt+Enter".
Tôi muốn sắp xếp lại thành một dòng như sau:
(có rất nhiều cell tương tự thế này)
Trướ Sau
A,B,C,D
E,F,G,H
K,L,MA,B,C,D,E,F,G,H,K,L,M
Cảm ơn mọi người !
=SUBSTITUTE(A4,CHAR(10),",")
Em nhìn kết quả và đoán thế này:Rất mong các anh em trên GPE xem và hướng dẫn giúp trong điều kiện so sánh 1 số với dãy số trong trường hợp sau ( Được nêu cụ thể trong File đính kèm)
Xin được cám ơn trước.
Đính kèm File.
=IF(B5-G5+C5<=0,"",B5-G5+C5)
=IF(D5+MIN(B5-G5+C5,0)>0,D5+MIN(B5-G5+C5,0),"")
---Em nhìn kết quả và đoán thế này:
- Cell B6 có công thức:
- Cell C6 có công thức:PHP:=IF(B5-G5+C5<=0,"",B5-G5+C5)
Các cell phía dưới tương tự (copy dòng 6 paste xuống)PHP:=IF(D5+MIN(B5-G5+C5,0)>0,D5+MIN(B5-G5+C5,0),"")
---Tôi không rõ việc chuyển số dư thế nào, nhưng theo mô tả tại ô K5 (từ file mới nhất):
x1=7 Nếu G5<B5
thì nhận kết quả B5=18(10-7+15), C5=20
Xin chỉ rõ: x1 = 7 là kết quả cần tìm có phải không? Nếu vậy thì có phải sửa B5 thành 18(10 - 7 + 15) tức là 18 bình phương (hay chỉ 18), và C5 được sửa thành 20
Hay x1 = 7 là đã có (tức là ô G5 đã có) thì sửa lại B5.
Nói chung tôi cảm thấy cần mô tả rõ hơn. nếu không, tính toán sẽ bị luẩn quẩn (lấy G5 so sánh với B5 để sửa B5).
Sub SoSanh()
n = InputBox("Du lieu bat dau tu dong thu", "So Sanh", 5)
m = InputBox("Du lieu ket thuc tu dong thu", "So Sanh", 15)
For i = n To m
DK1 = Range("B" & i).Value
DK2 = Range("G" & i).Value
GT2 = Range("C" & i).Value
GT3 = Range("D" & i).Value
If DK1 > DK2 Then
Range("H" & i) = DK1 - DK2 + GT2 'Bi-Gi+Ci
Range("I" & i) = GT3 'Di
ElseIf DK1 = DK2 Then
Range("H" & i) = GT2 'Ci
Range("I" & i) = GT3 'Di
ElseIf DK1 < DK2 And DK2 < DK1 + GT2 Then
Range("H" & i) = DK1 - DK2 + GT2 'Bi-Gi+Ci
Range("I" & i) = GT3 'Di
ElseIf DK2 > DK1 And DK2 = DK1 + GT2 Then
Range("I" & i) = GT3 'Di
ElseIf DK2 > DK1 And DK2 > DK1 + GT2 Then
Range("I" & i) = DK1 + GT2 - DK2 + GT3 'Bi+Ci-Gi+Di
ElseIf DK2 > GT1 + GT2 + GT3 Then
'
End If
Next
End Sub
Thử tạo 1 macro, khi nhập thêm tên hàng vào cột B thì kiểm tra xem bên Tổng Hợp đã có chưa = hàm countif. Nếu Countif=0 thì cộng thêm vào.HI các bạn.
Mình muốn là khi phần chi tiết đánh thêm một mã hàng mới thì phần tổng hợp sẽ tự động add thêm vào. (Ô B17)
Tks.
Dữ liệu của bạn có lớn không? Nếu không lớn thì dùng phương pháp trích lọc duy nhất thì không phải dùng đến Macro.Ặc...!
Em chẳng biết gì về macro cả...!...Liệu dùng hàm có được không nhỉ...
Vì nếu chuyển sang máy người khác lại ko có macro thì trông chẳng ra sao..Thunghi nhỉ!!!!
Bạn dùng công thức nhé.Dữ liệu của mình không nhiều lắm. Max 20 sản phẩm thôi.
Bạn có thể hướng dẫn qua file được không..! Tks very mục
Bạn xem trong fie đính kèm. Tôi sử dụng công thức trích lọc duy nhất của bác Ndu...Dữ liệu của mình không nhiều lắm. Max 20 sản phẩm thôi.
Bạn có thể hướng dẫn qua file được không..! Tks very mục
cách tạo dấu côgn thức mà khi ấn phím F3 thì hiển thị như thế nào các bác nhỉ!?
Nếu viết cả ra thì dài quá