[HELP] Lọc danh sách cán bộ lớp sang sheet khác không dùng Filter và không dòng trống (1 người xem)

Liên hệ QC

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

hoailinh2204

Thành viên mới
Tham gia
31/12/10
Bài viết
9
Được thích
0
Mình có môt danh sách lớp có ghi chú cán bộ lớp. Mình muốn lấy dữ liệu như sau:
1. Lọc lấy danh sách cán bộ lớp từ sheet "dữ liệu học sinh" sang sheet 2
2. Không dùng Filter trên sheet 2
3. Danh sách sheet 2 tự đông thay đổi khi thay đổi cán bộ lớp ở sheet dữ liệu
4. sheet 2 không có dòng trống (không dùng hide dòng trống)
5. (Thêm) Mình mù mịt về VBA-macro nên mọi người có thể giúp lập hàm thông thường được không.Mình cần lọc nhiều dữ liệu tương tự như thế cho khoảng gần 50 trang với các điều kiện lọc khác nhau (Làm sổ chủ nhiệm của Giáo viên mà)
Mong mọi người giúp đỡ. Thank!
 

File đính kèm

Lần chỉnh sửa cuối:
Sorry mình xin đưa ra hướng giải quyết không dùng excel mà dùng Postgresql. Là một cơ dở dữ liệu.
Sorry mod vì có thể trả lời không đúng chủ đề.
Không biết trong excel như thế nào.

Để có thể xử lý bài toán bằng Postgresql có thể lúc đầu hơi dài và khó một chút.

Trước tiên bạn cần phải có phần mềm cơ sở dữ liệu Postgresql . Đây là phần mềm miễn phí. Bạn có thể search google với từ khoá Postgresql. sau đó down về và cài. Quá trình cài bạn chỉ việc next và Ok , à có một phần nhỏ là khai báo password cho cơ sở dữ liệu. Ở phần cuối cài đặt sẽ hiện lên một bảng thông báo hỏi bạn có cần cập nhật thêm không bạn bỏ chọn , để trống ô stack builder gì đấy mình không nhớ rõ và hoàn tất cài đặt.

Sau khi cài đặt hoàn tất, bạn vào menu và tìm tới shortcut PgAdminIII. Kích đúp vào để chạy.

Sẽ có một cửa sổ quản lý database hiện ra.
Bạn chỉ cần quan tâm đến, tạm mới đầu bạn chỉ cần quan tâm đến phần Object browser. Trong khung này bạn sẽ thấy một dạng data trees. Gồm có Server Groups - Servers - Postgresql 9.1(localhost:5432). Có thể máy bạn khác một chút hoặc không.
Rồi ... hơi mệt một chút.

Bạn kích đúp chuột vào phần PostgreSQL 9.1(localhost:5432) . Sẽ có thông báo yêu cầu nhập password. Bạn nhập password ở phần cài đặt vào.

Sau khi nhập đúng password sẽ có một tree list hiện ra , bạn kích chuột phải vào Databases và chọn New database. Sẽ có một cửa sổ hiện ra bạn chọn phần Name và điền tên database vào: ở đây mình sẽ đánh vào từ "so". sau đó chọn ok.

Vậy là bạn đã có một database tên là so.

Bạn kích đúp chuột vào database so.

Sau đó bạn để ý trên thanh công cụ của PgAdmin III , bạn kích chuột vào biểu tượng SQL , cạnh biểu tượng thùng rác .

Sẽ có một cửa sổ tác vụ sql hiện ra.

Trong phần SQL Editor: ( là phần mà chúng ta sẽ gõ các dòng lệnh vào).

Ok vậy là đã gần hoàn tất một phần quan trọng tính toán trong SQL.

Rồi.

Bây giờ quay lại excel. nhìn vào bảng excel . Ở đây mình sẽ tạo ra một bảng tương tự trong PostgreSQL .

Bạn gõ dòng lệnh sau vào SQL Editor:

Create table ketqua(id serial8 primary key,hoten text,tentat text,canbo text,note text) . Sau đó bấm phím F5.

Vậy là ta đã có một bảng với tên là ketqua. Và bảng này là bảng trống chưa có dữ liệu bên trong.

Bây giờ chúng ta cần đổ dữ liệu của bạn trong excel vào là gần như hoàn tất .

Việc đổ dữ liệu vào bạn tiến hành như sau:

Bạn copy vùng dữ liệu hoten,tentat,canbo từ excel ra notepad. Bạn chú ý dòng cuối trong notepad sau khi bạn paste vào sẽ bị trống , bạn nhớ xoá dòng cuối cùng đi đừng để trống và lưu file notepad đó vào đâu bạn cần nhớ. ở đây mình sẽ lưu vào ổ c với đường dẫn là : C:/ketqua.txt.

Ok, bây giờ quay lại SQL Editor : Bạn gõ dòng lênh sau vào:

copy ketqua from 'C:/ketqua.txt' và nhấn phím F5 để đổ dữ liệu vào.


Rồi , giờ đây dữ liệu đã có . bạn chỉ việc tiến hành sắp xếp dữ liệu theo ý của bạn.

Trong SQL Editor bạn lại gõ dòng lệnh sau:
select *from ketqua where not canbo=''

Vậy là kết quả đã được hiển thị.

Đó là trong PostgreSQL.

Còn bây giờ bạn muốn kết quả hiện thị lên trang web chẳng hạn bạn cần cài thêm một số phần mềm sau vào máy.

Apache . bạn vào google gõ từ apache httpd.
Quên mất đưa link luôn cho nó tiện:
Postgresql down ở đây: http://www.enterprisedb.com/products-services-training/pgdownload#windows

Down apache ở đây:

http://mirror.nexcess.net/apache//httpd/binaries/win32/httpd-2.2.22-win32-x86-openssl-0.9.8t.msi.

Tiếp theo là down Python3 ở đây:

http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi

Dùng tạm bản python 3.2.3.

và phần mềm Py-postgresql ở đây:

http://python.projects.postgresql.org/files/py-postgresql-1.0.3.win32-py3.2.msi

Tạm thời cứ như vậy , bạn cứ cài đặt ok và next bình thường.
(tam thời ngưng ở đây đã, không bạn tầu hoả nhập ma mất).
 
Upvote 0
Mình có môt danh sách lớp có ghi chú cán bộ lớp. Mình muốn lấy dữ liệu như sau:
1. Lọc lấy danh sách cán bộ lớp từ sheet "dữ liệu học sinh" sang sheet 2
2. Không dùng Filter trên sheet 2
3. Danh sách sheet 2 tự đông thay đổi khi thay đổi cán bộ lớp ở sheet dữ liệu
4. sheet 2 không có dòng trống (không dùng hide dòng trống)
Mong mọi người giúp đỡ. Thank!
Thử với Sub này xem:
PHP:
Public Sub GPE()
Dim Rng(), Arr(), I As Long, K As Long
    Rng = Sheet1.Range(Sheet1.[B3], Sheet1.[B3].End(xlDown)).Resize(, 3).Value
ReDim Arr(1 To UBound(Rng, 1), 1 To 4)
    For I = 1 To UBound(Rng, 1)
        If Rng(I, 3) <> "" Then
            K = K + 1
            Arr(K, 1) = K: Arr(K, 2) = Rng(I, 1)
            Arr(K, 3) = Rng(I, 2): Arr(K, 4) = Rng(I, 3)
        End If
    Next I
        Sheet3.[A3:D1000].ClearContents
        If K Then Sheet3.[A3].Resize(K, 4).Value = Arr
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình có môt danh sách lớp có ghi chú cán bộ lớp. Mình muốn lấy dữ liệu như sau:
1. Lọc lấy danh sách cán bộ lớp từ sheet "dữ liệu học sinh" sang sheet 2
2. Không dùng Filter trên sheet 2
3. Danh sách sheet 2 tự đông thay đổi khi thay đổi cán bộ lớp ở sheet dữ liệu
4. sheet 2 không có dòng trống (không dùng hide dòng trống)
Mong mọi người giúp đỡ. Thank!
thử cái này xem có đúng ý không
PHP:
Sub locldt()
With Application
.ScreenUpdating = 0
.Calculation = 0
Sheet3.Cells.Clear
Sheet2.UsedRange.Copy Sheet3.[A1]
Sheet3.Sort.SortFields.Add Key:=[D3], SortOn:=xlSortOnValues, Order:=1 
 With Sheet3.Sort       
 .SetRange Range("a3:D" & [b65000].End(3).Row)       
 .Apply  
  End With
Sheet3.Range(Sheet3.Rows([d10000].End(3).Row + 1), Sheet3.Rows(10000)).Clear
.ScreenUpdating = 1
.Calculation = 1 
 End With
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình có môt danh sách lớp có ghi chú cán bộ lớp. Mình muốn lấy dữ liệu như sau:
1. Lọc lấy danh sách cán bộ lớp từ sheet "dữ liệu học sinh" sang sheet 2
2. Không dùng Filter trên sheet 2
3. Danh sách sheet 2 tự đông thay đổi khi thay đổi cán bộ lớp ở sheet dữ liệu
4. sheet 2 không có dòng trống (không dùng hide dòng trống)
Mong mọi người giúp đỡ. Thank!

Miễn sao có kết quả đúng thôi chứ, tự nhiên không cho lọc là sao trời?

PHP:
Private Sub Worksheet_Activate()
Sheet2.UsedRange.ClearContents
With Sheet1.Range(Sheet1.[a2], Sheet1.[a65536].End(3)).Resize(, 4)
   .AutoFilter 4, "<>"
   .SpecialCells(12).Copy Sheet2.[a1]
   .AutoFilter
End With
Range([a2], [a65536].End(3)) = [row(a:a)]
End Sub
 

File đính kèm

Upvote 0
Cảm ơn anh, nhưng tôi không down được file đính kèm và mình gần như mù tịt về VBA-macro nên mong anh và các anh chị giúp

để đơn giả vấn đề bạn có thể dung Pivol table để lọc dự liệu : file đính kèm sau kông biết có đúng y bạn ko???
 

File đính kèm

Upvote 0
Cảm ơn anh, nhưng tôi không down được file đính kèm và mình gần như mù tịt về VBA-macro nên mong anh và các anh chị giúp
Gần như mù tịt tức là còn thấy chút chút vậy chắc là có thể mở macro lên

Bạn tải file không có nén chắc là được, khi bạn chọn sheet luôn có dữ liệu mới nhất
 

File đính kèm

Upvote 0
nếu đạt yêu cầu củaban thì thử lấy cái này xem

Thank bạn, đã gần như mình mong muốn. Tuy nhiên vẫn chưa cập nhật được nếu thêm cán bộ lớp hoặc thay đổi. Lọc lại chăng ?

muốn lọc đúng với yêu cầu thì bạn ghi yêu cầu củ thể và đưa đúng bảng dự liệu của mình
đó chỉ là vài dòng ví du, nếu đạt yêu cầu củaban thì thử lấy cái này xem,
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom