Hàm dò tìm dữ liệu theo địa chỉ dạng text

Liên hệ QC

thuyyeu99

Trùm Nhiều Chuyện
Tham gia
6/6/08
Bài viết
1,729
Được thích
875
Em có danh sách các địa chỉ là A1+A3+A5+A7+A9 (dạng tetxt). như vậy mình có cách nào dò tìm dữ liệu theo địa chỉ trên không (Tương tự như hàm INDIRECT()).Nếu được nhờ các anh chị hướng dẫn giúp.
Cám ơn các anh chị quan tâm
 
Em có danh sách các địa chỉ là A1+A3+A5+A7+A9 (dạng tetxt). như vậy mình có cách nào dò tìm dữ liệu theo địa chỉ trên không (Tương tự như hàm INDIRECT()).Nếu được nhờ các anh chị hướng dẫn giúp.
Cám ơn các anh chị quan tâm
Không biết có phải tìm địa chỉ ô hay không? Bạn xem bài này có đúng như ý Bạn chưa nhé?
 

File đính kèm

Upvote 0
dạ tất cả các địa chỉ nàm trong 1 ô và cách nhau là dấu + (A1+A3+A5+A7+A9), tức là em muốn tìm trên A1 rồi A3..... theo như cái địa chỉ em ghi như ở trên
 
Lần chỉnh sửa cuối:
Upvote 0
Hay là Bạn thử đưa file lên xem sao. Giải thích rõ luôn nhé.
 
Upvote 0
Function addtxt(arr As Range)
Dim rng As Range
Dim tam As String
For Each rng In arr
If Not IsNumeric(rng) Then
tam = tam & rng.Address & "+"
End If
Next
If tam = "" Then
addtxt = ""
Else
addtxt = Left(tam, Len(tam) - 1)
End If
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Function addtxt(arr As Range)
Dim rng As Range
Dim tam As String
For Each rng In arr
If Not IsNumeric(rng) Then
tam = tam & rng.Address & "+"
End If
Next
If tam = "" Then
addtxt = ""
Else
addtxt = Left(tam, Len(tam) - 1)
End If
End Function
Đọc code của bạn hoangminhtien lại thấy chả giống tí nào so với mô tả của tác giả! Nhưng bạn thuyyeu99 đã THANKS, chứng tỏ bạn đồng ý với code này!
Vậy là sao ta?
Theo code của hoangminhtien thì yêu cầu phải được mô tả thế này mới đúng:
- Tìm trong 1 vùng nào đó
- Thu thập địa chỉ cell, nơi chưa dữ liệu dạn TEXT
- Nối các địa chỉ cell đã tìm được thành 1 chuổi ngăn cách nhau bởi dấu cộng (+)

--------------------
Hic... Còn tác giả mô tả... nói thật tôi chẳng hiểu gì
 
Upvote 0
Em hiểu nhầm bài toán, em nghĩ là từ dãy đưa ra địa chỉ các ô chứa dạng text, bây giờ mới hiểu đề. các bác xem file có đúng không nhé!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Như mình hiểu thì cần xài macro này:

PHP:
Option Explicit
Sub InDiRect()
 Dim Arr, jJ As Byte
 
 Arr = Split(Selection.Value, "+")
 For jJ = 0 To UBound(Arr)
   With [D65500].End(xlUp).Offset(1)
      .Value = Range(Arr(jJ)).Value
   End With
 Next jJ
End Sub

Giải thích:
Giả dụ tại [H1] ta đang chọn chứa chuỗi A1+A3+A5+A7+A9+A11+B2

Macro trên sẽ liệt kê tuần tự giá tri các ô chứa trong chuỗi này tại các dòng của cột 'D'--=0
 
Upvote 0

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Dạ anh NDU nói đúng ạh, tại vì tự nhiên máy em không vô mạng được nên mới không trả lời được. Hì
 
Upvote 0
Sử dụng những hàm nào cho dạng bài tập này?

Mình có 1 file có 3 sheet trong đó sheet Flowchart dùng để báo cáo. Khi mình bấm vào ô B4 thì sẽ chọn được loại mã hàng tương ứng với các số liệu. Bài này trước kia có bạn minhtien.hoang đã giúp mình rồi. tuy nhiên khi mình mở rộng phần dữ liệu thì có mã được mã lại không được. Các bạn giúp mình với.(Và có những cách nào để thực hiện được điều này). Cảm ơn rất nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Sử dụng những hàm nào cho dạng bài tập này?

Mình có 1 file có 3 sheet trong đó sheet Flowchart dùng để báo cáo. Khi mình bấm vào ô B4 thì sẽ chọn được loại mã hàng tương ứng với các số liệu. Bài này trước kia có bạn minhtien.hoang đã giúp mình rồi. tuy nhiên khi mình mở rộng phần dữ liệu thì có mã được mã lại không được. Các bạn giúp mình với.(Và có những cách nào để thực hiện được điều này). Cảm ơn rất nhiều.
 

File đính kèm

Upvote 0
Mình có 1 file có 3 sheet trong đó sheet Flowchart dùng để báo cáo. Khi mình bấm vào ô B4 thì sẽ chọn được loại mã hàng tương ứng với các số liệu. Bài này trước kia có bạn minhtien.hoang đã giúp mình rồi. tuy nhiên khi mình mở rộng phần dữ liệu thì có mã được mã lại không được. Các bạn giúp mình với.(Và có những cách nào để thực hiện được điều này). Cảm ơn rất nhiều.
Bạn xem đã được chưa ?
 
Upvote 0
Nhờ các anh hướng dẫn em thêm 1 vấn đề nữa
bây giờ em có đoạn text là A1+E1+C1 vậy mình có cách nào xác định trong Range("A1,E1,C1") ô nào chứa dữ liệu không ạh (nhưng phải theo số thứ tự của cột tức là từ cột nhỏ cho đến cột lớn A1 - C1 - E1 . Nếu A1,C1,E1 đều có dữ liệu thì láy địa chỉ ô có cột lớn nhất là E1
 
Upvote 0
Nhờ các anh hướng dẫn em thêm 1 vấn đề nữa
bây giờ em có đoạn text là A1+E1+C1 vậy mình có cách nào xác định trong Range("A1,E1,C1") ô nào chứa dữ liệu không ạh (nhưng phải theo số thứ tự của cột tức là từ cột nhỏ cho đến cột lớn A1 - C1 - E1 . Nếu A1,C1,E1 đều có dữ liệu thì láy địa chỉ ô có cột lớn nhất là E1
Giả sử bạn gõ chuổi A1+E1+C1 vào cell A2
Vậy thử code này xem thế nào:
PHP:
Sub Test()
  Dim Tmp As String
  On Error Resume Next
  Tmp = Replace(Range("A2"), "+", ",")
  With Range(Tmp).SpecialCells(2, 2)
    MsgBox Intersect(Range(Replace(.Address, ",", ":")).EntireColumn.Resize(, 1), .Cells)(1, 1).Address
  End With
End Sub
Test giùm nhé ---> Không chắc lắm
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Ồ hình như nó chạy chưa ổn anh ạh. Dữ liệu các ô chỉ nằm trên 1 dòng thôi anh
 
Lần chỉnh sửa cuối:
Upvote 0
Ồ hình như nó chạy chưa ổn anh ạh. Dữ liệu các ô chỉ nằm trên 1 dòng thôi anh
Chưa ổn trong trường hợp nào? Bạn cho file lên xem thử nhé
Thêm nữa, lúc nảy tôi cứ nghĩ bạn tìm dữ liệu dạng TEXT nên mới dùng SpecialCells(2,2) ---> Nếu là mọi kiểu dữ liệu thì sửa lại thành SpecialCells(2) là được
Ngoài ra bạn nên cho biết thêm: Dữ liệu ấy là dữ liệu thô hay có công thức? (Dạng này phải sửa lại code mới được)
 
Lần chỉnh sửa cuối:
Upvote 0
dạ nếu được nhờ anh tạo giùm em cái UDF
 
Upvote 0
Web KT

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

Back
Top Bottom