Hoi thao the gioi ke toan CleverCFO Công ty CP Tư Vấn Thuế Vinatax
+ Reply to Thread
Trang 2 của 3 Đầu tiênĐầu tiên 1 2 3 CuốiCuối
Kết quả 11 tới 20 của 30
  1. #11
    Tuanktcdcn
    Khách vãng lai
    Mình gửi file lên đây nhờ các bạn chỉ giúp.
    Cách 1- Lập công thức?
    Cách 2- VBA ?

    Mình nghĩ với cách 1 phải cố định số điều kiện thì mới làm được, còn cách 2 thì số điều kiện sẽ "động" hơn (có thể n điều kiện)?

    Bằng VBA thì mình có thể sẽ làm được, nhưng lập công thức (cách 1) thì hiện nay chưa.

    Cảm ơn các bạn!

  2. #12
    Đào Việt Cường
    Khách vãng lai
    Dear TuanKTCDCN,
    -------------------
    Theo em hiểu thì việc tổ chức các bảng cơ sở như trong file đính kèm của bác là bắt buộc(?). Nếu không, em có thể tạo một bảng phụ hoặc là gộp luôn cả 2 bảng vào làm 1. Xử lý sẽ rất đơn giản bằng Filter.
    Còn nếu điều kiện lọc bắt buộc nằm trên nhiều bảng như vậy, em sẽ phải lọc điều kiện qua 2 bước:
    Bước 1: Lọc điều kiện trên bảng chấm công
    Bước 2: Lọc điều kiện trong bảng hồ sơ, kết hợp với mã tìm được ở bước 1.
    Vấn đề sẽ đơn giản nếu tổ chức lại cơ sở dữ liệu đáp ứng được yêu cầu, mặc dù chưa được tối ưu lắm!
    (Trong file đính kèm em gộp 2 bảng cơ sở dữ liệu làm 1, hơi thừa nhưng đáp ứng được yêu cầu thống kê)

  3. #13
    adam_tran
    Khách vãng lai
    Vấn đề của anh Tuân là tìm giải pháp từ công thức hay VBA để giải quyết chuyện của Querry. Nếu dùng công cụ truy vấn tin để tìm những giá trị thỏa mãn từ n Databse thì...
    Ý tưởng của em là chôm 1 công cụ Querry nào đó, dùng VBA để điểu khiển.
    Đồ chơi trong Excel kiểu này hình như là Ms Querry thì phải, nhưng điều khiển nó = VBA thì chịu.

  4. #14
    IChiNoVa
    Khách vãng lai
    Đối với các giá trị: &quot;>=26&quot;, &quot;<3&quot;,
    Sao mít tơ Tuan không ghi thành 26; 3 thôi, bỏ dấu &quot;>, <, =&quot; đi. Coi như quy ước nó là lớn hơn hoặc bằng 26, nhỏ hơn 3.

    Làm như vậy có phải là dễ xử lý không, đỡ phải xử lý nhiều

  5. #15
    Tuanktcdcn
    Khách vãng lai
    Dear all,
    -------
    Trong trường hợp bắt buộc như thế này, chọn giải pháp Query là thích hợp nhất.
    Nhưng nếu xử lý Query bằng MS Access thì mạnh hơn nhiều.
    Việc chuyển đổi từ Excel sang Access không mất mấy công đâu ạ!
    Hi vọng đây cũng là một giải pháp!

  6. #16
    Đào Việt Cường
    Khách vãng lai
    Mít tơ Hải tu hải làm một mớ như vậy, mình đọc mà muốn bệnh luôn.
    Đừng có phức tạp hóa vấn đề lên chứ.

    Mình quy ước: Những các giá trị: 26, 3, 1 gọi là giá trị so sánh.
    Còn những thứ như: gia đình, số con, số công của từng người là giá trị bị so sánh.
    Cái này giống như số trừ và số bị trừ đấy hì hì....

    Trước tiên, mình sẽ khởi tạo vài biến (nếu biết trước là sẽ có bao nhiêu giá trị so sánh) để chứa các giá trị so sánh:
    đối với file của Mr Tuan, mình tạo 3 biến a, b, c. Mà cũng chỉ cần 2 biến là được bởi vì giá trị gia đình là 0 hoặc 1.

    Đó là trường hợp chỉ có 3 thứ để so sánh, nếu phát sinh thêm nhiều thứ khác, mà không thể biết được sẽ phải tạo bao nhiêu biến thì không thể dùng biến như trên được, mà phải dùng mảng A[i...n]

    Mỗi A[i] chứa một giá trị so sánh.

    Mảng này mình khai báo nhỏ thôi khoảng 10 chẳng hạn.
    Làm gì có ông nội nào so sánh nhiều điều kiện quá.

    Để gán giá trị so sánh cho biến, mình dùng refedit,
    Hoặc cho nó làm tham số truyền vào của thủ tục luôn.

    Đến đây thì còn gì nữa đâu,
    Dùng While hoặc Repeat để duyệt từ trên xuống dưới đến khi nào không còn nhân viên nào thì thôi. Hoặc tổng hợp số lượng nhân viên trước sau đó dùng For.

    PP1: kiểm tra từng người.
    Trước tiên so sánh số công, nếu số công OK, thì so sánh đến gia đình, nếu có gia đình, thì so sánh tiếp số con.

    Nếu trong công ty có ai mà chưa có gia đình, mà vẫn có con thì phải phải kiểm tra số con. hì hì.....

    PP2: Kiểm tra từng Sheet.
    Trước tiên ở sheet chấm công, tìm ra những người thỏa mãn điều kiện về số công. Lưu lại mã nhân viên thỏa điều kiện.

    ở sheet Hồ sơ, tìm ra những người thỏa mãn về số con, và gia đình. Lưu lại mã nhân viên thỏa điều kiện.

    Sau đó so sánh 2 kết quả tìm được ở 2 sheet, chọn ra những mã nhân viên nào mà có mặt ở cả 2 kết quả trên.

  7. #17
    hai2hai
    Khách vãng lai
    Dear IChiNoVa,
    ---------------
    Giờ thì em mới hiểu vì sao bác &quot;Cám ơn cái mông của tôi!&quot; [IMG]http://www.*************/forum/images/smilies/biggrin.gif[/IMG]
    Em không biết vòng duyệt của bác chạy nhanh đến mức nào khi mà bảng cơ sở dữ liệu đầy lên và các điều kiện so sánh dài ra.
    Chắc là chúng ta phải thi xem ai giành được giải thưởng của bác Tuân nhé!
    Thôi được, tạm gác không màng tới MS Access nữa. Và nếu ngại đụng đến MS Query, cách mà em vẫn thường làm đối với sổ kế toán:
    - Tạo ra một vùng điều kiện trong đó các cột phải tương ứng với bảng cần Filter (trong trường hợp này em sẽ chọn bảng Hoso là bảng filter vì nó có nhiều điều kiện hơn)
    - Lọc bảng có điều kiện ít trước: ở đây bảng Chamcong chỉ có một điều kiện - em lọc bảng này trước để tìm ra những thoả điều kiện
    - Copy mã tìm được vào bảng điều kiện sau đó thực hiện lọc bảng Hoso
    Em nghĩ cách này không cần dùng vòng duyệt nào sẽ nhanh hơn và đáp ứng được mọi điều kiện, kể cả việc mở rộng thêm điều kiện!

  8. #18
    hai2hai
    Khách vãng lai
    Lâu quá mới vào lại WKT được, em đang làm việc tận Điện biên nên thời gian tham gia chẳng có nhiều!
    Tiện thấy bài này có những ý hay, em xin gửi các bác một các dùng ADO + Query với Excel theo đó em trực tiếp dùng ADO kết nối với một bảng tính đang mở để cấp dữ liệu cho form thông qua query mà không dùng đến range.

    Cách tiếp cận thì không có gì mới, tôi xin giới thiệu cách này:
    + Coi Excel như là một nguồn CSDL. Thực hiện kết nối đến bảng tính Xls dung Jet Isam 4.0 với ADODB.
    + Dùng các câu lệnh truy vần SQL bình thường trên bảng tính với đối tượng recordset.
    Ví dụ:
    Select * from [Sheet1$] where ….;
    Và trả về kết quả là đối tượng Recordset.
    Như thế việc dung đến JOIN và UNION cũng không khó đúng không.
    Tương tự các bạn cũng có thể dung để lọc trên nhiều bản.
    Tuy nhiên, với nhiều điều kiện (n điều kiện) như yêu cầu của Tuân, thì bản thân SQL cũng đâu cho phép điều kiện quá phức tạp, vì thế ta cần xử lý việc đặt điều kiện sao cho năng động. VÍ dụ tách điều kiện phức hợp….
    Tiện đây các bạn có thể xem qua ví dụ gửi kèm để có thể tham khảo thêm.
    Nay kính thư.

  9. #19
    paulsteigel
    Khách vãng lai
    Tôi xin mạn phép góp ý kiến một chút.
    Tôi có xem qua file tìm giá trị thoả mãn n điều kiện và làm thử bằng cách dùng công thức. Tôi thấy dễ dàng chứ có khó khăn gì đâu. Tôi chỉ sử dụng hàm Vlookup, if và một bộ lọc là đáp ứng ngay yêu cầu trên. Còn về VBA thì chịu, không dám múa rìu qua mắt thợ.

  10. #20
    VanHao
    Khách vãng lai
    Hì, để giải quyết 1 vấn đề của mình thì mò hoài cũng ra. Nhưng tôi nghỉ &quot;tham vọng&quot; của anh Tuân là tạo ra 1 công cụ để tổng hợp hay so sánh các bảng CSDL của Excel qua một hay vài &quot;key column&quot; tương tự so sánh các table qua công cụ querry bên Access, từ đó tạo ra 1 CSDL mới (1 sheet mới) thỏa mãn những điều kiện nào đó. Nhưng... Excel cũng chỉ là 1 spreadsheet, chưa phải là 1 CSDL thực sự, do đó vấn đề này thật khó.
    Tôi chỉ nhìn vấn đề 1 cách chung chung vậy thôi, còn làm như thế nào thì chịu.


 

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Similar Threads

  1. Trả lời: 12
    Bài viết cuối: 08-30-2011, 07:39 AM
  2. Trả lời: 3
    Bài viết cuối: 07-30-2010, 05:58 PM
  3. Tim và lấy giá trị thoả mãn nhiều đều kiện?
    By Tuanktcdcn in forum Ứng dụng Excel
    Trả lời: 29
    Bài viết cuối: 07-30-2010, 12:51 PM
  4. cần bao nhiêu kiến thức để dự tuyển trợ lí kiểm toán?
    By tuhocketoan in forum Kiểm toán độc lập
    Trả lời: 4
    Bài viết cuối: 07-29-2010, 01:38 AM

Quyền viết bài

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài viết của bạn