Nối dữ liệu theo điều kiện lớn hơn hoặc bằng giá trị cho trước (1 người xem)

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

File đính kèm

Thử 1 cách học lỏm, giới hạn dưới 9 số hoặc theo file:
Mã:
=SUBSTITUTE(SUBSTITUTE(TEXT(SUMPRODUCT(B3:B12*(C3:C12<C14)*10^(10-B3:B12*(C3:C12<C14))),REPT("0"";""",10)),"0;","")&"#",";#","")
 

File đính kèm

Lần chỉnh sửa cuối:
Nhờ các bạn viết giúp hàm như file đính kèm
Dùng thử hàm này xem sao.
Mã:
Function noichuoi(ByVal mang As Variant, ByVal dk As Long, Optional ByVal so As Integer = 1, Optional ByVal so1 As Integer = 2)
         Dim arr, i As Integer, s As String
         arr = mang.Value
         For i = 1 To UBound(arr, 1)
             If arr(i, so1) < dk Then
                If s = Empty Then s = arr(i, so) Else s = s & ";" & arr(i, so)
             End If
         Next i
         noichuoi = s
End Function
Mã:
=noichuoi($B$3:$C$12,C14)
 

File đính kèm

Thử 1 cách học lỏm, giới hạn dưới 9 số hoặc theo file:
Mã:
=SUBSTITUTE(SUBSTITUTE(TEXT(SUMPRODUCT(B3:B12*(C3:C12<C14)*10^(10-B3:B12*(C3:C12<C14))),REPT("0"";""",10)),"0;","")&"#",";#","")
Công thức trực tiếp, thử 400 cho tất cả các số , kết quả thiếu
Dùng cột phụ, thử chỉ dùng 1 hàm If hoặc 2 If cho cột phụ và kết quả không dùng hàm
 
Công thức trực tiếp, thử 400 cho tất cả các số , kết quả thiếu
Dùng cột phụ, thử chỉ dùng 1 hàm If hoặc 2 If cho cột phụ và kết quả không dùng hàm
Thay cột phụ:
Mã:
D3=IF(OR(C3="",C3>=C$14),D2,IFERROR(LOOKUP(2,1/COUNTIF(C$14,">"&C$2:C2),D$2:D2)&";","")&B3)
Và kết quả bằng D12.
 

File đính kèm

Dùng thử hàm này xem sao.
Mã:
Function noichuoi(ByVal mang As Variant, ByVal dk As Long, Optional ByVal so As Integer = 1, Optional ByVal so1 As Integer = 2)
         Dim arr, i As Integer, s As String
         arr = mang.Value
         For i = 1 To UBound(arr, 1)
             If arr(i, so1) < dk Then
                If s = Empty Then s = arr(i, so) Else s = s & ";" & arr(i, so)
             End If
         Next i
         noichuoi = s
End Function
Mã:
=noichuoi($B$3:$C$12,C14)
Cảm ơn bạn
snow25
hàm rất chuẩn
Chúc bạn luôn vui và thành đạt trong công việc
 
Dùng thử hàm này xem sao.
Mã:
Function noichuoi(ByVal mang As Variant, ByVal dk As Long, Optional ByVal so As Integer = 1, Optional ByVal so1 As Integer = 2)
         Dim arr, i As Integer, s As String
         arr = mang.Value
         For i = 1 To UBound(arr, 1)
             If arr(i, so1) < dk Then
                If s = Empty Then s = arr(i, so) Else s = s & ";" & arr(i, so)
             End If
         Next i
         noichuoi = s
End Function
Mã:
=noichuoi($B$3:$C$12,C14)
Nhờ bạn tinh chỉnh lại hàm, mình thấy có một số vấn đề sai sai
Cảm ơn bạn
snow25
 

File đính kèm

Sai ở chỗ những ô trống thì nó cũng lấy hết toàn bộ cột bên trái bạn
snow25
xem giúp mình nhé
Bạn thêm điều kiện này vào nữa.Xem code nhé.
Mã:
Function DK_noi(ByVal mang As Variant, ByVal dk As Long, Optional ByVal so As Integer = 1, Optional ByVal so1 As Integer = 2)
         Dim arr, i As Integer, s As String
         arr = mang.Value
         For i = 1 To UBound(arr, 1)
             If arr(i, so1) > dk And Len(arr(i, so1)) > 0 Then 'thay doi dau khi thay doi dieu kien
                If s = Empty Then s = arr(i, so) Else s = s & ";" & arr(i, so)
             End If
         Next i
         DK_noi = s
End Function
 
Bạn thêm điều kiện này vào nữa.Xem code nhé.
Mã:
Function DK_noi(ByVal mang As Variant, ByVal dk As Long, Optional ByVal so As Integer = 1, Optional ByVal so1 As Integer = 2)
         Dim arr, i As Integer, s As String
         arr = mang.Value
         For i = 1 To UBound(arr, 1)
             If arr(i, so1) > dk And Len(arr(i, so1)) > 0 Then 'thay doi dau khi thay doi dieu kien
                If s = Empty Then s = arr(i, so) Else s = s & ";" & arr(i, so)
             End If
         Next i
         DK_noi = s
End Function
Cảm ơn bạn
Được roài bạn nhé
Chúc bạn ngày vui vui
 

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

Back
Top Bottom