Sao công thức trong name không trả ra số thư tự ?

Liên hệ QC

volga

Thành viên tiêu biểu
Tham gia
3/12/08
Bài viết
669
Được thích
669
Nghề nghiệp
Nhân Viên
Em có tìm thấy một bài lọc dư liệu rất hay !
Nhưng khi copy công thư trong name đó ra ngoài để bên cạnh dư liéubamm Ctrl + Shift + Enter .Nó không trả ra số thứ tự ?Những công thức của anh Ndu nếu làm như vậy thì nó trả ra số thứ tự ngay !
Xem File đính kèm Sheet 1 (Tô màu vàng )
Xem dùm em luôn File này nặng quá vậy ?4,1M.
 

File đính kèm

  • GPE.rar
    47.3 KB · Đọc: 63
Em có tìm thấy một bài lọc dư liệu rất hay !
Nhưng khi copy công thư trong name đó ra ngoài để bên cạnh dư liéubamm Ctrl + Shift + Enter .Nó không trả ra số thứ tự ?Những công thức của anh Ndu nếu làm như vậy thì nó trả ra số thứ tự ngay !
Xem File đính kèm Sheet 1 (Tô màu vàng )
Xem dùm em luôn File này nặng quá vậy ?4,1M.
Tại bạn gõ sai công thức thôi ---> Lý ra nó phải là:
PHP:
=IF(OFFSET(data,,1,,1)=Sheet2!$C$5,ROW(INDIRECT("1:"&ROWS(data))),"")
 
Tại bạn gõ sai công thức thôi ---> Lý ra nó phải là:
PHP:
=IF(OFFSET(data,,1,,1)=Sheet2!$C$5,ROW(INDIRECT("1:"&ROWS(data))),"")

Thế mà ra kết quả đúng củng lạ ?
Tại sao có mấy công thức nhí đó mà File nặng thế anh ?
Thanks!
 
Thế mà ra kết quả đúng củng lạ ?
Tại sao có mấy công thức nhí đó mà File nặng thế anh ?
Thanks!
Mấy công thức này chẳng "nhí" tí nào! Nó "nặng" cũng đành chịu
Thông thường với yêu cầu trích lọc như thế tôi dùng Advanced Filter chứ không xài công thức ---> Nhanh, gọn, dể dùng ---> lại "nhẹ re"
 
Nhất định File đó có vấn đề !
Củng một File tương tự như thế ,lại nhẹ nhàng hơn nè anh ?
Anh xem hộ dùm em coi File này nó bị sai chổ nào nhe anh ?
Em có đặc câu hỏi trong đó !
Biết là dùng Advanced Filter hay Auto nhanh hơn nhưng bản tính của em thích dùng công thức hi hi.Tập tành với mấy cái Name này .....
Thanks!!!!!!
 

File đính kèm

  • Book1.xls
    42 KB · Đọc: 19
Nhất định File đó có vấn đề !
Củng một File tương tự như thế ,lại nhẹ nhàng hơn nè anh ?
Anh xem hộ dùm em coi File này nó bị sai chổ nào nhe anh ?
Em có đặc câu hỏi trong đó !
Biết là dùng Advanced Filter hay Auto nhanh hơn nhưng bản tính của em thích dùng công thức hi hi.Tập tành với mấy cái Name này .....
Thanks!!!!!!
Sai mấy chổ:
1> Name Loc của bạn là:
=IF(OFFSET(data,,9,,)=Sheet2!$G$3,ROW(INDIRECT("1:"&ROWS(data))),"")
Phải sửa lại thành:
=IF(OFFSET(data,,9,,1)=Sheet2!$G$3,ROW(INDIRECT("1:"&ROWS(data))),"")
2> Công thức của bạn:
=IF(COUNT(loc)<ROW(1:1),"",ROW(1:1))

=IF(COUNT(loc)<ROW($1:1),"",INDEX(data,SMALL(loc,ROW($1:1)),COLUMN()))
Sửa lại thành:
=IF(COUNT(loc)<ROWS($1:1),"",ROWS($1:1))
và:
=IF($A6="","",INDEX(data,SMALL(loc,ROWS($1:1)),COLUMN()))
ROWROWS hoàn toàn khác nhau mà bạn (dùng nó phải cẩn thận)
 
Mấy công thức này chẳng "nhí" tí nào! Nó "nặng" cũng đành chịu
Thông thường với yêu cầu trích lọc như thế tôi dùng Advanced Filter chứ không xài công thức ---> Nhanh, gọn, dể dùng ---> lại "nhẹ re"

To : Anh Ndu96081631 đáng kính !
Anh chỉ dùm em cách lọc bằng Advanced Filter xem ? Em mò hoài mà không ra kết quả như yêu cầu của đề bài !
Thanks Anh !
 
To : Anh Ndu96081631 đáng kính !
Anh chỉ dùm em cách lọc bằng Advanced Filter xem ? Em mò hoài mà không ra kết quả như yêu cầu của đề bài !
Thanks Anh !
Để chuẩn bị cho việc lọc, bạn xóa hết công thức tại sheet2, sau đó làm như sau:
1> Copy tiêu đề tại J1 của sheet1, sang paste vào F1 của sheet2 (Vì nếu tự tay gõ vào có thể sai bảng mã)
2> Gõ chử TT vào Cell F2 (của Sheet2)
3> Gọi chức năng Record macro
4> Vào menu Data\Filter\Advanced Filter
a) Khung Action, chọn mục "Copy to another location"
b) Đặt con trỏ vào khung List range, chuyển sang sheet 1, quét chọn toàn bộ dử liệu của sheet1
c) Khung Criteria Range, chọn cell F1:F2 (của sheet2)
d) Khung Copy Range, Chọn cell A5 (của sheet2)
e) Bấm OK
5> Tắt Record macro, bấm Alt + F11 vào xem code
6> Nếu mọi chuyện thuận lợi thì ta có đoạn code sau:

PHP:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 02/04/2009 by ndu
'

'
    Sheets("Sheet1").Range("A1:N32").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("F1:F2"), CopyToRange:=Range("A5"), Unique:=False
End Sub
7> Rút gọn code:
PHP:
Sub Loc()
 Sheet1.Range("A1:N" & Sheet1.[N65536].End(xlUp).Row).AdvancedFilter 2, [F1:F2], [A5]
End Sub
8> Chỉnh sửa code: Thêm vào phần xóa dử liệu củ trước khi lọc mới
PHP:
Sub Loc()
  Range("A5:N1000").Clear
  Sheet1.Range("A1:N" & Sheet1.[N65536].End(xlUp).Row).AdvancedFilter 2, [F1:F2], [A5]
End Sub
8> Đưa code vào sự kiện Worksheet_Change để mỗi khi ta thay đổi điều kiện lọc tại F2 thì code tự động chạy
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$F$2" Then
    Range("A5:N1000").Clear
    Sheet1.Range("A1:N" & Sheet1.[N65536].End(xlUp).Row).AdvancedFilter 2, [F1:F2], [A5]
  End If
End Sub
XONG!
 
Khà khà trên cả tuyệt vời ...........
Cám ơn anh nhiều !!!!!!
Nếu sử dụng luôn đoạn code đã ghi lại lúc đầu có được không anh ?Em không có khả năng chỉnh sửa lại như anh !
Anh xem thử làm như thế có đạt chưa anh ?
Thanks
 

File đính kèm

  • Tap Tanh Macro.xls
    97 KB · Đọc: 20
Nếu sử dụng luôn đoạn code đã ghi lại lúc đầu có được không anh ?Em không có khả năng chỉnh sửa lại như anh !
Anh xem thử làm như thế có đạt chưa anh ?
Thanks
Đương nhiên là được rồi... có điều sẽ hạn chế ở chổ:
- Nếu nhập liệu thêm vào dử liệu nguồn thì lọc sẽ bị thiếu ---> Giãi quyết bằng cách: thay vì chọn vừa đủ, ta quét chọn luôn vài ngàn dòng cho nó dư ra
- Vùng xuất dử liệu (vùng đặt kết quả) phải được xóa trước, nếu không lọc cũng sai luôn ---> Giãi quyết: 1 là cho vào code, 2 là xóa bằng tay!
-------------
Nói thêm về file bạn vừa gữi lên: Phần Private Sub Worksheet_Change không thể cho vào Module được đâu ---> Nó là sự kiện Change của sheet, đương nhiên phải đặt vào sheet rồi... và cũng đương nhiên sẽ đặt vào sheet nào mà ta gõ điều kiện ấy
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom