Generate an XML Document Rogrammatically Using DOM: Part I

//Create a new xmlDataDocument

XmlDataDocument myDoc = new XmlDataDocument();

//The familie

XmlElement Familie = myDoc.CreateElement(“Familie”);

//The elements wrapper

XmlElement wrapper = myDoc.CreateElement(“xml”);

//Create attributes

XmlAttribute version = myDoc.CreateAttribute(“version”);

XmlAttribute encoding = myDoc.CreateAttribute(“encoding”);

//Add values to attributes

version.Value = “1.0”;

encoding.Value = “utf-8”;

//Append attributes to their correspondent element

wrapper.Attributes.Append(version);

wrapper.Attributes.Append(encoding);

//The Father

XmlElement Father = myDoc.CreateElement(“Father”);

//Create attributes

XmlAttribute FatherName = myDoc.CreateAttribute(“Name”);

XmlAttribute FatherAge = myDoc.CreateAttribute(“Age”);

//Add values to attributes

FatherName.Value = “My father”;

FatherAge.Value = “65”;

//Append attributes to their correspondent element

Father.Attributes.Append(FatherName);

Father.Attributes.Append(FatherAge);

//Add the element to the Familie node

Familie.AppendChild(Father);

//The mother

XmlElement Mother = myDoc.CreateElement(“Mother”);

//Create attributes

XmlAttribute MotherName = myDoc.CreateAttribute(“Name”);

XmlAttribute MotherAge = myDoc.CreateAttribute(“Age”);

//Add values to attributes

MotherName.Value = “My mother”;

MotherAge.Value = “60”;

//Append attributes to their correspondent element

Mother.Attributes.Append(MotherName);

Mother.Attributes.Append(MotherAge);

//Add the element to the Familie node

Familie.AppendChild(Mother);

//The sister

XmlElement Sister = myDoc.CreateElement(“Sister”);

//Create attributes

XmlAttribute SisterName = myDoc.CreateAttribute(“Name”);

XmlAttribute SisterAge = myDoc.CreateAttribute(“Age”);

//Add values to attributes

SisterName.Value = “My sister”;

SisterAge.Value = “20”;

//Append attributes to their correspondent element

Sister.Attributes.Append(SisterName);

Sister.Attributes.Append(SisterAge);

//Add the element to the Familie node

Familie.AppendChild(Sister);

//The brother

XmlElement Brother = myDoc.CreateElement(“Brother”);

//Create attributes

XmlAttribute BrotherName = myDoc.CreateAttribute(“Name”);

XmlAttribute BrotherAge = myDoc.CreateAttribute(“Age”);

//Add values to attributes

BrotherName.Value = “My brother”;

BrotherAge.Value = “21”;

//Append attributes to their correspondent element

Brother.Attributes.Append(BrotherName);

Brother.Attributes.Append(BrotherAge);

//Add the element to the Familie node

Familie.AppendChild(Brother);

//wrapp all elements nodes in wrapper node

wrapper.AppendChild(Familie);

//Add the entire node in to the docuement

myDoc.AppendChild(wrapper);

//Save the xml document

myDoc.Save(@”C:\myFamilie.xml”);

//Give a signal that all gonna be all right

Console.WriteLine(“Document is generated successfully!!”);
Console.Read();

Lớp trừu tượng (abstract class)

Lớp trừu tượng là một trong những khái niệm quan trọng trên nền tảng .NET. Thường, bạn muốn tạo ra các lớp mà chỉ làm lớp gốc (base class – lớp đầu tiên trong cây thừa kế hay còn gọi là lớp tổ tiên), và dĩ nhiên, bạn sẽ không muốn người khác tạo ra đối tượng cho các lớp này. Chúng ta có thể sử dụng khái niệm lớp trừu tượng để cài đặt chức năng này trong C# sử dụng từ khóa ‘abstract‘.
Một lớp trừu tượng có nghĩa là không khởi tạo được đối tượng của lớp này, nhưng cho phép thừa kế để tạo ra lớp con.
Khai báo lớp trừu tượng trong C#:

1
2
3
abstractclasstên_lớp_trừu_tượng
{
}

Ví dụ:

1
2
3
abstractclassWindow
{
}

Phương thức trừu tượng (abstract method)

Trong thiết kế hướng đối tượng, khi các bạn thiết kế ra một base class, và các bạn mong muốn rằng người khác khi thừa kế lớp này thì phải ghi đè (override) lên các phương thức xác định trước. Trong trường hợp người khác thừa kế lớp của các bạn mà không ghi đè lên những phương thức này thì trình biên dịch sẽ báo lỗi. Khái niệm phương thức trừu tượng sẽ giúp các bạn trong tình huống này.

Một lớp trừu tượng có thể chứa cả phương thức trừu tượng (phương thức không có phần thân) và phương thức bình thường (phương thức có phần thân hay phương thức thàdow
public class ListBox : Window
{
// Khởi dựng có tham số
public ListBox(int top, int left, string theContents)
: base(top, left) // gọi khởi dựng của lớp cơ sở
{
mListBoxContents = theContents;
}

public override void DrawWindow()
{
Console.WriteLine(“ListBox write: {0}”, mListBoxContents);
}
// biến thành viên private
private string mListBoxContents;
public override string Content
{
set { mListBoxContents = value; }
get { return mListBoxContents; }
}
}
[/code]
Trong ví dụ trên, các bạn thấy thuộc tính (property) Content được khai báo trong lớp Window, nhưng không có biến chứa dữ liệu cho nó không được khai báo trong lớp này. Do đó nó được cài đặt kiểu abstract.

Thuộc tính Content được override trong lớp con ListBox, và biến chứa dữ liệu cho nó là mListBoxContents.

Một số quy tắc áp dụng cho lớp trừu tượng

– Một lớp trừu tượng không thể là một sealed class. Khai báo như ví dụ dưới đây là sai:

1
2
3
4
// Khai báo sai
abstractsealedclassWindow
{
}

– Phương thức trừu tượng chỉ khai báo trong lớp trừu tượng.

– Một phương thức trừu tượng không sử dụng chỉ định từ truy xuất là private.

1
2
3
4
5
// Khai báo sai
abstractclassWindow
{
    privateabstractvoidDrawWindow();
}

Chỉ định từ truy xuất của phương thức trừu tượng phải giống nhau trong phần khai báo ở lớp cha lẫn lớp con. Nếu bạn đã khai báo chỉ định từ truy xuất protected cho phương thức trừu tượng ở lớp cha thì trong lớp con bạn cũng phải sử dụng chỉ định từ truy xuất protected. Nếu chỉ định từ truy xuất không giống nhau thì trình biên dịch sẽ báo lỗi.

– Một phương thức trừu tượng không sử dụng chỉ định từ truy xuất virtual. Bởi vì bản thân phương thức trừu tượng đã bao hàm khái niệm virtual.

1
2
3
4
5
// Khai báo sai
abstractclassWindow
{
    privateabstractvirtualvoidDrawWindow();
}

– Một phương thức trừu tượng không thể là phương thức static.

1
2
3
4
5
// Khai báo sai
abstractclassWindow
{
    privateabstractstaticvoidDrawWindow();
}

Lớp trừu tượng (abstract class) và giao diện (interface)

Trong lớp trừu tượng chứa cả phương thức trừu tượng lẫn phương thức thành viên. Nhưng trong interface thì chỉ chứa phương thức trừu tượng và lớp con khi thừa kế từ interface cần phải ghi đè (override) lên các phương thức này.

1
2
3
4
5
interfaceIFile
{
    voidSave();
    voidLoad();
}

Các phương thức trừu tượng khai báo trong interface không sử dụng chỉ định từ truy xuất, mặc định sẽ là public.

Một lớp chỉ có thể thừa kế từ một lớp cha, nhưng có thể thừa kế từ nhiều interface.

 

RESOURCE: INTERNET

Set up Gmail with Outlook, Apple Mail, or other mail clients

You can download messages from Gmail and see them using a program like Microsoft Outlook, Apple Mail, or Thunderbird, even when you aren’t online. This process is called POP or IMAP, and is free for all Gmail users.

Tip: We recommend using IMAP if possible because it’s the best way to make sure you can see all your mail at any time on all of your devices. If you’d like to use POP instead, learn how to enable POP.

Step 1: Enable IMAP

You can retrieve your Gmail messages with a client or device that supports IMAP, like Microsoft Outlook or Apple Mail.

  1. Sign in to Gmail.
  2. Click the gear in the top right .
  3. Select Settings.
  4. Click Forwarding and POP/IMAP.
  5. Select Enable IMAP.
  6. Click Save Changes.

Note: This setting is not available while using the basic HTML view of Gmail. To enable IMAP, use the standard view instead. Find out more about standard view and basic HTML view.

Step 2: Set up your client

Use the table below to update your client with the correct information.

Incoming Mail (IMAP) Server: imap.gmail.com
Requires SSL: Yes
Port: 993
Outgoing Mail (SMTP) Server: smtp.gmail.com
Use Authentication: Yes
Port for SSL:: 465 or 587
Use same settings as incoming mail server
Full Name or Display Name: [your name]
Account Name or User Name: your full email address (including @gmail.com or @your_domain.com)
Email Address: your full email address (including @gmail.com or @your_domain.com)
Password: your Gmail password

WEEKDAY

Áp dụng Cho: Excel 2016 , Excel 2013 , Excel 2010 , Excel 2007 , Excel 2016 cho Mac , Thêm…

Bài viết này mô tả cú pháp công thức và cách dùng hàm WEEKDAY trong Microsoft Excel.

Mô tả

Trả về thứ trong tuần tương ứng với một ngày. Theo mặc định, thứ được trả về là một số nguyên, từ 1 (chủ nhật) đến 7 (thứ bảy).

Cú pháp

WEEKDAY(serial_number,[return_type])

Cú pháp của hàm WEEKDAY có đối số sau đây:

  • Serial_number    Bắt buộc. Là một số tuần tự thể hiện ngày tháng của ngày bạn đang tìm kiếm. Ngày tháng nên được nhập bằng cách sử dụng hàm DATE hoặc nhập như là kết quả của những công thức hay hàm khác. Ví dụ, sử dụng DATE(2008,5,23) cho ngày 23 tháng năm năm 2008. Vấn đề có thể xảy ra nếu nhập ngày tháng dạng văn bản.
  • Return_type    Tùy chọn. Là một số xác định kiểu giá trị trả về.
Return_type Số được trả về
1 hoặc bỏ qua Là các số từ 1 (chủ nhật) đến 7 (thứ bảy). Hoạt động giống với các phiên bản Microsoft Excel trước đây.
2 Là các số từ 1 (thứ hai) đến 7 (chủ nhật).
3 Là các số từ 0 (thứ hai) đến 6 (chủ nhật).
11 Là các số từ 1 (thứ hai) đến 7 (chủ nhật).
12 Là các số từ 1 (thứ ba) đến 7 (thứ hai).
13 Là các số từ 1 (thứ tư) đến 7 (thứ ba).
14 Là các số từ 1 (thứ năm) đến 7 (thứ tư).
15 Là các số từ 1 (thứ sáu) đến 7 (thứ năm).
16 Là các số từ 1 (thứ bảy) đến 7 (thứ sáu).
17 Là các số từ 1 (chủ nhật) đến 7 (thứ bảy).

Chú thích

  • Excel lưu trữ ngày tháng ở dạng số sê-ri liên tiếp để sử dụng trong tính toán. Theo mặc định, ngày 1 tháng một năm 1900 là số sê-ri 1 và ngày 1 tháng một năm 2008 là số sê-ri 39448 bởi nó là 39.448 ngày sau ngày 1 tháng một năm 1900.
  • Nếu serial_number nằm ngoài phạm vi giá trị cơ bản của ngày hiện tại, hàm sẽ trả về giá trị lỗi #NUM! .
  • Nếu return_type nằm ngoài phạm vi đã xác định trong bảng trên đây, hàm sẽ trả về giá trị lỗi #NUM! .

Ví dụ

Sao chép dữ liệu ví dụ trong bảng sau đây và dán vào ô A1 của một bảng tính Excel mới. Để công thức hiển thị kết quả, hãy chọn chúng, nhấn F2 và sau đó nhấn Enter. Nếu cần, bạn có thể điều chỉnh độ rộng cột để xem tất cả dữ liệu.

Dữ liệu
14/02/2008
Công thức Mô tả (Kết quả) Kết quả
=WEEKDAY(A2) Ngày trong tuần, thể hiện bằng các số từ 1 (Chủ nhật) đến 7 (Thứ bảy) (5) 5
=WEEKDAY(A2, 2) Ngày trong tuần thể hiện bằng các số từ 1 (Thứ hai) đến 7 (Chủ nhật) (4) 4
=WEEKDAY(A2, 3) Ngày trong tuần thể hiện bằng các số từ 0 (Thứ hai) đến 6 (Chủ nhật) (3) 3

Nguồn: Internet

Weekday Function

1. The WEEKDAY function in Excel returns a number from 1 (Sunday) to 7 (Saturday) representing the day of the week of a date. Apparently, 12/16/2013 falls on a Monday.

Weekday Function in Excel

2. You can also use the TEXT function to display the day of the week.

Text Function

3. Create a custom date format (dddd) to display the day of the week.

Custom Date Format

Networkdays Function

1. The NETWORKDAYS function returns the number of weekdays (weekends excluded) between two dates.

Networkdays Function

2. If you supply a list of holidays, the NETWORKDAYS function returns the number of workdays (weekends and holidays excluded) between two dates.

Workdays

The calendar below helps you understand the NETWORKDAYS function.

Calendar

3. Dates are stored as numbers in Excel and count the number of days since January 0, 1900. Instead of supplying a list, supply an array constant of the numbers that represent these dates. To achieve this, select E1:E2 in the formula and press F9.

Array Constant

Workday Function

The WORKDAY function is (almost) the opposite of the NETWORKDAYS function. It returns the date before or after a specified number of weekdays (weekends excluded).

Workday Function

Note: the WORKDAY function returns the serial number of the date. Apply a Date format to display the date.

The calendar below helps you understand the WORKDAY function.

Calendar

Trích nguồn: Internet

Chuyển tiếng Việt có dấu sang không dấu trong Microsoft SQL Server

Đây là một function giúp bạn chuyển tiếng Việt có dấu sang không dấu trong SQL

T-SQL Code:
  1. CREATE FUNCTION [dbo].[fChuyenCoDauThanhKhongDau](@inputVar NVARCHAR(MAX) )
  2. RETURNS NVARCHAR(MAX)
  3. AS
  4. BEGIN    
  5.     IF (@inputVar IS NULL OR @inputVar = ”)  RETURN ”
  6.    
  7.     DECLARE @RT NVARCHAR(MAX)
  8.     DECLARE @SIGN_CHARS NCHAR(256)
  9.     DECLARE @UNSIGN_CHARS NCHAR (256)
  10.  
  11.     SET @SIGN_CHARS = N’ăâđêôơưàảãạáằẳẵặắầẩẫậấèẻẽẹéềểễệếìỉĩịíòỏõọóồổỗộốờởỡợớùủũụúừửữựứỳỷỹỵýĂÂĐÊÔƠƯÀẢÃẠÁẰẲẴẶẮẦẨẪẬẤÈẺẼẸÉỀỂỄỆẾÌỈĨỊÍÒỎÕỌÓỒỔỖỘỐỜỞỠỢỚÙỦŨỤÚỪỬỮỰỨỲỶỸỴÝ’ + NCHAR(272) + NCHAR(208)
  12.     SET @UNSIGN_CHARS = N’aadeoouaaaaaaaaaaaaaaaeeeeeeeeeeiiiiiooooooooooooooouuuuuuuuuuyyyyyAADEOOUAAAAAAAAAAAAAAAEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOUUUUUUUUUUYYYYYDD’
  13.  
  14.     DECLARE @COUNTER int
  15.     DECLARE @COUNTER1 int
  16.    
  17.     SET @COUNTER = 1
  18.     WHILE (@COUNTER <= LEN(@inputVar))
  19.     BEGIN  
  20.         SET @COUNTER1 = 1
  21.         WHILE (@COUNTER1 <= LEN(@SIGN_CHARS) + 1)
  22.         BEGIN
  23.             IF UNICODE(SUBSTRING(@SIGN_CHARS, @COUNTER1,1)) = UNICODE(SUBSTRING(@inputVar,@COUNTER ,1))
  24.             BEGIN          
  25.                 IF @COUNTER = 1
  26.                     SET @inputVar = SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1) + SUBSTRING(@inputVar, @COUNTER+1,LEN(@inputVar)-1)      
  27.                 ELSE
  28.                     SET @inputVar = SUBSTRING(@inputVar, 1, @COUNTER-1) +SUBSTRING(@UNSIGN_CHARS, @COUNTER1,1) + SUBSTRING(@inputVar, @COUNTER+1,LEN(@inputVar)- @COUNTER)
  29.                 BREAK
  30.             END
  31.             SET @COUNTER1 = @COUNTER1 +1
  32.         END
  33.         SET @COUNTER = @COUNTER +1
  34.     END
  35.     — SET @inputVar = replace(@inputVar,’ ‘,’-‘)
  36.     RETURN @inputVar
  37. END

Cách cài đặt:
– Mở Microsoft SQL Management Tool hoặc bất cứ công cụ nào cho phép Execute Query
– Đưa đoạn code SQL trên vào và nhấn Execute Query

Cách sử dụng:
Ví dụ 1: Lựa chọn một trường không dấu ta viết, ví dụ trường Diachi từ bảng Account

T-SQL Code:
  1. SELECT dbo.fChuyenCoDauThanhKhongDau(Diachi) FROM Account

Ví dụ 2: Tìm kiếm không dấu, tìm tất cả các tên có chứa ‘C Viet’ trong bảng Account

T-SQL Code:
  1. SELECT Ten, Diachi FROM Account WHERE dbo.fChuyenCoDauThanhKhongDau(Ten) LIKE ‘%C Viet%’

Đối với dân lập trình SQL, SQL Desinger, … thì function SQL này cực kỳ hữu ích. Nhưng đối với những nhà phát triển phần mềm thì đây là điều không mấy hứng thú. Trong bài viết tới,  sẽ đưa ra một phương pháp cho những nhà phát triển phần mềm.

–Source: Internet–

Tôn giáo Việt Nam phân chia theo dân số và giới tính

STT Tên Tôn Giáo Tổng (người) Nam (người) Nữ (người)
Cả nước 15.651.467 7.509.832 8.141.635
1 Phật giáo 6.812.318 3.172.576 3.629.742
2 Công giáo 5.677.086 2.783.619 2.893.167
3 Hòa Hảo 1.433.252 717.191 716.061
4 Hồi Giáo 75.268 34.445 37.823
5 Cao Đài 807.915 384.204 423.711
6 Minh Sư Đạo 709 328 381
7 Minh Lý Đạo 366 173 193
8 Tin Lành 734.168 354.696 379.472
9 Tịnh độ cư sĩ Phật hội Việt Nam 11.093 5.295 5.798
10 Đạo Tứ ấn hiếu nghĩa 41.280 20.633 20.647
11 Bửu sơn Kỳ hương 10.824 5.510 5.314
12 Bahá’í 731 361 370
13 Bà La Môn 56.427 27.791 28.636

Các dân tộc Việt Nam theo số dân

STT Dân tộc Dân số Thời điểm
thống kê
 % so với
dân số
Việt Nam
 Việt Nam 90.493.352 04/2014[3] 100 %
 Việt Nam 85.846.997 01/04/2009
1 Kinh 73.594.427 01/04/2009 85,7274%
2 Tày 1.626.392 01/04/2009 1,8945%
3 Thái 1.550.423 01/04/2009 1,806%
4 Mường 1.268.963 01/04/2009 1,4782%
5 Khơ Me 1.260.640 01/04/2009 1,4685%
6 H’Mông 1.068.189 01/04/2009 1,2443%
7 Nùng 968.800 01/04/2009 1,1285%
8 Hoa 823.071 01/04/2009 0,9588%
9 Dao 751.067 01/04/2009 0,8749%
10 Gia Rai 411.275 01/04/2009 0,4791%
11 Ê Đê 331.194 01/04/2009 0,3858%
12 Ba Na 227.716 01/04/2009 0,2653%
13 Xơ Đăng 169.501 01/04/2009 0,1974%
14 Sán Chay 169.410 01/04/2009 0,1973%
15 Cơ Ho 166.112 01/04/2009 0,1935%
16 Chăm 161.729 01/04/2009 0,1884%
17 Sán Dìu 146.821 01/04/2009 0,171%
18 Hrê 127.420 01/04/2009 0,1484%
19 Ra Glai 122.245 01/04/2009 0,1424%
20 M’Nông 102.741 01/04/2009 0,1197%
21 X’Tiêng 85.436 01/04/2009 0,0995%
22 Bru-Vân Kiều 74.506 01/04/2009 0,0868%
23 Thổ 74.458 01/04/2009 0,0867%
24 Khơ Mú 72.929 01/04/2009 0,085%
25 Cơ Tu 61.588 01/04/2009 0,0717%
26 Giáy 58.617 01/04/2009 0,0683%
27 Giẻ Triêng 50.962 01/04/2009 0,0594%
28 Tà Ôi 43.886 01/04/2009 0,0511%
29 Mạ 41.405 01/04/2009 0,0482%
30 Co 33.817 01/04/2009 0,0394%
31 Chơ Ro 26.855 01/04/2009 0,0313%
32 Xinh Mun 23.278 01/04/2009 0,0271%
33 Hà Nhì 21.725 01/04/2009 0,0253%
34 Chu Ru 19.314 01/04/2009 0,0225%
35 Lào 14.928 01/04/2009 0,0174%
36 Kháng 13.840 01/04/2009 0,0161%
37 La Chí 13.158 01/04/2009 0,0153%
38 Phú Lá 10.944 01/04/2009 0,0127%
39 La Hủ 9.651 01/04/2009 0,0112%
40 La Ha 8.177 01/04/2009 0,0095%
41 Pà Thẻn 6.811 01/04/2009 0,0079%
42 Chứt 6.022 01/04/2009 0,007%
43 Lự 5.601 01/04/2009 0,0065%
44 Lô Lô 4.541 01/04/2009 0,0053%
45 Mảng 3.700 01/04/2009 0,0043%
46 Cờ Lao 2.636 01/04/2009 0,0031%
47 Bố Y 2.273 01/04/2009 0,0026%
48 Cống 2.029 01/04/2009 0,0024%
49 Ngái 1.035 01/04/2009 0,0012%
50 Si La 709 01/04/2009 0,0008%
51 Pu Péo 687 01/04/2009 0,0008%
52 Rơ măm 436 01/04/2009 0,0005%
53 Brâu 397 01/04/2009 0,0005%
54 Ơ Đu 376 01/04/2009 0,0004%
55(*) Thành phần khác 2.134 01/04/2009 0,0025%

Các dân tộc Việt Nam

Nhóm Dân tộc Dân số Tên gọi khác
 Việt Nam 04/2014 90.493.352 Số liệu dân số 04/2014[3]
 Việt Nam 04/2009 85.846.997 Trong đó có tính cả 2.134 người thành phần khác
1. Nhóm Việt – Mường
(Vietic)
Kinh 73.594.427 Việt
Chứt 6.022 Xá La Vàng, Chà Củi, Tắc Củi, Mày
Mường 1.268.963 Mol, Mual
Thổ 74.458
2. Nhóm Tày – Thái
(Tai–Kadai)
Bố Y 2.273 (Bouyei) Chủng Chá, Trung Gia, Pầu Y, Pủ Dí
Giáy 58.617 (Bouyei) Nhắng, Giắng, Sa Nhân, Pấu Thỉn, Chủng Chá, Pu Năm
Lào 14.928 Lào Bốc, Lào Nọi
Lự 5.601 Lừ, Duôn, Nhuồn
Nùng 968.800
Sán Chay 169.410 Mán, Cao Lan – Sán Chỉ, Hờn Bạn, Hờn Chùng, Sơn Tử
Tày 1.626.392 Thổ
Thái 1.550.423 Táy
3. Nhóm Kadai
(Kra)
Cờ Lao 2.636 (Gelao)
La Chí 13.158 (Lachi) Thổ Đen, Cù Tê, Xá, La Ti, Mán Chí
La Ha 8.177 Xá Khao, Xá Cha, Xá La Nga
Pu Péo 687 (Qabiao, Pubiao) Ka Bẻo, Pen Ti Lô Lô, La Quả, Mán
4. Nhóm Môn – Khmer
(Austroasiatic)
Ba Na 227.716 (Bahnar) Bơ Nâm, Roh, Kon Kde, Ala Công, Kpang Công
Brâu 397 Brao
Bru – Vân Kiều 74.506 (Bru)
Chơ Ro 26.855 Châu Ro, Dơ Ro
Co 33.817 (Cor) Trầu, Cùa, Col, Khùa
Cơ Ho 166.112 (Koho)
Cơ Tu 61.588 (Katu) Ca Tu, Ca Tang, Cao, Hạ
Giẻ Triêng 50.962 Giang Rẫy, Brila, Cà Tang, Doãn
Hrê 127.420 (H’re) Chăm Rê, Thạch Bích
Kháng 13.840 Xá Khao, Xá Đón, Xá Tú Lăng
Khơ Me 1.260.640 Khmer
Khơ Mú 72.929 (Khmu) Xá Cẩu, Pu Thênh, Tày Hạy, Việt Cang, Khá Klậu, Tênh
Mạ 41.405
Mảng 3.700 Mảng Ư, Xá Lá Vàng, Niễng O, Xa Mãng, Xá Cang Lai
M’Nông 102.741 (Mnong)
Ơ Đu 376 Tày Hạt
Rơ Măm 436
Tà Ôi 43.886 (Ta Oi) Tôi Ôi, Ta Hoi, Ta Ôih, Tà Uất, A tuất, Pa Cô ?
Xinh Mun 23.278 Puộc, Pụa, Xá.
Xơ Đăng 169.501 (Sedang) Kmrâng, H’Đang, Con Lan, Brila
X’Tiêng 85.436 (Stieng) Xa Điêng, Tà Mun
5. Nhóm H’Mông – Dao
(Hmong–Mien)
Dao 751.067 (Yao) Mán, Động, Trại, Dìu, Miến, Kiêm, Kìm Mùn
H’Mông 1.068.189 (Hmong) Mông, Mèo, Mẹo, Mán, Miêu Tộc
Pà Thẻn 6.811 Pà Hưng, Mán Pa Teng, Tống
6. Nhóm Nam đảo
(Malayo-Polynesia)
Chăm 161.729 Chiêm Thành, Chăm Pa, Hời, Chàm
Chu Ru 19.314 Chơ Ru, Kru
Ê Đê 331.194 (Rhade) Ra đê
Gia Rai 411.275 (Jarai) Chơ Rai
Ra Glai 122.245 (Roglai) O Rang, Glai, Rô Glai, Radlai
7. Nhóm Hán
(Sinitic)
Hoa 823.071 (Overseas Chinese) Tiều, Hán
Ngái 1.035 (Hakka Chinese) Sán Ngái
Sán Dìu 146.821 Trại, Trại Đát, Sán Rợ, Mán quần cộc, Mán váy xẻ
8. Nhóm Tạng-Miến
(Tibeto-Burma)
Cống 2.029 (Phunoi)
Hà Nhì 21.725 (Hani) U Ní, Xá U Ní, Hà Nhì Già
La Hủ 9.651 (Lahu)
Lô Lô 4.541 (Yi) Mùn Di, Ô Man, Lu Lọc Màn, Di, Qua La, La La, Ma Di
Phù Lá 10.944 Phú Lá (Xá Phó)
Si La 709 Cú Đề Xừ[4][5]

Các hàm về ngày tháng và thời gian

View Full Version:

1. Hàm DATE()

Trả về một ngày tháng năm nào đó

Cú pháp: = DATE(year, month, day)

year: Số chỉ năm
Con số này có thể là 1 đến 4 ký số.
– Nếu nhỏ hơn 1900, Excel sẽ tự động cộng thêm 1900 vào để tính (ví dụ year = 100 thì Excel sẽ hiểu đó là năm 2000)
– Nếu từ 1900 đến 9999, thì Excel sẽ coi đó chính là năm cần tính
– Nếu nhỏ hơn 0 hoặc lớn hơn 10.000, Excel sẽ báo lỗi #NUM!

month: Số chỉ tháng
Nếu con số này lớn hơn 12, thì Excel sẽ tự động quy đổi thành 12 bằng 1 năm và tăng số năm lên.

day: Số chỉ ngày
Nếu con số này lớn hơn số ngày của tháng, thì Excel sẽ tự động quy đổi thành số ngày nhiều nhất của tháng cho phù hợp và tăng số tháng lên, nếu cần thì tăng cả số năm lên luôn.

Ví dụ:
DATE(2007, 12, 25) = Giáng Sinh năm 2007

DATE(2007, 12, 32) = 01/01/2008

DATE(2007, 13, 25) = 25/01/2008

DATE(7, 25, 32) = 01/02/1909
(số ngày (date) = 32, lớn hơn số ngày nhiều nhất của một tháng (31), do đó, Excel sẽ lấy ngày là 01, và tăng số tháng (month) thêm 1; số tháng (month) = 25 + 1 = 26 = 2 + (2 x 12), do đó Excel sẽ lấy tháng là 02, và tăng số năm thêm 2; số năm (year) = 7 + 2 = 9, Excel sẽ cộng thêm 1900 = 1909)

Hàm DATE() rất hữu dụng khi year, month, day là những công thức mà không phải là một con số, nó sẽ giúp chúng ta tính toán chính xác hơn
Khi nhập hàm DATE(), bạn phải cẩn thận thứ tự year, month, day, vì nó rất dễ nhầm lẫn (theo kiểu VN chúng ta: ngày, tháng, năm)

2. Hàm DATEVALUE()

Chuyển đổi một chuỗi văn bản có dạng ngày tháng năm thành một giá trị ngày tháng năm để có thể tính toán được

Cú pháp: = DATEVALUE(date_text)

– date_text: Chuỗi văn bản cần chuyển đổi
– date_text có giới hạn trong khoảng từ 01/01/1900 đến 31/12/9999, nếu nằm ngoài khoảng này, hàm sẽ báo lỗi #VALUE!
– date_text phải được nhập trong cặp dấu móc kép (“”)
– Nếu date_text chỉ có hai phần, Excel sẽ hiểu như sau: nếu phần sau là một giá trị < 13 và phần đầu là một giá trị < 32, nó xem như phần đầu là ngày, phần sau là tháng, và lấy năm hiện hành làm giá trị để tính năm; còn nếu phần sau là một giá trị > 12 và phần đầu là một giá trị < 13, nó xem như phần đầu là tháng, phần sau là năm, và cho giá trị tính ngày là 1.

Ví dụ:
DATEVALUE(“25/12/2007”) = 39441 (= 25/12/2007)

DATEVALUE(“25/12”) = 39807 (= 25/12/2008)

DATEVALUE(“12/25”) = 45992 (= 01/12/2025)

DATEVALUE(“12/25/2007”) = #VALUE!

DATEVALUE(“25 December 2009”) = 40172 = 25/12/2009

3. Hàm YEAR()

Cho biết số chỉ năm trong một giá trị ngày tháng

Cú pháp: = YEAR(serial_number)
serial_number: Biểu thức ngày tháng hoặc là một con số chỉ giá trị ngày tháng

Ví dụ: YEAR(TODAY()) = 2008

4. Hàm MONTH()

Cho biết số chỉ tháng trong một giá trị ngày tháng

Cú pháp: = MONTH(serial_number)

serial_number: Biểu thức ngày tháng hoặc là một con số chỉ giá trị ngày tháng

Ví dụ: MONTH(TODAY()) = 1

5. Hàm DAY()

Cho biết số chỉ ngày trong một giá trị ngày tháng

Cú pháp: = DAY(serial_number)

serial_number: Biểu thức ngày tháng hoặc là một con số chỉ giá trị ngày tháng

Ví dụ: DAY(TODAY()) = 3

Tính số ngày chênh lệch theo kiểu một năm có 360 ngày

Hiện nay, vẫn còn một số hệ thống kế toán dùng kiểu tính thời gian là một tháng coi như có 30 ngày và một năm coi như có 360 ngày!
Gặp trường hợp này, việc tính toán thời gian sẽ không đơn giản, vì thực tế thì số ngày trong mỗi tháng đâu có giống nhau.
Có lẽ vì nghĩ đến chuyện đó, nên Excel có một hàm dành riêng cho các hệ thống kế toán dựa trên cơ sở một năm có 360 ngày, đó là hàm DAYS360.

6. Hàm DAYS360()

Cú pháp: = DAYS360(start_date, end_date [, method])

start_date, end_date: Ngày tháng đại diện cho ngày bắt đầu và ngày kết thúc của khoảng thời gian cần tính toán. Nên nhập bằng hàm DATE(), hoặc dùng một kết quả trả về của một công thức khác, vì có thể sẽ xảy ra lỗi nếu bạn nhập trực tiếp ngày tháng dưới dạng text.

method: Một giá trị logic (TRUE, FALSE) để chỉ cách tính toán, theo kiểu châu Âu hay theo kiểu Mỹ.

FALSE: (hoặc không nhập) Tính toán theo kiểu Mỹ: Nếu start_date là ngày 31 của tháng, thì nó được đổi thành ngày 30 của tháng đó. Nếu end_date là ngày 31 của tháng và start_date nhỏ hơn 30, thì end_date được đổi thành ngày 1 của tháng kế tiếp.

TRUE: Tính toán theo kiểu châu Âu: Hễ start_date hoặc end_date mà rơi vào ngày 31 của một tháng thì chúng sẽ được đổi thành ngày 30 của tháng đó.

Ví dụ: So sánh số ngày chênh lệch giữa 01/01/2008 và 31/5/2008 theo kiểu một năm có 360 ngày và theo kiểu thường (dùng hàm DATEDIF)

DAYS360(“01/01/2008”, “31/5/2008”) = 150

DAYS360(“01/01/2008”, “31/5/2008”, TRUE) = 149

DATEDIF(“01/01/2008”, “31/5/2008”, “d”) = 151

Vấn đề với việc cộng trừ tháng

Đôi khi, chúng ta muốn tính một ngày trước hay sau vài tháng nữa, lấy số tháng cộng trừ, dùng hàm DATE() chẳng hạn ?
Vấn đề là: số ngày trong mỗi tháng đâu có bằng nhau, khi cộng trừ theo tháng, Excel sẽ tự động tính số ngày trong mỗi tháng cho phù hợp, và như thế, nhiều lúc không ra cái chúng ta mong muốn.

Tôi ví dụ, ô A1 đang chứa ngày 31/1/2008, có bạn đã dùng công thức sau để tính ngày cuối tháng của tháng 4, với mong muốn kết quả cho ra ngày 30/4/2008:

= DATE(YEAR(A1), MONTH(A1) + 3, DAY(A1))

Mới xem qua, thì hợp lý chứ… lấy tháng 1 cộng thêm 3 tháng nữa. Nhưng, nếu làm như vậy thì kết quả sẽ ra là ngày 31/4/2008, mà tháng 4 có 30 ngày thôi, nên Excel sẽ tự động cộng thêm 1 ngày sau ngày 30/4/2008, và kết quả của công thức trên sẽ là ngày 01/5/2008.

Vậy thì làm sao, ví dụ như để tìm ngày cuối tháng của một tháng nào đó?
Chúng ta cùng xem hai hàm sau đây (cũng trong nhóm Analysis Toolpak): EDATE() và EOMONTH()

7. Hàm EDATE()

Hàm này trả về một ngày nào đó tính từ mốc thời gian cho trước và cách mốc thời gian này một số tháng được chỉ định
Thường người ta dùng hàm này để tính hạn bảo hành cho một sản phẩm, hoặc ngày đáo hạn hợp đồng…

Cú pháp: = EDATE(start_date, months)
start_date: Ngày dùng làm mốc để tính. Nên nhập ngày này bằng hàm DATE(), hoặc dùng một kết quả trả về của một công thức khác, vì có thể sẽ xảy ra lỗi nếu bạn nhập trực tiếp ngày tháng dưới dạng text.

months: Số tháng trước hoặc sau mốc thời gian start_date (nếu trước thì dùng số âm). Trong trường hợp months là số không nguyên, nó sẽ được làm tròn.

Xin lấy lại ví dụ đã nói ở đầu bài: ô A1 đang chứa ngày cuối tháng 01/2008, tính ngày cuối tháng sau 3 tháng nữa, dùng công thức:
= EDATE(A1, 3) = 30/4/2008

Lưu ý: EDATE() không phải là hàm để tính ngày cuối tháng, mà cho kết quả là ngày trùng với ngày của mốc thời gian muốn tính (start_date). Nếu như trường hợp kết quả trả về là một ngày không hợp lệ của một tháng (ngày 31/4 chẳng hạn), thì EDATE() sẽ lấy ngày cuối tháng của tháng đó (30/4).

Ví dụ khác: Tôi mua một cái USB ngày hôm nay (08/01/2008), hạn bảo hành 36 tháng, vậy nó được bảo hành tới ngày nào?
= EDATE(TODAY(), 36) = 08/01/2011

8. Hàm EOMONTH()

Xin dịch ra để dễ hiểu: End Of Month = Ngày cuối tháng

Cú pháp: = EOMONTH(start_date, months)

start_date: Ngày dùng làm mốc để tính. Cũng giống hàm EDATE(), nên nhập ngày này bằng hàm DATE(), hoặc dùng một kết quả trả về của một công thức khác, vì có thể sẽ xảy ra lỗi nếu bạn nhập trực tiếp ngày tháng dưới dạng text.

months: Số tháng trước hoặc sau mốc thời gian start_date (nếu trước thì dùng số âm). Trong trường hợp months là số không nguyên, nó sẽ được làm tròn.

Ví dụ: EOMONTH(TODAY(), 25) = 40237 = 28/02/2010

Tính ngày cuối tháng của một tháng bất kỳ

Hàm EOMONTH() ở trên cho biết ngày cuối tháng của một tháng nào đó trong tương lai hoặc trong quá khứ.
Bây giờ, nếu bạn có một dữ liệu ngày tháng năm, và bạn muốn biết ngày cuối tháng của tháng trong cái dữ liệu đó (28, 29, 30, hay 31), thì làm sao?

Chúng ta đã biết rằng hàm DATE() sẽ tự động sửa ngày, tháng, năm thành một ngày hợp lệ, tùy vào các thông số ngày, tháng, năm chúng ta nhập trong công thức. Đây là một cái “mánh” của tôi:

Vì ngày cuối tháng bao giờ cũng là ngày trước ngày đầu tiên của tháng kế tiếp, ta cứ cho thông số ngày trong hàm DATE() là 0, và tăng số tháng muốn tính thêm 1; mà làm gì có ngày 0, nên chắc chắn DATE() sẽ cho ra kết quả là ngày cuối tháng của tháng trước tháng bị cộng 1, tức là ngay tháng ta muốn tính!

Và đây là công thức để tính ngày cuối tháng của một ngày tháng năm nào đó (MyDate)

= DATE(YEAR(MyDate), MONTH(MyDate) + 1, 0)

Ví dụ:

Today = 08/01/2008
= DATE(YEAR(TODAY()), MONTH(TODAY()) + 1, 0) = 31/01/2008

Năm nay có nhuận không?
= DATE(YEAR(“01/02/2008”), MONTH(“01/02/2008”) + 1, 0) = 29/02/2008: Nhuận (!)

Trích ra từng giá trị của thời gian

Thời gian có 3 phần: Giờ, Phút và Giây. Khi cần trích ra riêng từng giá trị này, chúng ta dùng 3 hàm sau đây:

9. Hàm HOUR()

Cho biết số chỉ giờ trong một giá trị thời gian
Cú pháp: = HOUR(serial_number)
serial_number: Biểu thức thời gian hoặc là một con số chỉ giá trị thời gian

Ví dụ: HOUR(0.5) = 12 (giờ)

10. Hàm MINUTE()

Cho biết số chỉ phút trong một giá trị thời gian
Cú pháp: = MINUTE(serial_number)
serial_number: Biểu thức thời gian hoặc là một con số chỉ giá trị thời gian
Ví dụ: Bây giờ là 10:20 PM, MINUTE(NOW()) = 20 (phút)

11. Hàm SECOND()

Cho biết số chỉ giây trong một giá trị thời gian
Cú pháp: = SECOND(serial_number)
serial_number: Biểu thức thời gian hoặc là một con số chỉ giá trị thời gian
Ví dụ: SECOND(“2:45:30 PM”) = 30 (giây)

Tính số ngày làm việc giữa hai khoảng thời gian

Bình thường, nếu lấy ngày tháng trừ ngày tháng, kết quả sẽ bao gồm luôn những ngày lễ, ngày nghỉ, v.v… Còn nếu tính số ngày làm việc trong một khoảng thời gian, thì phải trừ bớt đi những ngày không làm việc.

Trong Excel có một hàm chuyên để tính toán những ngày làm việc giữa hai khoảng thời gian mà không bao gồm các ngày thứ Bảy, Chủ Nhật và những ngày nghỉ khác được chỉ định: Hàm NETWORKDAYS (đúng nguyên nghĩa của nó: net workdays).

Dĩ nhiên hàm này chỉ thích hợp với những cơ quan làm việc 5 ngày một tuần, chứ như chúng ta, làm tuốt, có khi là 365 ngày một năm (hic) thì hàm này vô tác dụng!

12. Hàm NETWORKDAYS()

Cú pháp: = NETWORKDAYS(start_date, end_date [, holidays])
start_date, end_date: Ngày tháng đại diện cho ngày bắt đầu và ngày kết thúc công việc. Nên nhập bằng hàm DATE(), hoặc dùng một kết quả trả về của một công thức khác, vì có thể sẽ xảy ra lỗi nếu bạn nhập trực tiếp ngày tháng dưới dạng text.

holidays: Danh sách những ngày nghỉ ngoài những ngày thứ Bảy và Chủ Nhật. Danh sách này có thể là một vùng đã được đặt tên. Nếu nhập trực tiếp thì phải bỏ trong cặp dấu móc {}.

Ví dụ: Công thức tính số ngày làm việc giữa ngày 1/12/2007 và ngày 10/1/2008, trong đó có nghỉ ngày Noel (25/12) và ngày Tết Tây (1/1):
= NETWORKDAYS(“01/12/2007”, “10/01/2008”, {“12/25/2007”, “1/1/2008”})

13. Hàm TODAY()

Trả về ngày tháng năm hiện hành
Cú pháp: = TODAY()
Hàm này không có thông số nào kèm theo cả.

Kết quả của hàm TODAY() là một con số, đại diện cho ngày tháng năm hiện hành, với thời gian được ngầm hiểu là 0 giờ (nửa đêm).
Ví dụ, hôm nay là ngày 02/01/2008, hàm TODAY() sẽ cho ra con số 39449.0, để xem được theo dạng “dễ nhìn”, bạn chỉ cần định dạng lại ô.

14. Hàm NOW()

Trả về ngày tháng năm và giờ phút giây hiện hành
Cú pháp: = NOW()
Hàm này cũng không có thông số nào kèm theo cả.

Kết quả của hàm NOW() là một con số, đại diện cho ngày tháng năm và thời gian của hệ thống lúc vừa nhập xong công thức.
Ví dụ, hôm nay, và lúc này là 11 giờ 56 phút ngày 09/01/2008, hàm NOW() sẽ cho ra con số 39456.49643. Để xem được theo dạng “dễ nhìn”, bạn chỉ cần định dạng lại ô, theo kiểu dd/mm/yyyy hh:ss:mm chẳng hạn.

Ghi chú:
– Không phải lúc nào hàm TODAY() và NOW() cũng cho ra một kết quả như nhau, mà mỗi khi bạn sửa chữa bảng tính, gõ một công thức khác, tính toán lại bảng tính, hoặc mở lại bảng tính… thì hàm TODAY() và NOW() sẽ cập nhật theo ngày giờ của hệ thống.
Sự khác nhau giữa hai hàm này chính là:
– TODAY nghĩa là hôm nay, mà lúc 7 giờ sáng hay 9 giờ 30 tối thì cũng là hôm nay. Kết quả của TODAY() vào những lúc khác nhau trong ngày sẽ giống nhau.
– NOW nghĩa là chính lúc này, là lúc ta vừa nhập xong NOW() và nhấn Enter… Kết quả của NOW() vào những lúc khác nhau trong ngày sẽ khác nhau.

15. Hàm TIME()

Trả về một giá trị thời gian nào đó
Cú pháp: = TIME(hour, minute, second)
hour: Số chỉ giờ, là một con số từ 0 đến 23. Nếu lớn hơn 23, Excel sẽ tự trừ đi một bội số của 24.

minute: Số chỉ phút, là một con số từ 0 đến 59. Nếu lớn hơn 59, Excel sẽ tính lại và tăng số giờ lên tương ứng.

second: Số chỉ giây, là một con số từ 0 đến 59. Nếu lớn hơn 59, Excel sẽ tính lại và tăng số phút, số giờ lên tương ứng.

Ví dụ:
TIME(14, 45, 30) = 2:45:30 PM

TIME(14, 65, 30) = 3:05:30 PM

TIME(25, 85, 75) = 2:26:15 AM

Cũng như DATE(), hàm TIME() rất hữu dụng khi hour, minute, second là những công thức mà không phải là một con số, nó sẽ giúp chúng ta tính toán chính xác hơn

16. Hàm TIMEVALUE()

Chuyển đổi một chuỗi văn bản có dạng thời gian thành một giá trị thời gian để có thể tính toán được
Cú pháp: = TIMEVALUE(time_text)
time_text: Chuỗi văn bản cần chuyển đổi
Ví dụ:
TIMEVALUE(“26:15”) = 0.09375 (= 2:15:00 AM)

17. Hàm WEEKDAY()

Cho biết số thứ tự của ngày trong tuần
Cú pháp: = WEEKDAY(serial_number [, return_type])
serial_number: Biểu thức ngày tháng hoặc là một con số chỉ giá trị ngày tháng

return_type: Chọn kiểu kết quả trả về
return_type = 1 (mặc định): Chủ Nhật là 1 (thứ Bảy là 7)
return_type = 2: Thứ Hai là 1 (Chủ Nhật là 7)
return_type = 3: Thứ Hai là 0 (Chủ Nhật là 6)
Ví dụ: (Today = 03/01/2008)
WEEKDAY(TODAY()) = 5
WEEKDAY(TODAY(), 2) = 4
WEEKDAY(TODAY(), 3) = 3

18. Hàm WEEKNUM()

Cho biết số thứ tự của tuần trong năm
Cú pháp: = WEEKNUM(serial_number [, return_type])
serial_number: Biểu thức ngày tháng hoặc là một con số chỉ giá trị ngày tháng

return_type: Chọn kiểu trả về (tùy thuộc vào cách chọn ngày đầu tiên trong tuần)
return_type = 1 (mặc định): Chủ Nhật là ngày đầu tuần
return_type = 2: Thứ Hai là ngày đầu tuần
Ví dụ: Thử xem ngày hạnh phúc của ANHPHUONG nằm vào tuần nào trong năm nay…
WEEKNUM(“06/01/2008”) = 2
WEEKNUM(“06/01/2008”, 2) = 1

Dự đoán ngày sẽ hoàn thành một công việc

Giả sử chúng ta có một dự án, theo dự tính sẽ hoàn thành trong một thời gian nào đó (tính bằng ngày), nhưng khoảng thời gian này, bình thường sẽ bao gồm cả số ngày làm việc, số ngày cuối tuần, và cả số ngày lễ nghỉ… Vấn đề là phải dự đoán được ngày nào sẽ hoàn thành dự án này, mà đã trừ bớt đi những ngày nghỉ, không làm…

Bạn có thể làm điều đó, bằng cách dùng hàm WORKDAY(), một hàm thuộc nhóm Analysis Toolpak (phải cài Add-in này thì mới sử dụng được), hàm này trả về số ngày làm việc trước hoặc sau ngày được chỉ định, và trừ đi những ngày nghỉ.

19. Hàm WORKDAY()

Cú pháp: = WORKDAY(start_day, days [, holidays])

start_day: Ngày làm mốc để tính.

days: Số ngày làm việc trước hoặc sau start_day. Dùng days > 0 cho số ngày làm việc của một dự án chưa hoàn thành, dùng days < 0 cho số ngày làm việc của một dự án đã kết thúc.

holidays: Danh sách các ngày nghỉ. Có thể gõ trực tiếp một ngày cụ thể, trong trường hợp có nhiều ngày thì các ngày cách nhau bằng dấu phẩy, và đặt tất cả trong một cặp dấu móc {}.

Ví dụ, để tính số ngày làm việc cho một dự án 30 ngày. tính từ hôm nay, ta dùng công thức:

= WORKDAY(TODAY(), 30)

Tính ngày hoàn thành của một dự án 30 ngày, khởi công ngày 1/12/2007, trong đó nghỉ ngày Noel (25/12) và ngày đầu năm (01/01/2008), dùng công thức:

= WORKDAY(“1/12/2007”, 30, {“25/12/2007”, “1/1/2008”})

Tính tỷ lệ của một khoảng thời gian so với một năm

Trong công việc hằng ngày, chắc hẳn chúng ta hay nghĩ đến chuyện việc làm này của mình mất hết mấy phần trăm của một năm, ví dụ, một ngày ngủ hết 6 tiếng, là 1/4 ngày, vậy một năm chúng ta ngủ hết 25% (hic) thời gian…
Hoặc một nhân viên của công ty xin nghỉ việc vào tháng 5, lương tính theo năm, vậy công ty phải trả cho người đó bao nhiêu phần trăm lương khi cho nghỉ việc?
Excel có một hàm để tính tỷ lệ của một khoảng thời gian trong một năm, và cho phép tính theo nhiều kiểu (năm 365 ngày, hay năm 360 ngày, tính theo kiểu Mỹ hay theo kiểu châu Âu…):

20. Hàm YEARFRAC()

(Dịch từ chữ Year: năm, và Frac = Fraction: tỷ lệ)

Cú pháp: = YEARFRAC(start_date, end_date [, basis])
start_date, end_date: Ngày tháng đại diện cho ngày bắt đầu và ngày kết thúc của khoảng thời gian cần tính toán. Nên nhập bằng hàm DATE(), hoặc dùng một kết quả trả về của một công thức khác, vì có thể sẽ xảy ra lỗi nếu bạn nhập trực tiếp ngày tháng dưới dạng text.

basis: Một con số, quy định kiểu tính:

0 : (hoặc không nhập) Tính toán theo kiểu Bắc Mỹ, một năm có 360 ngày chia cho 12 tháng, một tháng có 30 ngày.

1 : Tính toán theo số ngày thực tế của năm và số ngày thực tế của từng tháng

2 : Tính toán theo một năm có 360 ngày, nhưng số ngày là số ngày thực tế của từng tháng

3 : Tính toán theo một năm có 365 ngày, và số ngày là số ngày thực tế của từng tháng

4 : Tính toán theo kiểu Châu Âu,mỗi tháng có 30 ngày (nếu start_date hoặc end_date mà rơi vào ngày 31 của một tháng thì chúng sẽ được đổi thành ngày 30 của tháng đó)

Ví dụ: Tính tỷ lệ giữa ngày 15/3/2007 và ngày 30/7/2007 so với 1 năm:

YEARFRAC(“15/3/2007”, “30/7/2007”) = 37%