Tổng hợp các cách để xóa dòng trống trong Excel 2007, 2010, 2013

22:34 |

(Xóa dòng trống trong Excel)

- Khi bạn phải xử lý dữ liệu được Copy từ một nguồn khác như: Internet hoặc từ phần mềm trong Excel, thông thường dữ liệu này thường không theo ý muốn. Và thường xảy ra vấn đề các dòng dữ liệu không liền nhau và bị các dòng trống xen kẽ.


Với trường hợp này nếu dữ liệu ít thì có thể thực hiện bằng phương pháp thủ công để xóa, nhưng đối với dữ liệu lớn thì cách làm này sẽ không khả thì vì mất quá nhiều thời gian. Vậy có cách nào để loại bỏ nhanh các dòng trống ? Hôm nay Kênh phần mềm việt sẽ giới thiệu với mọi người 2 phương pháp đơn giản để có thể xóa nhanh các dòng dữ liệu trắng và dưới đây là các cách thực hiện.

1. Sử dụng các chức năng có sẵn
a. Cách 1: 
- B1: Chọn toàn bộ dữ liệu cần xóa (Trong trường hợp dữ liệu nhiều Excel sẽ không cho phép chọn toàn bộ, khi đó bắt buộc phải chọn từng phần)
- B2: Ấn tổ hợp phím Ctrl + G, hộp thoại xuất hiện

- B3: Kích nút Special
- B4: Kích chọn Blanks

- B5: Chọn Tab Home, kích biểu tượng Delete trên thanh Toolbar

- B6: Kích chọn Delete Sheet Rows
Sau khi thực hiện xong các bước trên, toàn bộ các dòng trống đã được chọn sẽ được xóa bỏ.
b. Cách 2:
- B1: Chọn toàn bộ dữ liệu
- B2: Vào Tab Data\Filter


- B3: Bỏ chọn Select All
- B4: Kéo thanh trượt xuống phía dưới cùng


- B5: Tích chọn (Blanks) và kích OK, toàn bộ các dòng trống sẽ được lọc


- B6:  Chọn Tab Home, kích biểu tượng Delete trên thanh Toolbar


2. Sử dụng VBA
- B1: Nhấn ALT + F11 để bắt đầu Visual Basic Editor.
- B2: Vào menu Inser\Module

- B3: Nhập toàn bộ đoạn mã sau vào màn hình soạn thảo Code
Sub DeleteBlankRows()
    Dim i As Long
    If WorksheetFunction.CountA(Selection) = 0 Then
        MsgBox "Chua co vung du lieu nao duoc chon", vbInformation, "kenhphanmemviet.blogspot.com"
        Exit Sub
    End If
    With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
        For i = Selection.Rows.Count To 1 Step -1
            If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
                Selection.Rows(i).EntireRow.Delete
            End If
        Next i
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
    End With
End Sub

- B4: Quay lại màn hình làm việc Excel với tổ hợp Alt + Q
- B5: Chọn toàn bộ dữ liệu cần xóa bỏ dòng trống
- B6: Chọn Tab View\Macros\View Macros


- B7: Lựa chọn Macro DeleteBlankRows và kích nút Run
Sau khi thực hiện xong Macro này, toàn bộ các dòng trống trong vùng dữ liệu được chọn sẽ tự động được xóa bỏ.
Trên đây là các cách để có thể xóa các dòng dữ liệu trống, tùy vào thói quen của từng người mà lựa chọn cách thực hiện cho phù hợp.

Tin học văn phòng
Read more…

Đánh dấu các giá trị trùng nhau bằng những màu khác nhau bằng VBA trong Excel

06:45 |

(Thủ thuật VBA trong Excel)

- Đối với những người làm công việc tính toán,  thống kê thì việc phải thường xuyên làm việc với những con số trùng nhau trong 1 vùng, 1 sheet là chuyện thường xuyên gặp phải. Để tiện cho việc theo dõi, người sử dụng thường đánh dấu các giá trị trùng nhau này theo các riêng của mình. Nhưng cách thông thường mọi người thường sử dụng đó là sử dụng Conditional Formatting để tìm và định dạng các giá trị trùng nhau, nhưng với cách làm này người sử dụng chỉ có thể sử dụng được 1 màu duy nhất để phân biệt các giá trị trùng nhau. Với việc sử dụng Conditional Formatting, người sử dụng vẫn khó theo dõi trong 1 vùng có nhiều giá trị giống nhau do chỉ có 1 màu để phân biệt. Vậy có cách nào để có thể thể hiện mỗi giá trị trùng nhau là một màu riêng biệt không?


Hôm nay Kênh phần mềm việt sẽ giới thiệu với mọi người sử dụng VBA để đánh dấu các giá trị trùng nhau bằng những màu khác nhau.

B1: Khởi động Microsoft Excel.
B2: Nhấn ALT + F11 để bắt đầu Visual Basic Editor.
B3: Vào Menu Inser\Module


B4: Nhập toàn bộ đoạn mã sau vào

Sub Highlight_Duplicate()
    Dim ws As Worksheet
    Dim cell As Range
    Dim myrng As Range
    Dim clr As Long
    Dim lastcell As Range
    Dim i As Long
    Dim lastrow As Long

    Set ws = ThisWorkbook.ActiveSheet

    'Vung can danh dau gia tri trung nhau
    Set myrng = ws.Range("C4:F" & Range("C" & ws.Rows.Count).End(xlUp).Row)

    With myrng
        Set lastcell = .Cells(.Cells.Count)
    End With

    myrng.Interior.ColorIndex = xlNone
    clr = 3

    For Each cell In myrng
        'Kiem tra so gia tri trung nhau trong vung, neu co hai gia tri trung nhau tro len thi thuc hien
        If Application.WorksheetFunction.CountIf(myrng, cell) > 1 Then
            'Neu la o dau tien cua cac gia tri trung nhau trong vung
            If myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastcell).Address = cell.Address Then
                'Thiet lap mau
                cell.Interior.ColorIndex = clr
                clr = clr + 1
                i = i + 1
            Else
                'Thiet lap mau tu o thu 2 voi cac gia tri trung nhau
                cell.Interior.ColorIndex = myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastcell).Interior.ColorIndex
            End If
        End If
    Next

     'Lay dong cuoi cung cua vung du lieu
    lastrow = Cells(Rows.Count, "A").End(xlUp).Row
    Range("A" & lastrow + 2).Value = "Tong so co " & i & " gia tri trung nhau"
End Sub

Trong ví dụ này, Kênh phần mềm đang để vùng cần đánh dấu từ cột C: F, các bạn có thể thay đổi địa chỉ của vùng này tùy vào dữ liệu thực tế.

B5: Chạy Macro có tên Highlight_Duplicate

Tin học văn phòng
Read more…

Tạo mục lục danh sách các Sheet trong Excel

21:18 |
(Thủ thuật VBA Excel) - Trong Excel khi làm việc với một vài Sheet thì việc di chuyển khá dễ dàng, người sử dụng không phải mất quá nhiều thời gian để lựa chọn Sheet cần thao tác. Tuy nhiên khi Workbook có nhiều Sheet thì việc chọn Sheet để làm việc thì quả thực rất khó và mất thời gian. Có 1 cách để di chuyển qua lại giữa các Sheet bằng sử dụng phím tắt đó là: Ctrl-Page Up: Tiến lên 1 sheet (Sheet 1 sang Sheet 2), Ctrl-Page Down: Lùi về 1 sheet (Sheet 3 về Sheet 2). 

Hoặc cũng có nhiều người sử dụng 1 Sheet chính, trong Sheet này sẽ tạo danh mục các Sheet dạng mục lục và liên kết đến đây khi kích vào. Với cách làm này người sử dụng có thể dễ dàng trong việc làm việc và di chuyển giữa các Sheet và quay về Sheet chính.  Hiện mọi người vẫn sử dụng phương pháp thủ công để làm công việc này, hôm nay Kênh phần mềm việt sẽ giới thiệu với mọi người 1 phương pháp để làm nhanh công việc này bằng cách sử dụng VBA.


Hàm này sẽ có chức năng như sau:
- Kiểm tra xem đã có Sheet mục lục chưa, nếu chưa có thì sẽ tạo mới và chèn vào vị trí đầu tiên
- Thiết lập độ rộng cột
- Định dạng các vùng dữ liệu
- Đánh số thứ tự và chèn tên Sheet vào các ô
- Chèn liên kết đến các Sheet tương ứng với từng Sheet
- Chèn một liên kết để quay về Sheet Mucluc

Dưới đây là các bước để tạo Macro này.
1. Khởi động Microsoft Excel.
2. Nhấn ALT + F11 để bắt đầu Visual Basic Editor.
Vào Menu Inser\Module


3. Nhập toàn bộ đoạn mã sau vào

Private Sub CreateTableOfContents()
    Dim wsSheet As Worksheet
    Dim ws As Worksheet
    Dim Counter As Long

    On Error Resume Next
    Set wsSheet = Sheets("Mucluc")
    'Kiem tra su ton tai cua Sheet
    On Error GoTo 0
    If wsSheet Is Nothing Then
        'Neu chua co thi them vao vi tri dau tien cua Workbook
        Set wsSheet = ActiveWorkbook.Sheets.Add(Before:=Worksheets(1))
        wsSheet.Name = "Mucluc"
    End If

    With wsSheet
        .Cells(2, 1) = "DANH SACH CAC SHEET"
        .Cells(2, 1).Name = "Index"
        .Cells(4, 1).Value = "STT"
        .Cells(4, 2).Value = "Ten Sheet"
    End With

    'Merge Cell
    With Range("A2:B2")
        .Merge
        .HorizontalAlignment = xlCenter
        .Font.Bold = True
    End With

    'Set ColumnWidth
    With Columns("A:A")
        .ColumnWidth = 8
        .HorizontalAlignment = xlCenter
    End With

     With Range("A4")
        .HorizontalAlignment = xlCenter
        .Font.Bold = True
    End With

    Columns("B:B").ColumnWidth = 30
    With Range("B4")
        .HorizontalAlignment = xlCenter
        .Font.Bold = True
    End With

    Counter = 1
    For Each ws In Worksheets
        If ws.Name <> wsSheet.Name Then
            'Gan gia tri cot thu tu
            wsSheet.Cells(Counter + 4, 1).Value = Counter
            'Tao lien ket
            wsSheet.Hyperlinks.Add Anchor:=wsSheet.Cells(Counter + 4, 2), _
                                            Address:="", _
                                            SubAddress:=ws.Name & "!A1", _
                                            ScreenTip:=ws.Name, _
                                            TextToDisplay:=ws.Name
            'Them nut Quay ve Sheet Muc luc tai moi Sheet
            With ws
                .Hyperlinks.Add Anchor:=.Range("H1"), Address:="", SubAddress:="Index", TextToDisplay:="Quay ve"
            End With
            Counter = Counter + 1
        End If
    Next ws
   Set xlSheet = Nothing
End Sub

4. Chạy Marco vừa tạo, bạn sẽ có 1 danh sách toàn bộ các Sheet có trên Workbook hiện tại được đưa vào trong Sheet Mucluc, và từ đây bạn dễ dàng đến bất kỳ một Sheet nào khi cần.

Tin học văn phòng
Read more…

Sự khác nhau giữa tài liệu (Document) và biểu mẫu (Template) trong Word

08:45 |
(Thủ thuật Word) - Microsoft Word, còn được biết đến với tên khác là Winword, là một công cụ soạn thảo văn bản khá phổ biến và quen thuộc hiện nay. Nó cho phép người dùng soạn thảo, tạo các hiệu ứng như phông chữ, màu sắc, cùng với hình ảnh đồ họa và nhiều hiệu ứng đa phương tiện khác như âm thanh, video. 

Trong Word có 2 khái niệm về tài liệu đó là tài liệu thường và tài liệu dạng biểu mẫu hay còn gọi là Template. Đối với tài liệu thường chắc đã quá quen thuộc đối với chúng ta, còn với Template thì sao? Template là gì? Có sự khác nhau nào giữa tài liệu (Document) và biểu mẫu (Template) không?


Một biểu mẫu là một loại tài liệu đã có sẵn nội dung trong đó như văn bản, kiểu trang trí, định dạng; định dạng trang như canh lề, cách dòng; các yếu tố trang trí như màu sắc, đường viền...
Dưới đây là sự khác nhau giữa Biểu mẫu (Template) và Tài liệu (Document)

1. Sự khác nhau về định dạng File
- Từ phiên bản Office 2007 hoặc lớn hơn biểu mẫu được lưu dưới dạng Word Template và nó có đuôi file là ".dotx" (các phiên bản Office 2003  hoặc nhỏ hơn là ".dot").
- Từ phiên bản Office 2007 hoặc lớn hơn tài liệu được lưu dưới dạng Word Document và nó có đuôi file là ".docx" (các phiên bản Office 2003  hoặc nhỏ hơn là ".doc"). 

2. Cách thức hoạt động

a. Đối với Biểu mẫu
Khi bạn mở một biểu mẫu một tài liệu mới được tạo ra dựa trên biểu mẫu mà bạn chọn. Thực chất bạn làm việc với một bản sao chứ không phải biểu mẫu gốc. Bản sao này tạo ra tất cả các thành phần của biểu mẫu trong một tài liệu hoàn toàn mới. Bạn làm việc với tài liệu mới đó, thừa hưởng tất cả các thành phần có trong biểu mẩu và có thể thêm bớt nội dung tùy ý. Vì bạn làm việc trên một tài liêu mới nên những thay đổi mà bạn thực hiện sẽ không ảnh hưởng tới biểu mẫu gốc, nó luôn được giữ ở trạng thái nguyên bản. Vì vậy, một biểu mẫu có thể là nền tảng cho việc nhân bản vô số tài liệu.

b. Đối với tài liệu
Khác với biểu mẫu, tài liệu không tạo ra bản sao của tài liệu gốc, mọi thay đổi, chỉnh sửa được thực hiện ngay trên bản gốc. Do đó toàn bộ việc thay đổi về nội dung, định dạng: font, cỡ, màu chữ, thiết lập in ấn sẽ ảnh hưởng trực tiếp đến tài liệu gốc.

3. Sử dụng những biểu mẫu có sẵn trong WORD

a. Đối với tài liệu
Không hỗ trợ các tài liệu có sẵn, mà hoàn toàn do người sử dụng tự tạo ra.

b. Đối với Biểu mẫu
Khi sử dụng Biểu mẫu, bạn có thể tạo tài liệu mới từ các biểu mẫu sẵn có trong Word và bộ Office hoặc Download từ trên Internet, có rất nhiều loại biểu mẫu cho bạn lựa chọn như: Mẫu trang bìa Fax, Mẫu lịch làm việc, Mẫu hợp đồng, Đơn hàng, Hồ sơ lý lịch…. Bạn có thể sử dụng các biểu mẫu này để tạo ra các tài liệu chuyên nghiệp và ấn tượng cho riêng mình.

Tin học văn phòng
Read more…

Những lợi ích khi sử dụng Style trong Word

08:44 |
(Lợi ích sử dụng Style) - Cùng với Microsoft Excel, Microsoft Word là một phần mềm phổ biến và thông dụng nhất hiện nay, Word cung cấp đầy đủ các tính năng từ đơn giản đến phức tạp, từ cơ bản đến nâng cao. Một trong những tính năng rất hữu ích đối với người sử dụng đó là tính năng Style. Tính năng này giúp cho 1 văn bản nhất quán, đồng nhất về định dạng như: Font chữ, Cỡ chữ, Màu chữ, Gạch châm, In đậm… tiết kiệm thời gian, đơn giản hóa công việc và đặc biệt giúp người sử dụng nhanh chóng thay đổi định dạng cho văn bản khi cần.


Vậy khi nào nên sử dụng Style vào soạn thảo văn bản? Dưới đây là những trường hợp nên sử dụng.

- Tài liệu dài từ 10 trang trở lên
- Tài liệu được sửa đổi nhiều lần, có thể chỉnh sửa theo tuần, tháng, thậm chí nhiều năm.
- Tài liệu được biên tập bởi nhiều hơn 1 người.

Vậy đâu là những lợi ích khi sử dụng Style vào soạn thảo văn bản?

1. Tiết kiệm thời gian trong quá trình chỉnh sửa, thay đổi nội dung
Khi sử dụng Style cho tài liệu,  việc thay đổi & chỉnh sửa sẽ tiết kiệm nhiều thời gian, chỉ cần vài lần nhấn chuột để lựa chọn Style toàn bộ nội dung tài liệu sẽ được điều chỉnh theo Style đó. Chức năng này xuất hiện từ phiên bản Word 2007 với một danh sách các Style có sẵn trên thanh công cụ Toolbar.

2. Tăng tốc độ định dạng
Trước đây, để định dạng các đoạn nội dung giống nhau, bạn sẽ phải thực hiện lại đầy đủ các thao tác, hoặc nhanh hơn, bạn có thể sử dụng chức năng sao chép định dạng (Format Painter). Trong trường hợp sử dụng Style, bạn chỉ đơn giản nhấp chuột để áp định dạng bạn muốn sử dụng hoặc sử dụng các phím tắt để gọi các Style. Với cách này sẽ nhanh hơn rất nhiều so với cách định dạng thông thường.

3. Giúp thống nhất định dạng toàn văn bản
Nếu không sử dụng style, bạn vẫn có thể làm được việc này, tuy nhiên với các tài liệu dài sẽ dẫn tới có sai sót hoặc không đồng nhất về định dạng. Để ý rằng việc tự định dạng có thể khiến bạn mắc “sai lầm”: với nội dung phía trên, bạn định dạng đúng, nhưng với nội dung phía dưới, chỉ thiếu một thao tác định dạng nghiêng đã khiến văn bản của bạn có sự khác biệt! Bạn cũng phải mất công “nhớ” mình định dạng kiểu gì cho dạng nội dung đang lựa chọn! Nhưng với chức năng Style sẽ giúp bạn làm tốt, hiệu quả hơn và tránh những nhầm lẫn sai sót.

4. Tạo mục lục tự động
Với việc tạo mục lục tự động, bạn không phải điều chỉnh số trang bằng tay mỗi khi thay đổi nội dung, chỉ cần chèn lại mục lục số trang sẽ được tự động điều chỉnh. Ngoài ra mục lục tự động còn giúp bạn dễ dàng và nhanh chóng đi đến các vị trí mong muốn trên toàn bộ tài liệu. Chính điều này giúp bạn tiết kiệm thời gian và công sức đối với những tài liệu dài. 

5. Tăng khả năng làm việc cộng tác, làm việc nhóm
Đối với những tài liệu dài, được tổng hợp từ nhiều người thì việc sử dụng Style thống nhất sẽ giúp việc ghép nối, tổng hợp công việc của mọi người thành 1 tài liệu thống nhất sẽ dễ dàng hơn bao giờ hết. Thử hình dung nếu như không sử dụng Style và mỗi người định dạng theo một phong cách riêng thì sẽ tốn nhiều thời gian cho công việc định dạng thống nhất tài liệu.

6. Chia sẻ phong cách định dạng cho người khác hoặc tái sử dụng lại khi cần
Với những tài liệu đã được tạo các Style chuẩn, bạn có thể dễ dàng chia sẽ phong cách định dạng cho bạn bè, đồng nghiệp để sử dụng lại hoặc cũng có thể tái sử dụng khi phải tạo các tài liệu mới.

7. Xuất bản lên web
Ngôn ngữ tiêu chuẩn cho xuất bản tài liệu trên web là HTML. Một yếu tố cơ bản của HTML là các thẻ H1, H2, H3. Nếu bạn lưu một tài liệu Word sang định dạng HTML để xuất bản trên trang web, Word tự động các style thành các thẻ tương ứng như: Heading 1 -> H1, Heading 2 -> H2, Heading 3 -> H3…

8. Bản đồ tài liệu (View\Document Map)
Khi sử dụng Style và hiển thị văn bản dạng Bản đồ tài liệu, bạn có thể dễ dàng nhìn thấy được toàn bộ cấu trúc, các đầu mục của tài liệu dưới dạng cây Treeview. Nhờ hiển thị dạng cây này ta có thể xem được tổng quan các đầu mục trong tài liệu, di chuyển, chuyển đổi giữa các mục nhanh chóng và chính xác.

Tin học văn phòng
Read more…

Macro tạo phân số trong Word 2007

20:41 |
(Tin học văn phòng) - Nếu bạn thường xuyên phải đánh các phân số trong Word, công việc này có thể làm tốn nhiều thời gian. Như bạn đã biết, ta có thể sử dụng các trường (Field) để gõ phân số, tuy nhiên thật khó khăn khi phải nhớ hết công thức của nó. Vì vậy bạn nên tạo một Macro giúp mình làm việc này.

Trước tiên bạn mở Word, ấn tổ hợp phím Alt + F11. Khi xuất hiện cửa sổ Microsoft Visual Basic, bạn vào Menu Insert\Module và nhập đoạn mã dưới đây.


Sub InsertFraction()
  Dim Tuso As String
  Dim Mauso As String
  Tuso = InputBox("Ban hay nhap tu so:", "Tu so")
  If Tuso <> "" Then
  Mauso:
  Mauso = InputBox("Ban hay nhap mau so:", "Mau so")
  If Mauso = "0" Then
  MsgBox "Mau so khong the la gia tri 0 duoc.", , "Khong dung"
  GoTo Mauso
  Else
  If Mauso <> "" Then
      ActiveDocument.Fields.Add Range:=Selection.Range, _
Type:=wdFieldEmpty, Text:="EQ \f(" & Tuso & ", " & Mauso & " )", _
PreserveFormatting:=False
  End If
  End If
  End If
End Sub
Nhập xong Code, nhấn Alt+Q để trở về cửa sổ Word. Mỗi khi cần tạo phân số, bạn vào Tab View\Macros, chọn InsertFraction và nhấn nút Run.


Công việc của bạn tiếp theo là nhập phân số mong muốn.

Lâm Quang Bình
Read more…

Cách gõ phân số nhanh trong Word

18:35 |
(Tin học văn phòng) - Trong quá trình soạn thảo văn bản, có những lúc người sử dụng phải nhập phân số hoặc biểu thức toán học. Với công cụ Microsoft Equation ta có thể dễ dàng thực hiện được công việc này, tuy nhiên với những phân số hoặc biểu thức đơn giản nếu sử dụng Microsoft Equation sẽ mất nhiều thời gian cho người sử dụng. 

Bài viết này Tôi sẽ cung cấp cho các bạn cách gõ phân số hay dạng công thức toán học đơn giản nhanh chóng mà không cần sử dụng đến Microsoft Equation và cũng có thể không cần dùng đến chuột như vậy việc soạn thảo sẽ không bị gián đoạn.


Lâm Quang Bình - khampha1234@gmail.com
Read more…

Tạo các Header và Footer khác nhau trong Word 2007

02:47 |
(Tin học văn phòng) - Theo mặc định khi tạo các Header hoặc Footer cho tài liệu, Header hay Footer sẽ mặc định giống nhau trên toàn bộ các trang của tài liệu. Tuy nhiên thực tế chúng ta nhìn thấy  nhiều trường hợp trong 1 tài liệu có những Header khác nhau, ví dụ như các báo cáo, đề tài, sách…

Vậy ta có thể tạo các Header khác nhau không? Hôm nay Tôi sẽ hướng dẫn các thao tác để thực hiện việc này.

Ví dụ ta có 60 trang, từ trang 1->20  Header là: Chương 1, từ trang 21->40 Header là: Chương 2, từ trang 41 ->60 Header là: Chương 3.

Dưới đây là các bước thực hiện.

- B1: Đặt con trỏ tại dòng cuối cùng của trang 20
- B2: Chọn Tab Page Layout\Breaks\Next Page


- B3: Chọn Tab Inser\Header\Edit Header



- B4: Nhập tên Header cần tạo



- B5: Kích nút Link to Previous
- B6: Kích nút Previous Section để trở về phần nhập Header 1
- B7: Nhập nội dung cho Header



- B8: Kích nút Close Header And Footer
Cuối cùng ta sẽ được 1 tài liệu có những Header khác nhau theo mong muốn.

Tin học văn phòng
Read more…

Tìm kiếm theo hai điều kiện trong Excel

09:03 |
(Tin học văn phòng) - Như bạn biết, trong Excel để tìm kiếm một giá trị thoả mãn điều kiện nào đó, ta có thể dùng hàm Vlookup hay Hlookup. Tuy nhiên, hai hàm này chỉ cho phép tìm kiếm theo 1 điều kiện mà thôi. Ví dụ chúng ta có một bảng dữ liệu như hình 1, yêu cầu đặt ra là tìm điểm toán của một học sinh trong danh sách theo 2 điều kiện giới tính và tên. Vậy ta phải làm thế nào đây?

Tôi sẽ giới thiệu với các bạn một hàm tự tạo để làm việc này.
Trước tiên, bạn vào menu Tools\Macro\Visual Basic Editor (Alt + F11). Tại cửa sổ Microsoft Visual Basic, vào menu Insert\Module và nhập đoạn mã sau vào module vừa tạo.


Function FindTwoCondition(Table As Range, Val1 As Variant, _
Val1Occrnce As Integer, Val2 As Variant, Val2Col As Integer, ResultCol As Integer)
'Tabel la bang du lieu
'Val1 Dieu kien thu nhat
'Val1Occrnce gia tri thu n cua dieu kien trong cot
'Val2 dieu kien thu hai
'Val2Col cot thu n cua dieu kien thu 2
'ResultCol cot thu n can tim

Dim i As Integer, iCount As Integer
Dim rCol As Range

  For i = 1 To Table.Rows.Count
    If Table.Cells(i, 1) = Val1 And _
      Table.Cells(i, Val2Col) = Val2 Then
      iCount = iCount + 1
    End If
 
    If iCount = Val1Occrnce Then
      FindTwoCondition = Table.Cells(i, ResultCol)
      Exit For
    End If
  Next i
End Function

Sau khi đã nhập xong đoạn mã trên, bạn quay trở lại màn hình làm việc Excel bằng cách ấn Alt+Q. Bây giờ ta có thể sử dụng hàm vừa tạo như những hàm mà Excel đã hỗ trợ. Ví dụ tôi cần tìm Điểm Toán của người có tên là "Sơn" và có giới tính là "Nữ".
Trước tiên tôi lập bảng điều kiện như hình 2, tại ô I6 tôi nhập công thức sau:
=FindTwoCondition($B$4:$F$13,I4,1,I5,3,4)

Trong đó:
 -  $B$4:$F$13: Vùng dữ liệu
 -  I4: Tên cần tìm
 -   1: Tìm tên Sơn đầu tiên
 -  I5: Giới tính cần tìm
 -    3: Số thứ tự của cột Giới tính trong vùng dữ liệu
 -    4: Số thứ tự của cột Điểm Toán trong vùng dữ liệu

Kết quả sẽ trả về là 7. Chú ý ở đây hàm không phân biệt chữ thường chữ hoa.

Tin học văn phòng
Read more…

Tạo hàm cắt tên, họ, họ đệm trong VBA

08:44 |
(Tin học văn phòng) - Tôi giới thiệu với các bạn cách viết các hàm Cắt tên, Cắt họ, Cắt họ đệm trong Excel bằng ngôn ngữ VBA.
+    Bước 1: Mở chương trình Microsoft Excel.
+    Bước 2: Vào Menu Tool\Macro\Visual Basic Editor. (Hoặc ấn tổ hợp phím Alt + F11). Xuất hiện cửa sổ Microsoft Visual Basic.
          

+    Bước 3: Vào Menu Insert\Module. Xuất hiện cửa sổ Code


+    Bước 4: Nhập đoạn Code phía dưới vào trong cửa sổ Code (Hình 2)
‘Bắt đầu đoạn Code
Function CatTen(str As String) As String
    Dim mlen As Long
    Dim i As Long
    mlen = Len(str)
    For i = mlen To 1 Step -1
        If Mid(str, i, 1) = " " Then
            Exit For
        End If
    Next
    If i <> 0 Then
        CatTen = Trim(Mid(str, i + 1, mlen - i))
    Else
        CatTen = Trim(str)
    End If
End Function

Function CatHo(str As String) As String
    Dim mlen As Long
    Dim i As Long
    mlen = Len(str)
    For i = 1 To mlen
        If Mid(str, i, 1) = " " Then
            Exit For
        End If
    Next
    If i <> 0 Then
        CatHo = Trim(Mid(str, 1, i - 1))
    Else
        CatHo = Trim(str)
    End If
End Function

 Function CatHoDem(str As String) As String
    Dim mlen As Long
    Dim i, j, k As Long
    mlen = Len(str)
    k = 0
    For i = mlen To 1 Step -1
        If Mid(str, i, 1) = " " Then
            Exit For
        End If
        k = k + 1
    Next
    For j = 1 To mlen
        If Mid(str, j, 1) = " " Then
            Exit For
        End If
        k = k + 1
    Next
    If i <> 0 Then
        CatHoDem = Trim(Mid(str, j, mlen - k))
    Else
        CatHoDem = Trim(str)
    End If
End Function ‘Kết thúc đoạn Code 
+    Bước 5: Quay trở lại màn hình làm việc chính của Excel bằng cách vào Menu File\Close And Return to Microsoft Excel (Hoặc ấn tổ hợp phím Alt + Q).
+    Bước 6: Sử dụng những hàm chúng ta đã tạo


-   Tại ô B1 ta có Họ và tên 1 người như ở Hình 3
-    Bây giờ ta chỉ muốn cắt tên của người đó, ta sẽ làm như sau:
-    Đưa vệt sáng đến ô B2, nhập vào hàm =Catten(B1) và ấn Enter kết quả ô B2 có giá trị là Thảo
-    Nếu chúng ta muốn cắt Họ thì dùng hàm Catho, muốn cắt Họ đệm thì dùng hàmCathodem

Lâm Quang Bình - khampha1234@gmail.com
Read more…