Công thức và hàm Excel 2007 Anh - Việt của Paul Mcfedries (phần II)
Trang 1PART II - HARNESSING THE
POWER OF FUNCTIONS
Phần II - Tận dụng sức mạnh của các hàm
Chapter 6 - UNDERSTANDING FUNCTIONS
Chương 6 - Tìm hiểu các hàm
The formulas that you can construct based on the information presented in Part I,
“Mastering Excel Ranges and Formulas,” can range from simple additions and subtractions to powerful iteration-based solutions to otherwise difficult problems
Những công thức mà bạn xây dựng dựa trên những thông tin được trình bày trong phần I,
"Nắm vững các Dãy và Công thức trong Excel", có thể bắt đầu từ những phép tính cộng và trừ đơn giản đến những lời giải dựa vào sự lặp đi lặp lại phức tạp cho những bài toán khó Formulas that combine Excel’s operators with basic operands such as numeric and string values are the bread and butter of any spreadsheet But to get to the real meat of a
spreadsheet model, you need to expand your formula repertoire to include Excel’s
worksheet functions Dozens of these functions exist, and they’re an essential part of
making your worksheet work easier and more powerfully Excel has various function
categories, including the following:
Những công thức kết hợp với các toán tử của Excel và các toán hạng cơ bản, chẳng hạn như các giá trị số và chuỗi văn bản, là những thành phần chính của bất kỳ bảng tính nào Nhưng
để đi vào trung tâm thực sự của một mô hình bảng tính, bạn cần mở rộng nguồn công thức của mình, cho nó bao gồm thêm các hàm bảng tính của Excel Có hàng chục hàm, và chúng
là một phần thiết yếu trong việc làm cho bảng tính của bạn làm việc dễ dàng và mạnh mẽ hơn Excel có các nhiều hàm khác nhau, bao gồm:
• Text (Chuỗi văn bản)
• Logical (Luận lý)
• Information (Thông tin)
• Lookup and reference (Dò tìm và tham chiếu)
• Date and time (Ngày tháng và thời gian)
• Math and trigonometry (Toán học và lượng giác)
• Statistical (Thống kê)
• Financial (Tài chính)
• Database and table (Dữ liệu và bảng)
This chapter gives you a short introduction to Excel’s built-in worksheet functions You’ll learn what the functions are, what they can do, and how to use them The next six chapters give you detailed descriptions of the functions in the categories listed earlier (The
Trang 2exceptions are the database and table category, which I cover in Chapter 13, “Analyzing Data with Tables,” and the financial category, which I cover in Part 4, “Building Financial Formulas.”)
Chương này giới thiệu ngắn gọn cho bạn về các hàm bảng tính có sẵn trong Excel Bạn sẽ học các hàm là gì, chúng có thể làm gì, và sử dụng chúng như thế nào Sáu chương tiếp theo mô tả chi tiết các hàm trong danh mục trên đây (ngoại trừ các hàm trong nhóm dữ liệu
và bảng, tôi sẽ đề cập đến trong chương 13, "Phân tích dữ liệu với các bảng"; và nhóm hàm tài chính, tôi sẽ nói đến ở phần IV, "Xây dựng những công thức tài chính"
IN THIS CHAPTER
Trong chương này:
6.1 The Structure of a Function - Cấu trúc của một Hàm
6.2 Typing a Function into a Formula - Nhập một Hàm vào trong một Công thức
6.3 Using the Insert Function Feature - Sử dụng tính năng Insert Function (chèn hàm)
6.4 Loading the Analysis ToolPak - Cài đặt Add-in Analysis ToolPak
You can download the workbook that contains this chapter’s examples here:
Bạn có thể tải về bảng tính với những ví dụ trong chương này tại đây:
www.mcfedries.com/Excel2007Formulas/
6.1 The Structure of a Function
Cấu trúc của một Hàm
Every function has the same basic form:
Mỗi hàm đều có chung một dạng cơ bản:
FUNCTION( argument1, argument2, )
The FUNCTION part is the name of the function, which always appears in uppercase letters (such as SUM or PMT) Note, however, that you don’t need to type in the function name using uppercase letters Whatever case you use, Excel automatically converts the name to all uppercase In fact, it’s good practice to enter function names using only lowercase
letters That way, if Excel doesn’t convert the function name to uppercase, you know that it doesn’t recognize the name, which means you probably misspelled it
FUNCTION là tên của hàm, nó luôn luôn xuất hiện ở dạng chữ hoa (ví dụ như SUM hoặc PMT) Tuy nhiên, bạn không cần phải nhập tên hàm với các chữ hoa, cho dù bạn gõ như thế nào, Excel cũng tự động chuyển đổi tên hàm thành các chữ hoa Và thật ra, cách tốt nhất là nên nhập tên hàm bằng các chữ thường, vì khi Excel không chuyển đổi tên hàm thành các chữ hoa, bạn biết ngay rằng nó không nhận biết được tên hàm, nghĩa là có thể bạn đã nhập sai tên hàm
The items that appear within the parentheses and separated by commas are the function arguments The arguments are the function’s inputs — the data it uses to perform its
calculations With respect to arguments, functions come in two flavors:
Các mục nằm trong cặp dấu ngoặc đơn và cách nhau bằng các dấu phẩy là những đối số
Trang 3(argument) của hàm Đối số là các "đầu vào" của hàm — là dữ liệu mà nó dùng để thực hiện các phép tính Nếu phân loại theo đối số, thì các hàm bao gồm hai loại như sau:
• No arguments — Many functions don’t require any arguments For
example, the NOW() function returns the current date and time, and
doesn’t require arguments
Không cần đối số — Có nhiều hàm không đòi hỏi bất kỳ đối số nào Ví
dụ, hàm NOW() trả về ngày tháng và thời gian hiện hành, không đòi hỏi
phải có đối số
• One or more arguments — Most functions accept at least 1 argument,
and some accept as many as 9 or 10 arguments These arguments fall
into two categories: required and optional The required arguments must
appear between the parentheses, or the formula will generate an error
You use the optional arguments only if your formula needs them
Một hay nhiều đối số — Hầu hết các hàm có tối thiểu một đối số, và một
số hàm khác có nhiều hơn, có thể lên đến 9 hoặc 10 đối số Những đối số
này được chia thành hai loại: bắt buộc và tùy chọn Những đối số bắt buộc phải xuất hiện ở trong cặp dấu ngoặc đơn, nếu không thì hàm sẽ tạo ra
một lỗi Bạn chỉ sử dụng các đối số tùy chọn khi nào công thức của bạn
Let’s look at an example The FV() function determines the future value of a regular
investment based on three required arguments and two optional ones:
Hãy xem một ví dụ Hàm FV() quyết định giá trị tương lai của một khoản đầu tư thường xuyên, dựa vào ba đối số bắt buộc và hai đối số tùy chọn:
FV(rate, nper, pmt [, pv] [, type])
This is called the function syntax Three conventions are at work here and throughout the rest of this book:
Đây gọi là cú pháp của hàm Có ba quy ước được thực thi ở đây và trong suốt phần còn lại của cuốn sách này:
• Italic type indicates a placeholder That is, when you use the function, you replace the placeholder with an actual value
Những chữ in nghiêng biểu thị một placeholder, nghĩa là khi bạn sử dụng
hàm, bạn thay thế cáiplaceholder bằng một giá trị thích hợp.
• Arguments surrounded by square brackets are optional
Những đối số nằm trong cặp dấu ngoặc vuông là những đối số tùy chọn
• All other arguments are required
Những đối số còn lại là bắt buộc phải có
CAUTION: Be careful how you use commas in functions that have optional arguments In
general, if you omit an optional argument, you must leave out the comma that precedes the argument For example, if you omit just the type argument from FV(), you write the
function like so:
Trang 4Bạn phải cẩn thận cách sử dụng dấu phẩy trong hàm cho những đối số tùy chọn Nói chung, nếu bạn bỏ qua một đối số tùy chọn, bạn phải bỏ đi dấu phẩy đứng trước đối số đó Ví dụ,
nếu bạn chỉ bỏ bớt đối số type của hàm FV(), bạn nhập công thức như sau
FV(rate, nper, pmt, pv)
However, if you omit just the pv argument, you need to include all the commas so that there is no ambiguity about which value refers to which argument:
Tuy nhiên, nếu bạn bỏ qua đối số pv, bạn cần phải bao gồm tất cả các dấu phẩy để tránh sự
lẫn lộn giá trị nào là của đối số nào:
FV(rate, nper, pmt, , type)
For each argument placeholder, you substitute an appropriate value For example, in the FV() function, you substitute rate with a decimal value between 0 and 1, nper with an
integer, and pmt with a dollar amount Arguments can take any of the following forms:
Đối với mỗi đối số placeholder, bạn thay thế chúng bằng một giá trị thích hợp Ví dụ, trong hàm FV(), bạn thay thế rate băng một giá trị thập phân giữa 0 và 1, thay thế nper bằng một số nguyên, và thay thế pmt bằng một số tiền Các đối số có thể có bất kỳ dạng nào
• Cell or range references
Các tham chiếu đến ô hoặc đến dãy
• Range names
Các tên dãy
• Arrays
Các mảng
• The result of another function
Kết quả của một công thức khác
The function operates by processing the inputs and then returning a result For example, the FV() function returns the total value of the investment at the end of the term Figure 6.1 shows a simple future-value calculator that uses this function (In case you’re wondering, I entered the Payment value in cell B4 as negative because Excel always treats any money you have to pay as a negative number.)
Hàm hoạt động bằng cách xử lý các "đầu vào" và trả về một kết quả Ví dụ, hàm FV() trả về tổng giá trị của khoản đầu tư ở cuối kỳ hạn Hình 6.1 minh họa một ví dụ đơn giản của hàm
này (có thể bạn ngạc nhiên khi thấy tôi nhập giá trị payment trong ô B4 là số âm, bởi vì
Excel luôn luôn coi bất kỳ số tiền nào bạn phải chi ra là một số âm)
Trang 5Figure 6.1 - Future Value Calculator.xlsx
6.2 Typing a Function into a Formula
Nhập một Hàm vào trong một Công thức
You always use a function as part of a cell formula So, even if you’re using the function by itself, you still need to precede it with an equals sign Whether you use a function on its own
or as part of a larger formula, here are a few rules and guidelines to follow:
Bạn luôn luôn dùng một hàm như là một thành phần của một ô công thức Do đó, ngay cả khi bạn chỉ sử dụng hàm, bạn vẫn phải đặt một dấu bằng ở trước nó Cho dù bạn dùng một hàm đơn thuần hay dùng một hàm như là một thành phần trong một công thức lớn hơn, bạn phải theo những quy luật và những hướng dẫn sau đây:
• You can enter the function name in either uppercase or lowercase letters
Excel always converts function names to uppercase
Bạn có thể nhập tên hàm bằng chữ hoa hay bằng chữ thường Excel luôn
luôn chuyển đổi tên hàm thành chữ hoa
• Always enclose function arguments in parentheses
Luôn luôn đặt các đối số của hàm trong dấu ngoặc đơn
• Always separate multiple arguments with commas (You might want to
add a space after each comma to make the function more readable Excel
ignores the extra spaces.)
Luôn luôn phân cách các đối số bằng dấu phẩy (bạn có thể thêm một
khoảng trắng sau mỗi dấu phẩy để làm cho hàm dễ đọc hơn, Excel sẽ bỏ
qua các khoảng trắng phụ này)
• You can use a function as an argument for another function This is called
nesting functions For example, the function AVERAGE(SUM(A1:A10),
SUM(B1:B15)) sums two columns of numbers and returns the average of
the two sums
Bạn có thể dùng một hàm như là một đối số của một hàm khác Đây gọi là những hàm lồng nhau Ví dụ, hàm AVERAGE(SUM(A1:A10),
Trang 6SUM(B1:B15)) tính tổng của hai cột số lại và trả về trung bình cộng của
hai tổng đó
In Chapter 1, I introduced you to a new Excel 2007 feature called Name AutoComplete that shows you a list of named ranges that begin with the characters you’ve typed into a cell That feature also applies to functions As you can see in Figure 6.2, when you begin typing a name in Excel 2007, the program displays a list of the functions that start with the letters you’ve typed and also displays a description of the currently selected function Select the function you want to use, and then press Tab to include it in the formula
Ở chương 1, tôi đã giới thiệu một tính năng mới của Excel 2007 là Name AutoComplete,
nó sẽ hiển thị một danh sách các dãy có tên bắt đầu bằng những ký tự mà bạn nhập vào trong ô ngay khi bạn đang nhập Tính năng đó cũng áp dụng cho các hàm Như bạn thấy ở hình 6.2, khi bạn bắt đầu gõ một tên trong Excel, chương trình sẽ hiển thị một danh sách các hàm bắt đầu với ký tự mà bạn vừa gõ vào, đồng thời cũng hiển thị một mô tả khái quát
về nội dung của hàm mà bạn đang chọn trong danh sách này; và rồi bạn chỉ việc chọn hàm bạn muốn dùng, nhấn phím Tab để chèn nó vào trong công thức
➔ For the details on AutoComplete for named ranges, see“Working with Name
AutoComplete”
Để xem chi tiết về tính năng AutoComplete cho tên dãy, bạn xem lại bài "Sử dụng
AutoComplete để chèn tên dãy"
Figure 6.2
Trang 7After you select the function from the AutoComplete list (or when you type a function name followed by the left parenthesis), Excel then displays a pop-up banner that shows the
function syntax The current argument is displayed in bold type In the example shown in Figure 6.3, the nper argument is shown in bold, so the next value (or cell reference, or whatever) entered will apply to that argument When you type a comma, Excel bolds the next argument in the list
Sau khi bạn đã chọn hàm từ danh sách AutoComplete (hoặc khi bạn nhập xong tên hàm và bắt đầu mở dấu ngoặc đơn để nhập đối số), Excel sẽ hiển thị một cái "banner" nổi hướng dẫn cho bạn cú pháp của hàm Đối số hiện hành sẽ được tô đậm lên Trong ví dụ ở hình 6.3,
đối số nper được thể hiện bằng chữ đậm, muốn chỉ ra rằng giá trị tiếp theo (hoặc tham
chiếu ô, hoặc bất cứ thứ gì) được nhập vào sẽ sử dụng đối số này Khi bạn gõ một dấu phẩy, Excel sẽ tô đậm đối số tiếp theo (nếu còn)
Figure 6.3
6.3 Using the Insert Function Feature
Sử dụng tính năng Insert Function
Although you’ll usually type your functions by hand, sometimes you might prefer to get a helping hand from Excel:
Mặc dù bạn thường nhập hàm bằng tay, nhưng đôi khi bạn sẽ thích nhận được sự trợ giúp của Excel hơn:
• You’re not sure which function to use
Bạn không biết chắc phải sử dụng hàm nào
• You want to see the syntax of a function before using it
Bạn muốn biết cú pháp của hàm trước khi sử dụng nó
Trang 8• You want to examine similar functions in a particular category before
choosing the function that best suits your needs
Bạn muốn kiểm tra các hàm tương tự trong một hạng mục cụ thể trước
khi chọn được hàm thích hợp nhất cho nhu cầu của mình
• You want to see the effect that different argument values have on the
Đối với những tình huống này, Excel cung cấp cho bạn hai công cụ: Insert
Function và Function Wizard.
You use the Insert Function feature to choose the function you want from a dialog box Here’s how it works:
Bạn sử dụng tính năng Insert Function để chọn ra hàm bạn muốn từ một hộp thoại Sau
đây là cách nó làm việc:
1 Select the cell in which you want to use the function
Chọn ô mà bạn muốn sử dụng hàm
2 Enter the formula up to the point where you want to insert the function
Nhập công thức, cho tới chỗ mà bạn muốn chèn hàm vào
3 You now have two choices:
Đến đây, bạn có hai lựa chọn:
o If the function you want is one you inserted recently, it might appear on the list of recent functions in the Name box Drop down the Name box list (see Figure 6.4); if you see the name
of the function you want, click it Skip to step 6
Nếu hàm mà bạn muốn là một trong những hàm bạn sử dụng trong thời gian gần đây, nó sẽ xuất hiện trong danh sách
những hàm gần đây nhất trong hộp Name Nhấn danh sách
xổ xuống của hộp Name (xem hình 6.4), nếu bạn thấy tên của hàm mà bạn muốn, nhấn vào nó Chuyển qua bước 6
Trang 9Figure 6.4
o To pick any function, choose Formulas, Insert Function (You can also click the Insert Function button in the formula bar — see Figure 6.5 — or press Shift+F3.) In this case, the Insert Function dialog box appears, as shown in Figure 6.6
Để chọn bất kỳ một hàm nào, chọn Formulas, Insert
Function (bạn cũng có thể nhấn nút Insert Function trên thanh công thức — xem hình 6.5 — hoặc nhấnShift+F3)
Trong trường hợp này, hộp thoại Insert Function xuất hiện, như minh họa ở hình 6.6
Trang 11(Tùy chọn) Trong danh sách Or Select a Category, chọn loại hàm mà bạn cần Nếu bạn không biết hàm bạn cần thuộc loại hàm nào, nhấn chọn All.
3 In the Select a Function list, click the function you want to use (Note that after you click inside the Select a Function list, pressing a letter moves the selection down to the first function that begins with that letter.)
Trong danh sách Select a Function, chọn hàm mà bạn muốn dùng (Lưu ý: sau khi bạn nhấn vào bên trong danh sách Select a Function, nếu bạn
nhấn một chữ cái trên bàn phím, thanh chọn sẽ di chuyển tới hàm đầu tiên có tên bắt đầu bằng chữ cái mà bạn vừa nhấn)
4 Click OK Excel displays the Function Arguments dialog box
Nhấn OK Excel sẽ hiển thị hộp thoại Function Arguments.
TIP: To skip the first six steps and go directly to the Function
Arguments dialog box, enter the name of the function in the cell, and then either select the Insert Function button or press Ctrl+A Alternatively, press the equals (=) sign and then click the function from the list of recent functions in the Name box
Để bỏ qua 6 bước đầu vừa nói ở trên và đi thẳng đến hộp
thoại Function Arguments, bạn nhập tên hàm trong ô, và hoặc là nhấn nút Insert Function hoặc là nhấn Ctrl+A; hay là, nhập một
dấu bằng (=) rồi nhấp vào hàm trong danh sách những hàm sử
dụng gần đây nhất trong hộp Name.
5 For each required argument and each optional argument you want to use, enter a value, expression, or cell reference in the appropriate text box Here are some notes to bear in mind when you’re working in this dialog box (see Figure 6.7):
Đối với mỗi đối số bắt buộc và tùy chọn mà bạn muốn sử dụng, nhập một giá trị, một biểu thức, hoặc tham chiếu ô thích hợp vào mỗi khung tương ứng Sau đây là một số lưu ý bạn cần nhớ khi làm việc với hộp thoại này (xem hình 6.7):
o The names of the required arguments are shown in bold type
Tên của các đối số bắt buộc được in đậm
o When you move the cursor to an argument text box, Excel
displays a description of the argument
Khi bạn di chuyển con trỏ tới một khung đối số nào, Excel sẽ
hiển thị mô tả về đối số đó (ở ngay bên dưới)
o After you fill in an argument text box, Excel shows the current value of the argument to the right of the box
Sau khi bạn nhập một đối số, Excel hiển thị giá trị hiện hành
của đối số đó ở ngay bên phải của mỗi khung đối số
o After you fill in the text boxes for all the required arguments,
Excel displays the current value of the function value
Sau khi bạn đã nhập đầy đủ các đối số bắt buộc, Excel hiển thị
Trang 12giá trị hiện tại (cho tới lúc này) của giá trị hàm (ở góc dưới bên trái).
Figure 6.7
6
7 When you’re finished, click OK Excel pastes the function and its
arguments into the cell
Khi bạn đã hoàn tất, nhấn OK Excel dán công thức và các đối số của nó
vào ô
6.4 Loading the Analysis ToolPak
Nạp Add-In Analysis ToolPak
Excel’s Analysis ToolPak is a large collection of powerful statistical tools Some of these tools use advanced statistical techniques and were designed with only a limited number of
technical users in mind However, many of them have general applications and can be
amazingly useful I go through these tools in several chapters later in the book
Analysis ToolPak là một tập hợp lớn các công cụ thống kê mạnh mẽ Một số công cụ này sử dụng những kỹ thuật thống kê cao cấp và được thiết kế dành riêng cho một số ít chuyên gia
kỹ thuật Tuy nhiên, có nhiều cái trong số này có những ứng dụng chung và hữu dụng một cách đáng kinh ngạc Những công cụ đó sẽ được đề cập trong các chương tiếp theo của cuốn sách này
In previous versions of Excel, the Analysis ToolPak also included dozens of powerful
functions In Excel 2007, however, all of these functions are now part of the Excel function
Trang 13library, so you can use them right away However, if you need to use the Analysis ToolPak features you need to load the add-in that makes them available to Excel The following procedure takes you through the steps:
Trong các phiên bản trước của Excel, Analysis ToolPak bao gồm trong nó hàng chục hàm rất mạnh Còn ở Excel 2007, đa số các hàm này trở thành một phần của thư viện hàm Excel, do
đó bạn có thể sử dụng chúng (mà không cần cài đặt Analyisis ToolPak) Tuy nhiên nếu bạn cần sử dụng các tính năng khác của Analysis ToolPak, bạn cần nạp add-in này để làm cho chúng có sẵn trong Excel Bạn theo các thủ tục sau đây:
1 Choose Office, Excel Options to open the Excel Options dialog box
Chọn Office, Excel Options để mở hộp thoại Excel Options
2 Click Add-Ins
Nhấn vào mục Add-Ins.
3 In the Manage list, click Excel Add-ins and then click Go Excel displays
the Add-Ins dialog box
Trong danh sách Manage, nhấn Excel Add-Ins rồi nhấn Go Excel hiển
thị hộp thoại Add-Ins.
4 Activate the Analysis ToolPak check box, as shown in Figure 6.8
Đánh dấu vào Analysis ToolPak, như minh họa ở hình 6.8
Figure 6.8 - Analyisis ToolPak
5 Choose OK
Nhấn OK.
6 If Excel tells you that the feature isn’t installed, click Yes to install it
Nếu Excel báo rằng tính năng này chưa được cài đặt, bạn nhấn Yes để cài
đặt nó (Nghĩa là khi cài đặt Excel vào trong máy, bạn không chọn cài theo chế độ mặc định hoặc chế độ đầy đủ (Full) Do đó sau khi nhấn Yes như
Trang 14tôi vừa nói, Excel sẽ yêu cầu bạn bỏ đĩa cài đặt Excel 2007 vào, và bạn cứ theo các hướng dẫn của nó).
Trang 15Chapter 7 - WORKING WITH TEXT FUNCTIONSChương 7 - Làm việc với các hàm xử lý chuỗi văn bản
In Excel, text is any collection of alphanumeric characters that isn’t a numeric value, a date
or time value, or a formula Words, names, and labels are all obviously text values, but so are cell values preceded by an apostrophe (‘) or formatted as Text Text values are also called strings, and I’ll use both terms interchangeably in this chapter
Trong Excel, văn bản là một tập hợp gồm những ký tự chữ và số nhưng không phải là một giá trị số, một giá trị ngày tháng và thời gian, hoặc là một công thức Các từ, các tên, các nhãn, đều là những giá trị text, và tất cả các giá trị trong một ô mà có dấu nháy đơn (') đứng ở trước cũng là những giá trị text Các giá trị văn bản (text value) còn được gọi là các chuỗi (string), và tôi sẽ dùng cả hai thuật ngữ đó thay thế cho nhau trong suốt chương này
In Chapter 3, “Building Basic Formulas,” you learned about building text formulas in Excel — not that there was much to learn Text formulas consist only of the concatenation operator (&) used to combine two or more strings into a larger string
Ở chương 3, "Thiết lập những công thức (cơ bản)", bạn đã học về các thiết lập những công thức xử lý văn bản trong Excel, nhưng chưa học được bao nhiêu, mới chỉ là các công thức dùng dấu "và" (&) để nối hai hoặc nhiều chuỗi nhỏ thành một chuỗi lớn hơn
Excel’s text functions enable you to take text formulas to a more useful level by giving you numerous ways to manipulate strings With these functions, you can convert numbers to strings, change lowercase letters to uppercase (and vice versa), compare two strings, and more
Các hàm xử lý văn bản trong Excel cho phép bạn đưa các công thức liên quan đến văn bản lên một cấp độ hữu dụng hơn, bằng việc cho bạn rất nhiều cách để xử lý các chuỗi Với những hàm này, bạn có thể chuyển đổi một con số thành một chuỗi, đổi những chữ thường thành những chữ hoa (và ngược lại), so sánh hai chuỗi, và nhiều điều hơn nữa
IN THIS CHAPTER
Trong chương này:
1 Excel’s Text Functions
Các hàm xử lý chuỗi văn bản trong Excel
2 Working with Characters and Codes
Làm việc với các ký tự và mã ký tự (code)
6 Removing Unwanted Characters from a String
Loại bỏ các ký tự không mong muốn ra khỏi một chuỗi văn bản
Trang 167 Extracting a Substring
Trích xuất một chuỗi con
8 Generating Account Numbers
Tạo các số tài khoản
9 Searching for Substrings
Tìm kiếm một chuỗi con
10 Substituting One Substring for Another
Thay thế một chuỗi con bằng một chuỗi khác
You can download the workbook that contains this chapter’s examples here:
Bạn có thể tải về bảng tính với những ví dụ trong chương này tại đây:
www.mcfedries.com/Excel2007Formulas/
Trong chương này, do hầu hết các hàm tôi đã trình bày chi tiết ở topic Các hàm xử lý văn bản và chuỗi , nên tôi sẽ không trình bày lại cú pháp và chú giải các đối số của hàm nữa (không theo như nguyên bản cuốn sách này) Trong các bài dịch tiếp theo đây, khi nói đến một hàm nào, tôi sẽ tạo liên kết (link) đến bài viết về hàm đó Nếu muốn tìm hiểu kỹ hơn về cú pháp và cách sử dụng các đối số (argument), các bạn theo những liên kết này để xem.
7.1 Excel’s Text Functions
Các hàm xử lý văn bản trong Excel
Table 7.1 summarizes Excel’s text functions, and the rest of this chapter gives you the details and example uses for most of them
Bảng 7.1 tóm tắt các hàm xử lý văn bản trong Excel, và phần còn lại của chương này sẽ trình bày chi tiết và những công dụng mẫu của hầu hết các hàm này
Table 7.1 - Excel’s Text Functions
Bảng 7.1 - Các hàm văn bản trong Excel
• CHAR (number) : Returns the character that corresponds to the ANSI
code given by number.
Trả về một ký tự tương ứng với mã ANSI đã được cho bởi number.
• CLEAN (text) : Removes all nonprintable characters from text.
Loại bỏ tất cả những ký tự không in ra được trong chuỗi text.
• CODE (text) : Returns the ANSI code for the first character in text.
Trả về mã ANSI của ký tự đầu tiên trong chuỗi text.
• CONCATENATE (text1 [, text2], ) : Joins the specified strings into a
single string
Nối nhiều chuỗi đã xác định thành một chuỗi đơn
• DOLLAR (number [, decimals]) : Converts number to a string that uses
the Currency format
Trang 17Chuyển đổi number thành một chuỗi sử dụng định dạng kiểu Currency
(tiền tệ)
• EXACT (text1, text2) : Compares two strings to see whether they are
identical
So sánh hai chuỗi để xem chúng có giống nhau hay không
• FIND (find_text, within_text [, start_num]) : Returns the character
position of the text find_textwithin the text within_text FIND() is case
sensitive
Trả về vị trí bắt đầu của chuỗi find_text trong chuỗi within_text FIND()
phân biệt chữ thường và chữ hoa
• FIXED (number [, decimals] [, no_commas]) : Converts number to a
string that uses the Number format
Chuyển đổi con số number thành một chuỗi, sử dụng loại định dạng
Number
• LEFT (text [, num_chars]) : Returns the leftmost num_chars characters
from text.
Trả về một hay nhiều ký tự đầu tiên bên trái của chuỗi text
• LEN (text) : Returns the length of text.
Trả về độ dài (số ký tự) của chuỗi text.
• LOWER (text) : Converts text to lowercase.
Chuyển đổi tất cả các ký tự trong chuỗi text thành chữ thường.
• MID (text, start_num, num_chars) : Returns num_chars characters
from text starting atstart_num.
Trả về num_chars ký tự của chuỗi text, bắt đầu tại vị trí start_num.
• PROPER (text) : Converts text to proper case (first letter of each word is
capitalized)
Đổi ký tự đầu tiên trong chuỗi text thành chữ in hoa, và đổi các ký tự còn
lại thành chữ in thường
• REPLACE (old_text, start_num, num_chars, new_text) : Replaces
the old_text string with thenew_text string.
Thay thế một phần của chuỗi old_text bằng chuỗi new_text, với số lượng
các ký tự được chỉ định
• REPT (text, times) : Repeats text time times.
Lặp lại chuỗi text với time lần.
• RIGHT (text [, num_chars]) : Returns the
rightmost num_chars characters from text.
Trả về một hay nhiều ký tự tính từ bên phải của một chuỗi text.
• SEARCH (find_text, within_text [, start_num]) : Returns the character
position of the textfind_text within the text within_text SEARCH() is not
case sensitive
Trang 18Tìm vị trí bắt đầu của chuỗi con find_text trong chuỗi within_text
SEARCH() không phân biệt chữ thường, chữ hoa
• SUBSTITUTE (text, old_text, new_text [, instance_num]) : In text,
substitutes the new_textstring for the old_text string instance_num times.
Thay thế chuỗi old_text trong chuỗi text bằng
chuỗi new_text, instance_num lần.
• T (value) : Converts value to text.
Chuyển đổi value thành một chuỗi.
• TEXT (value, format_text) : Formats value and converts it to text.
Định dạng value và chuyển đổi nó thành chuỗi.
• TRIM (text) : Removes excess spaces from text
Xóa tất cả những khoảng trắng vô ích trong chuỗi text.
• UPPER (text) : Converts text to uppercase.
Chuyển đổi tất cả các ký tự trong chuỗi text thành chữ in hoa.
• VALUE (text) : Converts text to a number.
Chuyển đổi chuỗi text thành một số.
7.2 Working with Characters and Codes
Làm việc với các ký tự và mã ký tự
Every character that you can display on your screen has its own underlying numeric code For example, the code for the uppercase letter A is 65, whereas the code for the ampersand (&) is 38 These codes apply not only to the alphanumeric characters accessible via your keyboard, but also to extra characters that you can display by entering the appropriate code The collection of these characters is called the ANSI character set, and the numbers assigned to each character are called the ANSI codes
Mỗi ký tự mà bạn có thể hiển thị lên màn hình của bạn đều mang một mã số (numeric code) riêng của nó Ví dụ, mã số của chữ A (hoa) là 65, mã số cho dấu và (&) là 38 Những mã số
áp dụng không chỉ cho những ký tự có thể nhập từ bàn phím, mà còn cho cả những ký tự
mở rộng mà bạn có thể hiển thị bằng cách nhập những mã thích hợp Tập hợp những ký tự này được gọi là tập hợp ký tự ANSI, và những con số được gán cho mỗi ký tự được gọi là mã ANSI
For example, the ANSI code for the copyright character (©) is 169 To display this character, press Alt+0169, where you use your keyboard’s numeric keypad to enter the digits (always including the leading zero for codes higher than 127)
Ví dụ, mã ANSI của ký tự bản quyền © là 169 Để hiển thị ký tự này, bạn nhấn Alt+0169, với những phím mà bạn thường dùng để nhập những con số ở nhóm phím số (luôn luôn thêm số 0 ở trước cho những mã lớn hơn 127)
The ANSI codes run from 1 to 255, although the first 31 codes are nonprinting codes that define characters such as carriage returns and line feeds
Bảng mã ANSI chạy từ 1 đến 255, tuy nhiên 31 mã đầu tiên là những mã ký tự không in ra được như những mã ký tự trở lui lại đầu dòng (carriage return), những mã ký tự xuống hàng (line feed)
Trang 197.2.1 The CHAR Function — Hàm CHAR
Excel enables you to determine the character represented by an ANSI code using the
CHAR() function:
Excel cho phép bạn chuyển đổi một mã số ANSI thành một ký tự tương ứng, bằng cách sử dụng hàm CHAR():
CHAR (number)
For example, the following formula displays the copyright symbol (ANSI code 169):
Ví dụ, công thức sau đây hiển thị ký hiệu bản quyền (có mã ANSI là 169):
=CHAR(169)
Generating the ANSI Character Set
Tạo tập hợp ký tự ANSI
Figure 7.1 shows a worksheet that displays the entire ANSI character set (excluding the first
31 nonprinting characters — note, too, that ANSI code 32 represents the space character)
In each case, the character is displayed by applying the CHAR() function to the value in the cell to the left
Hình 7.1 minh họa một bảng tính hiển thị tập hợp các ký tự ANSI (ngoại trừ 31 ký tự không
in ra được — lưu ý thêm: mã ANSI 32 đại diện cho một ký tự trống, một khoảng trắng) Trong mỗi trường hợp, ký tự được hiển thị bằng cách áp dụng hàm CHAR() cho giá trị của ô bên trái
Trang 20Figure 7.1 - Text Functions.xlsx
NOTE: The actual character displayed by an ANSI code depends on the font applied to the cell The
characters shown in Figure 7.1 are the ones you see with normal text fonts, such as Arial However, if you apply a font such as Symbol or Wingdings to the worksheet, you’ll see a different set of characters
Ký tự thực tế hiển thị bởi một mã ANSI phụ thuộc vào loại font được áp dụng cho ô Những ký tự minh họa ở hình 7.1 mà bạn thấy là một trong những loại font bình thường, như Arial chẳng hạn Tuy nhiên, nếu bạn áp dụng một font như Symbol hoặc Wingdings, bạn sẽ thấy một tập hợp những ký tự khác
To build the character set shown in Figure 7.1, I entered the ANSI code and CHAR() function
at the top of each column, and then filled down to generate the rest of the column
Để làm được bảng tập hợp các ký tự như minh họa ở hình 7.1, tôi nhập mã ANSI và hàm
Trang 21CHAR() và đầu của mỗi cột, và rồi kéo xuống (fill down) để tạo ra phần còn lại của cột
A less tedious method takes advantage of the ROW() function, which returns the row
number of the current cell Assuming that you want to start your table in row 2, you can generate any ANSI character by using the following formula:
Một phương pháp ít tốn thời gian hơn là tận dụng hàm ROW(), là hàm trả về số thứ tự hàng của ô hiện hành Giả sử bạn muốn bắt đầu bảng này ở hàng 2, bạn có thể tạo bất kỳ ký tự ANSI nào bằng công thức sau đây:
Generating a Series of Letters
Tạo một chuỗi ký tự liên tục
Excel’s Fill handle and Home, Fill, Series command are great for generating a series of numbers or dates, but they don’t do the job when you need a series of letters (such as a, b,
Trang 22c, and so on) However, you can use the CHAR() function in an array formula to generate such a series.
Công cụ Fill handle của Excel và lệnh Home/Fill/Series là công cụ tuyệt vời cho việc tạo ra
một chuỗi liên tục các con số hoặc ngày tháng, nhưng nó không thể làm công việc tạo ra một chuỗi liên tục các ký tự (như a, b, c, v.v ) Tuy nhiên, bạn có thể dùng hàm CHAR() trong một công thức mảng để tạo ra một chuỗi như vậy
We’re concerned with the characters a through z (which correspond to ANSI codes 97 to 122), and A through Z (codes 65 to 90) To generate a series of these letters, follow these steps:
Chúng ta quan tâm đến những ký tự từ a đến z (tương ứng với các mã ANSI từ 97 đến 122),
và từ A đến Z (mã 65 đến 90) Để tạo một chuỗi liên tục các ký tự, làm theo các bước sau:
1 Select the range you want to use for the series
Chọn dãy mà bạn muốn tạo chuỗi này
2 Activate in-cell editing by pressing F2
Kích hoạt chức năng sửa trực tiếp trong ô bằng cách nhấn phím F2
3 Type the following formula:
Nhập công thức sau:
=CHAR(97 + ROW(range) - ROW(first_cell))
In this formula, range is the range you selected in step 1, and first_cell is
a reference to the first cell in range For example, if the selected range is
B10:B20, you would type this:
Trong công thức này, range là dãy mà bạn đã chọn ở bước 1,
và first_cell là một tham chiếu đến ô đầu tiên trong range Ví dụ, nếu dãy
được chọn là B10:B20, bạn sẽ nhập như vầy:
=CHAR(97 + ROW(B10:B20) - ROW(B10))
NOTE: I’m assuming that you’ve selected a column for your series If
you’ve selected a row, replace the ROW() functions in the formula with COLUMN()
Tôi đang giả sử rằng bạn chọn một cột cho chuỗi này Nếu bạn chọn một hàng, thì thay thế hàmROW() trong công thức bằng hàm COLUMN()
4 Press Ctrl+Shift+Enter to enter the formula as an array
Nhấn Ctrl+Shift+Enter để nhập công thức dưới dạng một mảng.
Because you entered this as an array formula, the ROW(range) - ROW(first_cell) calculation generates a series of numbers (0, 1, 2, and so on) that represent the offset of each cell in the range from the first cell These offsets are added to 97 to produce the appropriate ANSI codes for the lowercase letters, as shown in Figure 7.3 If you want uppercase letters,
replace the 97 with 65 (in Figure 7.3, see the series in row 12)
Bởi vì bạn nhập công thức này ở dạng công thức mảng, cho nên phép tính ROW(range) - ROW(first_cell) sẽ tạo một chuỗi số (0, 1, 2, v.v ) tượng trưng cho khoảng dịch chuyển của mỗi ô so với ô đầu tiên trong dãy Những khoảng dịch chuyển này cộng thêm 97 để tạo ra các mã ANSI thích hợp cho các ký tự viết ở dạng chữ thường, như minh họa ở hình 7.3 Nếu bạn muốn các chữ hoa, thay thế con số 97 bằng con số 65 (trong hình 7.3, xem chuỗi ở hàng 12)
Trang 23Figure 7.3 - Text Functions.xlsx
7.2.2 The CODE Function — Hàm CODE
The CODE() function is the opposite of CHAR() That is, given a text character, CODE() returns its ANSI code value:
Hàm CODE() trái ngược với hàm CHAR() Nghĩa là, cho trước một ký tự, CODE() trả về giá trị mã ANSI của ký tự đó
Generating a Series of Letters Starting from Any Letter
Tạo một chuỗi các ký tự liên tục bắt đầu bằng bất kỳ ký tự nào
Earlier in this section, you learned how to combine CHAR() and ROW() in an array formula
to generate a series of letters beginning with the letters a or A What if you prefer a
different starting letter? You can do that by changing the initial value that plugged into the CHAR() function before the offsets are calculated I used 97 in the previous example to begin the series with the letter a, but you could use 98 to start with b, 99 to start with c,
Trang 24and so on.
Trong phần trước, bạn đã học cách kết hợp giữa hàm CHAR() và hàm ROW() trong một công thức mảng để tạo một chuỗi lien tục các ký tự bắt đầu bằng ký tự a hoặc ký tự A Nếu bạn muốn bắt đầu bằng một ký tự khác thì sao? Bạn có thể làm bằng cách thay đổi giá trị ban đầu đã được đưa vào hàm CHAR() trước khi nó tính toán các khoảng dịch chuyển Trong ví
dụ trước tôi đã dùng 97 để bắt đầu chuỗi liên tục với ký tự a, nhưng bạn có thể dùng 98 để bắt đầu với b, hoặc 99 để bắt đầu với c, v.v
Instead of looking up the ANSI code of the character you prefer, however, use the CODE() function to have Excel do it for you:
Thay vì phải tìm mã ANSI cho ký tự mà bạn thích dùng để bắt đầu cho chuỗi liên tục các ký
tự, bạn sử dụng hàm CODE() để Excel làm điều đó dùm cho:
=CHAR(CODE("letter") + ROW(range) - ROW(first_cell))
Here, replace letter with the letter you want to start the series with For example, the
following formula begins the series with uppercase N (remember to enter this as an array formula in the specified range):
Ở đây, bạn thay thế letter bằng ký tự mà bạn muốn dùng để bắt đầu cho chuỗi liên tục Ví
dụ, công thức sau đây bắt đầu chuỗi liên tục với ký tự N (bạn nhớ nhập công thức này với dạng một công thức mảng trong một dãy đã xác định trước):
=CHAR(CODE("N") + ROW(A1:A13) - ROW(A1))
7.3 Converting Text
Chuyển đổi kiểu chữ trong văn bản
Excel’s forte is number crunching, so it often seems to give short shrift to strings,
particularly when it comes to displaying strings in the worksheet For example,
concatenating a numeric value into a string results in the number being displayed without any formatting, even if the original cell had a numeric format applied to it Similarly, strings imported from a database or text file can have the wrong case or no formatting
Sở trường của Excel là xử lý số, do đó dường như các chuỗi thường bị Excel đối xử không công bằng, đặc biệt là khi nó hoàn thiện các chuỗi trong bảng tính Ví dụ, việc ghép các giá trị số vào trong một chuỗi làm cho nó chỉ hiển thị mà không có bất kỳ định dạng nào, ngay
cả khi ô gốc đã được áp dụng một kiểu định dạng số Tương tự, các chuỗi nhập vào từ một
cơ sở dữ liệu hoặc từ một tập tin văn bản có thể có kiểu chữ sai hoặc không có định dạng However, as you’ll see over the next few sections, Excel offers a number of worksheet
functions that enable you to convert strings to a more suitable text format, or to convert between text and numeric values
Tuy nhiên, như bạn sẽ thấy trong các phần tiếp theo đây, Excel cũng có cung cấp một số hàm cho phép bạn chuyển đổi các chuỗi thành một định dạng văn bản thích hợp hơn, hoặc chuyển đổi giữa các giá trị text và các giá trị số
7.3.1 The LOWER Function — Hàm LOWER
The LOWER() function converts a specified string to all-lowercase letters:
Hàm LOWER() chuyển đổi một chuỗi xác định thành một chuỗi gồm toàn chữ thường
LOWER (text)
Trang 25For example, the following formula converts the text in cell B10 to lowercase:
Ví dụ, công thức sau đây chuyển đổi những chữ trong ô B10 trở thành chữ thường:
=LOWER(B10)
The LOWER() function is often used to convert imported data, particularly data
importedfrom a mainframe computer, which often arrives in all-uppercase characters
Hàm LOWER() thường được sử dụng để chuyển đổi dữ liệu nhâp từ ngoài vào, đặc biệt là dữ liệu được nhập từ một máy tính "mainframe", thường chứa toàn những chữ viết hoa
7.3.2 The UPPER Function — Hàm UPPER
The UPPER() function converts a specified string to all-uppercase letters:
Hàm UPPER() chuyển đổi một chuỗi xác định thành một chuỗi gồm toàn chữ hoa
=UPPER(A5) & " " & UPPER(B5)
7.3.3 The PROPER Function — Hàm PROPER
The PROPER() function converts a specified string to proper case, which means the first letter of each word appears in uppercase and the rest of the letters appear in lowercase:Hàm PROPER() chuyển đổi một chuỗi xác định thành dạng viết hoa chữ đầu (proper case), nghĩa là ký tự đầu tiên của mỗi chữ sẽ được viết hoa và phần còn lại của chữ thì viết
thường
PROPER (text)
For example, the following formula, entered as an array, converts the text in the range A1:A10 to proper case:
Ví dụ, công thức sau đây, nhập ở dạng công thức mảng, chuyển đổi các chữ trong dãy
A1:A10 thành dạngproper case:
=PROPER(A1:A10)
7.4 Formatting Text
Định dạng văn bản
You learned in Chapter 3 that you can enhance the results of your formulas by using built-in
or custom numeric formats to control things such as commas, decimal places, currency symbols, and more That’s fine for cell results, but what if you want to incorporate a result within a string? For example, consider the following text formula:
Bạn đã học ở Chương 3 rằng bạn có thể cải tiến kết quả của các công thức bằng cách dùng
Trang 26các định dạng số có sẵn hoặc tùy biến để kiểm soát những thứ như dấu phẩy, dấu thập phân, đơn vị tiền tệ, v.v Với những kết quả bình thường trong những ô thì điều đó thực hiện được, nhưng với các kết quả ở bên trong một chuỗi thì sao? Ví dụ, bạn xem công thức sau đây:
➔ For the details on numeric formats, see "Numeric Display Formats"
Xem bài " Các định dạng hiển thị số " để biết thêm chi tiết về những định dạng số.
="The expense total for this quarter in 2007 is " & F11
No matter how you’ve formatted the result in F11, the number appears in the string using Excel’s General number format For example, if cell F11 contains $74,400, the previous formula will appear in the cell as follows:
Cho dù bạn đã định dạng cho kết quả trong F11 như thế nào, thì con số xuất hiện trong chuỗi vẫn sử dụng loại định dạng General của Excel Ví dụ, giả sử F11 là $74,000, thì công thức ở trên trả về trong ô như sau:
The expense total for this quarter in 2007 is 74400
You need some way to format the number within the string The next three sections show you some Excel functions that let you do just that
Bạn thấy rằng mình cần phải có cách nào đó để định dạng cho con số ở trong chuỗi Ba phần tiếp theo đây sẽ chỉ cho bạn một số hàm Excel để thực hiện điều này
7.4.1 The DOLLAR Function — Hàm DOLLAR
The DOLLAR() function converts a numeric value into a string value that uses the Currency format:
Hàm DOLLAR() chuyển đổi một giá trị số thành một giá trị chuỗi, với kiểu định dạng
Currency (tiền tệ)
DOLLAR (number [,decimals])
To fix the string example from the previous section, you need to apply the DOLLAR() function to cell F11:
Để sửa lại chuỗi trong ví dụ ở trên, bạn áp dụng hàm DOLLAR() cho ô F11:
="The expense total for this quarter in 2007 is " & DOLLAR(F11, 0)
In this case, the number is formatted with no decimal places Figure 7.4 shows a variation
of this formula in action in cell B16 (The original formula is shown in cell B15.)
Trong trường hợp này, con số được định dạng không có phần thập phân Hình 7.4 minh họa một biến thể của công thức này ở ô B16 (công thức gốc ở ô B15)
Trang 27Figure 7.4 - Expenses.xlsx
7.4.2 The FIXED Function — Hàm FIXED
For other kinds of numbers, you can control the number of decimals and whether commas are inserted as the thousands separator by using the FIXED() function:
Đối với những loại số khác, bạn có thể cho nó có thêm số thập phân và các dấu phân cách hàng ngàn, bằng cách dùng hàm FIXED():
FIXED (number [,decimals] [,no_commas])
For example, the following formula uses the SUM() function to take a sum over a range and applies the FIXED() function to the result so that it is displayed as a string with commas and
no decimal places:
Ví dụ, công thức sau đây sử dụng hàm SUM() để tính tổng của một dãy và áp dụng hàm FIXED() vào kết quả để cho nó hiển thị dưới dạng một chuỗi với các dấu phân cách hàng ngàn, và không có các số thập phân:
="Total show attendance: " & FIXED(SUM(A1:A8), 0, FALSE) & " people."
7.4.3 The TEXT Function — Hàm TEXT
Trang 28DOLLAR() and FIXED() are useful functions in specific circumstances However, if you want total control over the way a number is formatted within a string, or if you want to include dates and times within strings, the powerful TEXT() function is what you need:
Hàm DOLLAR() và hàm FIXED() là những hàm hữu dụng trong những tình huống riêng biệt Tuy nhiên, nếu bạn muốn hoàn toàn làm chủ cách định dạng một con số trong một chuỗi, hoặc nếu bạn muốn đưa ngày tháng và thời gian vào trong chuỗi, thì hàm TEXT(), một hàm rất mạnh, là cái bạn cần:
TEXT (number, format)
The power of the TEXT() function lies in its format argument, which is a custom format that specifies exactly how you want the number to appear You learned about building custom numeric, date, and time formats back in Chapter 3
Sức mạnh của hàm TEXT() nằm trong đối số format của nó, là một loại định dạng tùy biến
xác định chính xác bạn muốn con số được hiển thị như thế nào Bạn đã học về cách tự tạo các loại định dạng số, ngày tháng và thời gian ở chương 3
➔ To learn about custom numeric formatting, see "Customizing Numeric Formats"
Xem bài " Tùy biến các định dạng số "
➔ To learn about custom date and time formatting, see "Customizing Date and Time
Formats"
Xem bài " Tùy biến các định dạng ngày tháng và thời gian "
For example, the following formula uses the AVERAGE() function to take an average over the range A1:A31, and then uses the TEXT() function to apply the custom format
#,##0.00°F to the result:
Ví dụ, công thức sau đây sử dụng hàm AVERAGE() để lấy trung bình của dãy A1:A31, và sử dụng hàm TEXT() để áp dụng kiểu định dạng #,##0.00°F cho kết quả:
="The average temperature was " & TEXT(AVERAGE(A1:A31), "#,##0.00°F")
Displaying When a Workbook Was Last Updated
Hiển thị thời gian cập nhật lần sau cùng của một bảng tính
Many people like to annotate their workbooks by setting Excel in manual calculation mode and entering a NOW() function into a cell (which returns the current date and time) The NOW() function doesn’t update unless you save or recalculate the sheet, so you always know when the sheet was last updated
Nhiều người thích chú thích (điều này) trong bảng tính của họ bằng cách sử dụng chế độ tính toán thủ công (manual calculation mode) của Excel, và nhập một hàm NOW() vào một
ô (hàm này trả về ngày tháng và thời gian hiện hành) Hàm NOW() sẽ không tự cập nhật cho đến khi bạn lưu bảng tính hoặc tính toán lại bảng tính, do đó bạn luôn luôn biết được lần cập nhật sau cùng của bảng tính là lúc nào
Instead of just entering NOW() by itself, you might find it better to preface the date with an
explanatory string, such as "This workbook last updated:" To do this, you can enter the
following formula:
Nhưng thay vì chỉ nhập mỗi hàm NOW(), bạn có thể thấy rằng đặt thêm một câu giải thích ở
trước cái ngày tháng sẽ đẹp hơn, như là "This workbook last updated:" Để làm thế, bạn
nhập công thức sau đây:
Trang 29="This workbook last updated: " & NOW()
Unfortunately, your output will look something like this:
Thật không may, kết của sẽ như thế này:
This workbook last updated: 38572.51001
The number 38572.51001 is Excel’s internal representation of a date and time (the number
to the left of the decimal is the date, and the number to the right of the decimal is the time) To get a properly formatted date and time, use the TEXT() function For example, to format the results of the NOW() function in the MM/DD/YY HH:MM format, use the following formula:
Con số 38572.51001 là đại diện cho một giá trị ngày tháng và thời gian trong Excel (phần bên phải dấu thập phân là con số chỉ ngày tháng, và phần ơ bên trái dấu thập phân là con
số chỉ thời gian) Để có được một kiểu định dạng đàng hoàng của ngày tháng và thời gian, bạn dùng hàm TEXT() Ví dụ, để định dạng cho kết quả của hàm NOW() theo dạng
MM/DD/YY HH:MM, bạn dùng công thức sau:
="This workbook last updated: " & TEXT(NOW(), "mm/dd/yy hh:mm")
The rest of this chapter takes you into the real heart of Excel’s text-manipulation tricks The functions you’ll learn about over the next few pages will all be useful, but you’ll see that, by combining two or more of these functions into a single formula, you can bring out the
amazing versatility of Excel’s text-manipulation prowess.
Phần còn lại của chương này đưa bạn vào trung tâm thật sự của những thủ thuật xử lý văn bản trong Excel Những hàm mà bạn sẽ học trong các trang tiếp theo sẽ rất hữu dụng, và bạn sẽ thấy rằng, bằng cách kết hợp hai hoặc nhiều hàm này trong một công thức lớn, bạn
có thể khai thác tối đa việc xử lý văn bản trong Excel.
7.5 Removing Unwanted Characters from a String
Loại bỏ những ký tự không cần thiết ra khỏi chuỗi
Characters imported from databases and text files often come with all kinds of string
baggage in the form of extra characters that you don’t need These could be extra spaces in the string, or line feeds, carriage returns, and other nonprintable characters embedded in the string To fix these problems, Excel offers a couple of functions: TRIM() and CLEAN().Những ký tự nhập vào từ những cơ sở dữ liệu và những tập tin văn bản thường bao gồm cả những ký tự dư thừa mà bạn không cần Đây có thể là những khoảng trống dư thừa trong chuỗi, hoặc những dấu ngắt dòng (line feed), dấu thụt đầu dòng (carriage return), và những
ký tự không in ra được Để giải quyết những vấn đề này, Excel cung cấp cho bạn hai hàm: TRIM() và CLEAN()
7.5.1 The TRIM() Function — Hàm TRIM
You use the TRIM() function to remove excess spaces within a string:
Bạn sử dụng hàm TRIM() để loại bỏ những khoảng trống dư thừa ra khỏi chuỗi:
TRIM (text)
Here, excess means all spaces before and after the string, as well as two or more
consecutive spaces within the string In the latter case, TRIM() removes all but one of the
Trang 30consecutive spaces.
Ở đây, "dư thừa" có nghĩa là rất cả những khoảng trống nằm ở trước và ở sau của chuỗi, hay là nhiều khoảng trống liên tiếp nhau trong chuỗi (lỗi này xảy ra thường là do nhấn phím Space liên tục) Trong trường hợp thứ hai, TRIM() loại bỏ tất cả và chỉ chừa lại một khoảng trống có ích (là khoảng trống nằm giữa hai chữ)
Figure 7.5 - Text Functions.xlsx
Figure 7.5 shows the TRIM() function at work Each string in the range A2:A7 contains a number of excess spaces before, within, or after the name The TRIM() functions appear in column C To help confirm the TRIM() function’s operation, I use the LEN() text function in columns B and D LEN() returns the number of characters in a specified string, using the following syntax:
Hình 7.5 minh họa cách hàm TRIM() làm việc Mỗi chuỗi trong dãy A2:A7 đều có chứa một
số khoảng trống dư thừa ở trước, ở trong và ở sau chuỗi Hàm TRIM() nằm ở cột C Để xác nhận hàm TRIM() có làm việc hay không, tôi dùng hàm LEN() trong cột B và cột D Hàm LEN() trả về số ký tự trong một chuỗi xác định, sử dụng cú pháp sau:
LEN (text)
7.5.2 The CLEAN() Function — Hàm CLEAN
You use the CLEAN() function to remove nonprintable characters from a string:
Bạn sử dụng hàm CLEAN() để loại bỏ những ký tự không in ra được ra khỏi chuỗi:
CLEAN (text)
Recall that the nonprintable characters are the codes 1 through 31 of the ANSI character set The CLEAN() function is most often used to remove line feeds (ANSI 10) or carriage returns (ANSI 13) from multiline data Figure 7.6 shows an example
Nhắc lại, những ký tự không in ra được có mã từ 1 đến 31 trong bộ mã ANSI Hàm CLEAN()
Trang 31thường dùng để loại bỏ những dấu ngắt dòng (line feed, mã ANSI là 10) hoặc dấu thụt đầu dòng (carriage return, ANSI 13) từ những dữ liệu có nhiều dòng.
Figure 7.6 - Text Functions.xlsx
7.5.3 The REPT Function: Repeating a Character
Hàm REPT - Lập lại một ký tự
The REPT() function repeats a string a specified number of times:
Hàm REPT() lập lại một chuỗi với một số lần đã xác định trước:
REPT (text, number)
="Advertising" & REPT(".", 20 - LEN("Advertising"))
This formula writes the string Advertising and then uses REPT() to repeat the dot character according to the following expression: 20 - LEN("Advertising") This expression ensures that
a total of 20 characters is written to the cell Because Advertising is 11 characters, the expression result is 9, which means that nine dots are added to the right of the string If the string was “Rent” instead (4 characters), 16 dots would be padded Figure 7.7 shows how
Trang 32this technique creates a dot follower effect Note that, for best results, the cells need to be formatted in a monotype font, such as Courier New.
Công thức này viết chuỗi Advertising và rồi dùng hàm REPT() để lập lại những ký tự dấu chấm (.), số lượng các dấu chấm tùy thuộc vào biểu thức: 20 - LEN("Advertising") Biểu thức này bảm đảm rằng có 20 ký tự trong ô Bởi vì chữ Advertising có 11 ký tự, nên kết quả của biểu thức là 9, có nghĩa là có 9 dấu chấm được thêm vào ở bên phải của chuỗi Nếu chuỗi là chữ "Rent" (4 ký tự), thì có 16 dấu chấm được đệm thêm vào Hình 7.7 minh họa
cách làm kỹ thuật tạo hiệu ứng dot followed (dấu chấm theo sau) như thế nào Lưu ý rằng,
để đạt được kết quả tốt nhất, các ô cần được định dạng với loại font monotype (loại font
này có bề ngang của mỗi ký tự luôn luôn bằng nhau), như Courier chẳng hạn
Figure 7.7 - Text Functions.xlsx
Building Text Charts
Lập các biểu đồ bằng những ký tự
A more common use for the REPT() function is to build text-based charts In this case, you use a numeric result in a cell as the REPT() function’s number argument, and the repeated character then charts the result
Một công dụng nữa của hàm REPT() là dùng để lập các biểu đồ bằng những ký tự Với
trường hợp này, bạn dùng một con số là kết quả trong một ô làm đối số number cho hàm
REPT(), và sau đó, và kết quả bạn có là một biểu đồ được vẽ bằng những ký tự lập đi lập lại
A simple example is a basic histogram, which shows the frequency of a sample over an interval Figure 7.8 shows a text histogram in which the intervals are listed in column A and the frequencies are listed in column B The REPT() function creates the histogram in column
C by repeating the vertical bar (|) according to each frequency, as in this example formula:Một ví dụ đơn giản là một biểu đồ tần số (histogram) cơ bản, là loại biểu đồ trình bày tần số
xuất hiện của mộtinterval (một khoảng, một đoạn ) nào đó Hình 7.8 minh họa một biểu
đồ tần số bằng những ký tự, trong đó các độ tuổi được liệt kê ở cột A, và tần số (ở đây là con số thống kê theo độ tuổi) liệt kê ở cột B Hàm REPT() tạo một biểu đồ tần số trong cột C
Trang 33bằng cách lập lại những ký tự sổ dọc (|) dựa theo mỗi tần số, như trong công thức mẫu sau đây:
=REPT("|", B4)
Figure 7.8 - Text Functions.xlsx
With a simple trick, you can turn the histogram into a text-based bar chart, as shown in Figure 7.9 The trick here is to format the chart cells with the Webdings font In this font, the letter g is represented by a block character, and repeating that character produces a solid bar (To get the repeat value, I multiplied the percentages in column B by 100 to get a whole number To keep the bars relatively short, I divided the result by 5.)
Với một thủ thuật đơn giản, bạn có thể biến cái biểu đồ tần số trên thành một biểu đồ dạng thanh (bar chart), cũng dựa vào những ký tự, như minh họa ở hình 7.9 Thủ thuật ở đây là
định dạng cho những ô chứa biểu đồ bằng font chữ Webdings (một loại font chứa toàn
những symbol) Với loại font này, chữ "g" được đại diện bằng một ký tự hình khối, và việc
lập lại những hình khối này sẽ làm cho thanh biểu đồ giống như là một thanh đặc (Để có số lần lập lại, tôi đã nhân con số phần trăm trong cột B cho 100 để lấy con số tròn, và để giữ cho các thanh biểu đồ này không quá dài, tôi đã chia kết quả đó cho 5)
Trang 34Figure 7.9 - Text Functions.xlsx
➔ Excel 2007 offers a new feature called data bars that enables you to easily add
histogram-like analysis to your worksheets without formulas See "Adding Data Bars"
Excel 2007 có đưa ra một tính năng mới gọi là thanh dữ liệu, cho phép bạn dễ dàng thêm một phân tích theo dạng biểu đồ vào trong bảng tính của bạn mà không cần dùng đến các công thức Xem bài " Thêm các Data Bar (thanh dữ liệu) ".
7.6 Extracting a Substring
Trích xuất một chuỗi con
String values often contain smaller strings, or substrings, that you need to work with In a column of full names, for example, you might want to deal with only the last names so that you can sort the data Similarly, you might want to extract the first few letters of a company name to include in an account number for that company Excel gives you three functions for extracting substrings, as described in the next three sections
Những giá trị chuỗi thường bao gồm nhiều chuỗi nhỏ, hay còn gọi là chuỗi con, mà bạn cần làm việc với chúng Ví dụ, trong một cột họ và tên đầy đủ (full name), bạn chỉ muốn làm việc với những cái Họ (last name) mà thôi, để sắp xếp (theo a, b, c) lại dữ liệu Tương tự, bạn muốn trích ra vài ký tự đầu tiên của một cái tên công ty, là những ký tự mã số của công
ty đó Excel cung cấp cho bạn ba hàm chuyên dùng để trích xuất ra những chuỗi con, như được trình bày trong ba phần tiếp theo đây
Trang 357.6.1 The LEFT Function — Hàm LEFT
The LEFT() function returns a specified number of characters starting from the left of a string:
Hàm LEFT() trả về một số ký tự đã được xác định tính từ bên trái của một chuỗi
LEFT (text [,num_chars])
For example, the following formula returns the substring Karen:
Ví dụ, công thức sau đây trả về chuỗi con Karen
=LEFT(“Karen Elizabeth Hammond”, 5)
7.6.2 The RIGHT Function — Hàm RIGHT
The RIGHT() function returns a specified number of characters starting from the right of a string:
Hàm RIGHT() trả về một số ký tự đã được xác định tính từ bên phải của một chuỗi
RIGHT (text [,num_chars])
For example, the following formula returns the substring Hammond:
Ví dụ, công thức sau đây trả về chuỗi con Hammond
=RIGHT(“Karen Elizabeth Hammond”, 7)
7.6.3 The MID Function — Hàm MID
The MID() function returns a specified number of characters starting from any point within a string:
Hàm MID() trả về một số ký tự đã được xác định tính từ bất kỳ chỗ nào trong một chuỗi
MID (text, start_num, num_chars)
For example, the following formula returns the substring Elizabeth:
Ví dụ, công thức sau đây trả về chuỗi con Elizabeth
=MID(“Karen Elizabeth Hammond”, 7, 9)
7.6.4 Converting Text to Sentence Case
Chuyển đổi chuỗi văn bản thành một câu hoàn chỉnh
Microsoft Word’s Change Case command has a sentence case option that converts a string
to all-lowercase letters, except for the first letter, which is converted to uppercase (just as the letters would appear in a normal sentence) You saw earlier that Excel has LOWER(), UPPER(), and PROPER() functions, but nothing that can produce sentence case directly
Trang 36However, it’s possible to construct a formula that does this using the LOWER() and UPPER() functions combined with the LEFT() and RIGHT() functions.
Lệnh Chance Case của Microsoft Word có một tùy chọn Sentence Case dùng để chuyển đổi
một chuỗi thành một câu toàn chữ thường, ngoại trừ ký tự đầu tiên được viết hoa (tương tự như một câu văn bình thường mà ta thường thấy) Trong các bài trước bạn đã tấy Excel có các hàm LOWER(), UPPER() và PROPER(), nhưng không có hàm nào có thể tạo ra một câu hoàn chỉnh cách trực tiếp Tuy nhiên, có thể tạo ra một công thức để làm điều này, bằng cách sử dụng các hàm LOWER() và UPPER() kết hợp với hàm LEFT() và hàm RIGHT() You begin by extracting the leftmost letter and converting it to uppercase (assume that the string is in cell A1):
Bạn bắt đầu bằng cách trích ra ký tự đầu tiên và đổi nó thành chữ hoa (giả sử chuỗi này đang nằm ở ô A1):
UPPER(LEFT(A1))
Then, you extract everything to the right of the first letter and convert it to lowercase:Sau đó, bạn trích mọi thứ còn lại ở bên phải của chữ đầu tiên và chuyển nó thành chữ thường:
LOWER(RIGHT(A1, LEN(A1) - 1))
Finally, you concatenate these two expressions into the complete formula:
Cuối cùng, bạn ghép hai biểu thức trên thành một công thức hoàn chỉnh:
=UPPER(LEFT(A1)) & LOWER(RIGHT(A1, LEN(A1) - 1))
Figure 7.10 shows a worksheet that puts this formula through its paces
Hình 7.10 minh họa một bảng tính dùng công thức này
Figure 7.10 - Text Functions.xlsx
Trang 377.6.5 A Date-Conversion Formula
Một công thức chuyển đổi thời gian
If you import mainframe or server data into your worksheets, or if you import online service data such as stock market quotes, you’ll often end up with date formats that Excel can’t handle One common example is the YYYYMMDD format (for example, 20070823)
Khi bạn nhập dữ liệu từ máy chủ của mạng vào trong bảng tính, hoặc nhập dữ liệu trực tuyến, chẳng hạn như các bảng niêm yết giá thị trường chứng khoán, bạn sẽ thường nhận được trong dữ liệu của mình những kiểu định dạng ngày tháng mà Excel không thể xử lý được Một ví dụ phổ biến là kiểu định dạng YYYYMMDD (ví dụ như 20070823)
To convert this value into a date that Excel can work with, you can use the LEFT(), MID(), and RIGHT() functions If the unrecognized date is in cell A1, LEFT(A1, 4) extracts the year, MID(A1,3,2) extracts the month, and RIGHT(A1,2) extracts the day Plugging these
functions into a DATE() function gives Excel a date it can handle:
Để chuyển đổi giá trị đó thành một ngày tháng mà Excel có thể làm việc với nó, bạn có thể dùng hàm LEFT(), MID() và RIGHT() Giả sử như giá trị ngày tháng đó đang nằm ở ô A1, LEFT(A1, 4) sẽ trích ra phần năm, MID(A1,3,2) trích ra phần tháng và RIGHT(A1,2) trích ra phần ngày Đưa cả 3 hàm này vào trong hàm DATE(), sẽ cho Excel một ngày tháng mà nó
có thể xử lý:
=DATE(LEFT(A1, 4), MID(A1, 5, 2), RIGHT(A1, 2))
7.7 Generating Account Numbers
Tạo các số tài khoản
Many companies generate supplier or customer account numbers by combining part of the account’s name with a numeric value Excel’s text functions make it easy to generate such account numbers automatically
Nhiều công ty tạo các số tài khoản (account number) của nhà cung cấp hoặc của khách hàng bằng cách kết hợp một phần tên của tài khoản với một giá trị số Các hàm xử lý văn bản của Excel sẽ giúp cho việc tạo tự động hàng loạt số tài khoản trở nên dễ dàng
To begin, let’s extract the first three letters of the company name and convert them to uppercase for easier reading (assume that the name is in cell A2):
Để bắt đầu, hãy trích ra 3 ký tự đầu tiên của tên mỗi công ty và chuyển đổi chúng thành chữ hoa để dễ đọc (giả sử cái tên này đang ở ô A2):
UPPER(LEFT(A2, 3))
Next, we’ll generate the numeric portion of the account number by grabbing the row
number: ROW(A2) However, it’s best to keep all account numbers a uniform length, so we’ll use the TEXT() function to pad the row number with zeroes:
Tiếp theo, chúng ta sẽ tạo phần số của tài khoản bằng cách lấy con số chỉ hàng (đang chứa tên): ROW(A2) Tuy nhiên, tốt nhất là giữ cho tất cả các số tài khoản có cùng một độ dài (có cùng số ký tự), vậy bạn sẽ sử dụng hàm TEXT() để đệm thêm các số không (0) vào con số chỉ hàng:
TEXT(ROW(A2),"0000")
Here’s the complete formula, and Figure 7.11 shows some examples:
Đây là công thức hoàn chỉnh, và hình 7.11 minh họa một số ví dụ:
Trang 38=UPPER(LEFT(A2, 3)) & TEXT(ROW(A2), "0000")
Figure 7.11 - Text Functions.xlsx
7.8 Searching for Substrings
Tìm kiếm một chuỗi con
You can take Excel’s text functions up a notch or two by searching for substrings within a given text For example, in a string that includes a person’s first and last name, you can find out where the space falls between the names and then use that fact to extract either the first name or the last name
Bạn có thể đưa các hàm xử lý văn bản của Excel lên một hoặc hai bậc bằng việc sử dụng chúng để tìm kiếm một chuỗi con trong một chuỗi cho trước Ví dụ, trong một chuỗi có bao gồm Họ và Tên của một người, bạn có thể tìm xem cái khoảng trắng giữa Họ và Tên nằm ở đâu, và rồi sử dụng việc đó để tách riêng ra Họ hoặc Tên
7.8.1 The FIND and SEARCH Functions — Hàm FIND và Hàm SEARCH
Searching for substrings is handled by the FIND() and SEARCH() functions:
Việc tìm kiếm chuỗi con (trong một chuỗi) được thực hiện bởi hàm FIND() và hàm
SEARCH():
FIND (find_text, within_text [, start_num])
SEARCH (find_text, within_text [, start_num])
Here are some notes to bear in mind when using these functions:
Sau đây là một số lưu ý khi sử dụng các hàm này:
Trang 39• These functions return the character position of the first instance (after
the start_num character position) of find_text in within_text
Những hàm này trả về vị trí xuất hiện ký tự đầu tiên (sau vị trí của ký
tự start_num) của find_texttrong within_text.
• Use SEARCH() for non-case-sensitive searches For example, SEARCH("e",
"Expenses") returns 1
Sử dụng hàm SEARCH() khi nội dung bạn tìm không cần phân biệt chữ
thường hay chữ hoa Ví dụ,SEARCH("e", "Expenses") trả về kết quả là 1
• Use FIND() for case-sensitive searches For example, FIND("e",
"Expenses") returns 4
Sử dụng hàm FIND() khi nội dung bạn tìm có phân biệt chữ thường hay
chữ hoa Ví dụ, FIND("e", "Expenses") trả về kết quả là 4
• These functions return the #VALUE! error if find_text is not in within_text
Những hàm này trả về lỗi #VALUE! nếu find_text không nằm
trong within_text
• In the find_text argument of SEARCH(), use a question mark (?) to match any single character
Trong đối số find_text của hàm SEARCH(), sử dụng dấu chấm hỏi (?) để
tìm bất kỳ ký tự đơn lẻ nào(mỗi dấu ? đại diện cho 1 ký tự).
• In the find_text argument of SEARCH(), use an asterisk (*) to match any number of characters
Trong đối số find_text của hàm SEARCH(), sử dụng dấu sao (*) để tìm bất
kỳ một số ký tự nào đó(dấu * đại diện cho nhiều ký tự).
• To include the characters ? or * in a SEARCH() operation, precede each
one in the find_text argument with a tilde (~)
Để tìm kiếm chính ký tự ? hoặc * trong hàm SEARCH(), đặt thêm một dấu
ngã (~) trước chúng trong đối số find_text.
7.8.2 Extracting a First Name or Last Name
Trích xuất Họ hoặc Tên
If you have a range of cells containing people’s first and last names, it can often be
advantageous to extract these names from each string For example, you might want to store the first and last names in separate ranges for later importing into a database table
Or, perhaps you need to construct a new range using a Last Name, First Name structure for sorting the names
Nếu bạn có một dãy ô đang chứa danh sách họ và tên của nhiều người, việc trích xuất ra các tên từ mỗi dãy này có thể rất có ích Ví dụ, bạn lưu trữ họ và tên trong hai dãy riên biệt
để sau đó sẽ nhập vào trong một bảng cơ sở dữ liệu; hoặc có thể bạn sẽ cần có một dãy mới sử dụng riêng Họ, Tên trong từng cột để tiện cho việc sắp xếp (sort)
The solution is to use the FIND() function to find the space that separates the first and last names, and then use either the LEFT() function to extract the first name or the RIGHT() function to extract the last name
Giải pháp cho việc này là sử dụng hàm FIND() để tìm cái khoảng trắng phân cách giữa họ
và tên, rồi dùng hàm LEFT() để trích ra phần Tên (first name) hoặc dùng hàm RIGHT() để trích ra phần Họ (last name)
Trang 40For the first name, you would use the following formula (assuming that the full name is in cell A2):
Đối với Tên (first name), bạn dùng công thức sau đây (giả sử rằng cái tên đầy đủ đang ở trong ô A2):
=LEFT(A2, FIND(" ", A2) - 1)
Notice how the formula subtracts 1 from the FIND(" ", A2) result, to avoid including the space in the extracted substring You can use this formula in more general circumstances to extract the first word of any multiword string
Để ý rằng công thức trên trừ bớt đi 1 từ kết quả của FIND(" ", A2), là để đưa thêm một khoảng trắng vào trong cái tên đã trích ra Bạn có thể dùng công thức này mỗi khi cần phải trích ra từ đầu tiên trong một chuỗi có nhiều từ
For the last name, you need to build a similar formula using the RIGHT() function:
Đối với phần Họ (last name), bạn tạo một công thức tương tự, sử dụng hàm RIGHT():
=RIGHT(A2, LEN(A2) - FIND(" ", A2))
To extract the correct number of letters, the formula takes the length of the original string and subtracts the position of the space You can use this formula in more general
circumstances to extract the second word in any two-word string Figure 7.12 shows a worksheet that puts both formulas to work
Để trích ra chính xác con số các chữ, công thức trên lấy chiều dài nguyên thủy của chuỗi trừ bớt đi vị trí của khoảng trắng Bạn có thể dùng công thức này mỗi khi cần phải trích ra từ thứ hai trong một chuỗi có nhiều từ Hình 7.12 minh họa một bảng tính sử dụng hai công thức vừa nói ở trên