Xin trợ giúp về xử lí dữ liệu!

Liên hệ QC

aduc

Thành viên chính thức
Tham gia
25/3/08
Bài viết
82
Được thích
57
Nghề nghiệp
Ki su thiet ke xay dung
Mình có một bàng nội lực xuất từ phần mềm etaps.Đối với dầm chỉ cần lấy 3 tiết diện đầu , giữa cà cuối. Tuy nhiên trong phần mềm xuất nhiều hơn 3 tiết diện. Bây giờ làm thế nào để loại bỏ những tiết diện không cần thiết?
ẢNh thứ nhất là dữ liệu cần lọc.
sheet1.gif
ẢNh thứ hai là kết quả.
sheet2.gif
Xin các bác, các anh chị và các bạn trợ giúp.(có file kèm theo)
 

File đính kèm

  • Loc du lieu.xls
    16.5 KB · Đọc: 51
Lần chỉnh sửa cuối:
- Bạn chỉ giúp dữ liệu bạn đưa lên, đâu là "giữa" dùm !
 
Nếu số hàng là lẻ thì lấy hàng giữa.(chẳng hạn 5 hàng thì lấy hàng 3).
Nếu số hàng chẵn (6 hàng thì lấy hàng thứ 4).(=6/2 +1).
 
Trong file bạn, bảng tính bị cách 1 dòng, vậy xem là 2 bảng hay 1 bảng đây?
Tức là lọc ra 2 bảng hay 1 bảng!
Nói chung chỉ khó phần tính xem dòng nào là "giữa", đúng không?
Bạn dùng hàm ROWS là ra chứ gì
Mã:
=ROUND((ROWS(Vùng)+1)/2,0)
Tiếp theo thì INDEX
 
Vậy đưa ra giải pháp của mình nhé :

-Xác định dòng đầu tiên
-Xác định dòng cuối
-Xác định dòng giữa :Đếm số ô chứa dữ liệu trong một cột=x.Nếu là lẻ thì (x+1)/2. Nếu là chẵn x/2+1
 
Ý mình là xử lí cho tất cả bảng tính. Có thể các bác dùng VBA được không. Trả về một sheet khác hoặc ngay trong sheet đó thì càng tốt.
Mọi người xem sheet2 là kết quả.
 

File đính kèm

  • Loc du lieu.xls
    18 KB · Đọc: 41
Lần chỉnh sửa cuối:
Vậy đưa ra giải pháp của mình nhé :

-Xác định dòng đầu tiên
-Xác định dòng cuối
-Xác định dòng giữa :Đếm số ô chứa dữ liệu trong một cột=x.Nếu là lẻ thì (x+1)/2. Nếu là chẵn x/2+1
Thì như tôi nói ở trên đấy:
1> Dòng đầu =INDEX(Vùng,1, Chỉ số cột)
2> Dòng giữa = INDEX(Vùng,ROUND((ROWS(Vùng)+1)/2,0), Chỉ số cột)
3> Dòng cuối =INDEX(Vùng,ROWS(Vùng),Chỉ số cột)
Chỉ số cột có thể dùng hàm COLUMN()
 
Có cách nào dùng lệnh hay Vba xóa các dòng thừa trong mỗi vùng dữ liệu không?
Tức là xác định các dòng cần giữ lại sau đó xóa các dòng kia đi?
 
Ý mình là xử lí cho tất cả bảng tính. Có thể các bác dùng VBA được không. Trả về một sheet khác hoặc ngay trong sheet đó thì càng tốt.
Mọi người xem sheet2 là kết quả.
Bạn làm ơn xác định thêm 1 việc nữa: File thực tế của bạn chỉ có 2 bảng như vầy hay còn nhiều nữa?
 
File của mình nhiều bảng như thế nữa. Nhưng các bảng phía dưới tương tự thôi.Tuy nhiên mỗi bảng tính cách nhau một dòng trống. Nhờ các bạn giúp đỡ. Cảm ơn nhiều.
 
Lần chỉnh sửa cuối:
Có cách nào dùng lệnh hay Vba xóa các dòng thừa trong mỗi vùng dữ liệu không?
Tức là xác định các dòng cần giữ lại sau đó xóa các dòng kia đi?

Bạn xem đã được chưa nhé ! Vì cột A luôn là Text nên mình dò theo cột A
 

File đính kèm

  • Loc du lieu (dosnet).xls
    19 KB · Đọc: 26
Hình như Vẫn chưa ốn lắm bạn à. Mình đang lọc dầm B10 mà. Nó bị sang B21 mất rồi.
Mình muốn sau một hàng trống quá trình lọc lại tiếp tục cho các dầm tiếp theo. Từ đó sẽ lọc cho cả bảng tính. Cảm ơn.
 
Hình như Vẫn chưa ốn lắm bạn à. Mình đang lọc dầm B10 mà. Nó bị sang B21 mất rồi.
Mình muốn sau một hàng trống quá trình lọc lại tiếp tục cho các dầm tiếp theo. Từ đó sẽ lọc cho cả bảng tính. Cảm ơn.
- Tức là mỗi dầm cách nhau một dòng trống (B10,B21...), lọc dòng đầu, dòng giữa và dòng cuối của mỗi dầm ?
- Có khoảng bao nhiêu dầm trên một sheet, số lượng dòng một loại dầm có cố định không? Bạn đưa dữ liệu thật khoảng 100 dòng. Nếu công thức ko đáp ứng được thì nhờ VBA.
 
Có khá nhiều dầm bạn à. Số lượng mặt cắt trên mỗi dầm khác nhau. Mình muốn lọc dữ liệu từng dầm. Mỗi dầm khác nhau cách nhau một hàng trống. Bạn xem file kèm theo và kết quả tham khảo nhé. Cảm ơn.
 

File đính kèm

  • file goc.xls
    46 KB · Đọc: 29
Đưa lên 1 cách dùng công thức! Tuy nhiên tôi vẩn nghĩ bài toán này dùng VBA là hay nhất
(Nhờ các cao thủ khác làm giúp, nghĩ ko ra)
Chỉ cần làm công thức cho 4 dòng đầu tiên, sau đó quét chọn 4 dòng rồi kéo fill xuống
 

File đính kèm

  • Loc_02.rar
    21.3 KB · Đọc: 49
Có khá nhiều dầm bạn à. Số lượng mặt cắt trên mỗi dầm khác nhau. Mình muốn lọc dữ liệu từng dầm. Mỗi dầm khác nhau cách nhau một hàng trống. Bạn xem file kèm theo và kết quả tham khảo nhé. Cảm ơn.
Cách nữa dùng công thức, Bạn tham khảo !
 

File đính kèm

  • Loc du lieu-tim dong (dosnet).rar
    16 KB · Đọc: 68
Cảm ơn các bạn đã giúp đỡ nhé. Mình có thể xử lí được dữ liệu và dùng để in được rồi.
Có bác nào dùng được Vba chỉ cần dùng một nút lệnh tính toán ngay trên sheet thì tuyệt.
 
Chỉ cần làm công thức cho 4 dòng đầu tiên, sau đó quét chọn 4 dòng rồi kéo fill xuống.
 

File đính kèm

  • file gocduc.zip
    22.9 KB · Đọc: 40
File mà bạn Salam gửi chỉ xử lí khoảng 500 dòng. Làm thế nào để có thể xử lí hết bảng tính bây giờ???
Xin tiếp tục giúp đỡ nhé.
 
Lần chỉnh sửa cuối:
File mà bạn Salam gửi chỉ xử lí khoảng 500 dòng. Làm thế nào để có thể xử lí hết bảng tính bây giờ???
Xin tiếp tục giúp đỡ nhé.
Bạn có thể thay công thức của name DS.

Mã:
=OFFSET(Sheet1!$A$10,,,MATCH("*",Sheet1!$A$10:[COLOR=Red]$A$10000[/COLOR],-1)+1,)

Bằng:
Mã:
=OFFSET(Sheet1!$A$10,,,MATCH("*",Sheet1!$A$10:[COLOR=Red]$A$10000[/COLOR],-1)+1,)
Hoặc nhiều hơn nữa tùy ý bạn.
 

File đính kèm

  • file gocduc.zip
    19.3 KB · Đọc: 62
Web KT
Back
Top Bottom