Hàm nào lấy giá trị của Thứ trong tuần

  • Thread starter Thread starter nmhanh
  • Ngày gửi Ngày gửi
Liên hệ QC

nmhanh

Thành viên chính thức
Tham gia
5/7/07
Bài viết
82
Được thích
8
Chào các ACE,

Tôi tìm trong excel mà chưa ra hàm nào trả ra giá trị của Thứ trong tuần.

VD: nếu giá trị là "Monday" thì cho kết quả là 1; "Tuesday" là 2, ....

Nếu dùng hàm Weekday thì số liệu phải dưới dạng "mm/dd/yy", nhưng dữ liệu chỉ là "DD", hay là "DDD", ... thì không được.

Tất nhiên, tôi không muốn dùng hàm IF để làm vòng lặp là nếu "Monday" thì cho giá trị 1, nếu "Tuesday" thì cho giá trị 2, ... vì tôi muốn hàm trả ra giá trị trực tiếp theo kiểu =giá trị("Monday") = 1.

Có anh chị nào biết thì giúp với.

Cảm ơn nhiều.
 
chào các ace,

tôi tìm trong excel mà chưa ra hàm nào trả ra giá trị của thứ trong tuần.

Vd: Nếu giá trị là "monday" thì cho kết quả là 1; "tuesday" là 2, ....

Nếu dùng hàm weekday thì số liệu phải dưới dạng "mm/dd/yy", nhưng dữ liệu chỉ là "dd", hay là "ddd", ... Thì không được.

Tất nhiên, tôi không muốn dùng hàm if để làm vòng lặp là nếu "monday" thì cho giá trị 1, nếu "tuesday" thì cho giá trị 2, ... Vì tôi muốn hàm trả ra giá trị trực tiếp theo kiểu =giá trị("monday") = 1.

Có anh chị nào biết thì giúp với.

Cảm ơn nhiều.
=weekday(a1,2)
miễn sao là dữ liệu là ngày ở dạng ngày
 
Chào các ACE,

Tôi tìm trong excel mà chưa ra hàm nào trả ra giá trị của Thứ trong tuần.

VD: nếu giá trị là "Monday" thì cho kết quả là 1; "Tuesday" là 2, ....

Nếu dùng hàm Weekday thì số liệu phải dưới dạng "mm/dd/yy", nhưng dữ liệu chỉ là "DD", hay là "DDD", ... thì không được.

Tất nhiên, tôi không muốn dùng hàm IF để làm vòng lặp là nếu "Monday" thì cho giá trị 1, nếu "Tuesday" thì cho giá trị 2, ... vì tôi muốn hàm trả ra giá trị trực tiếp theo kiểu =giá trị("Monday") = 1.

Có anh chị nào biết thì giúp với.

Cảm ơn nhiều.
Thì vầy thôi:
PHP:
=MATCH(A1,{"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"},0)
Với cell A1 chứa chuổi Monday hoặc Tueday hoặc.... Sunday
 
Thì vầy thôi:
PHP:
=MATCH(A1,{"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"},0)
Với cell A1 chứa chuổi Monday hoặc Tueday hoặc.... Sunday

Thầy lẹ như tia chớp!
Em tập tành viết hàm nên em sử dụng cái này, lủng củng nhưng cũng giải quyết được vấn đề.
PHP:
Function DayConst(ng As String)
  Dim d As Integer
  If UCase(ng) = "MONDAY" Then d = 1
  If UCase(ng) = "TUESDAY" Then d = 2
  If UCase(ng) = "WEDNESDAY" Then d = 3
  If UCase(ng) = "THURSDAY" Then d = 4
  If UCase(ng) = "FRIDAY" Then d = 5
  If UCase(ng) = "SATURDAY" Then d = 6
  If UCase(ng) = "SUNDAY" Then d = 7
  DayConst = d
End Function

=DayConst(A1)
hoặc
=DayConst("Monday")
 

File đính kèm

Lần chỉnh sửa cuối:
như em (noob) thì tạo 01 bảng ở bên cạnh như dưới đây rồi dùng hàm vlookup

Monday 1
Tuesday 2
Wednesday 3
Thursday 4
Friday 5
Saturday 6
Sunday 7
 
Thầy lẹ như tia chớp!
Em tập tành viết hàm nên em sử dụng cái này, lủng củng nhưng cũng giải quyết được vấn đề.
PHP:
Function DayConts(ng As String)
  Dim d As Integer
  If UCase(ng) = "MONDAY" Then d = 1
  If UCase(ng) = "TUESDAY" Then d = 2
  If UCase(ng) = "WEDNESDAY" Then d = 3
  If UCase(ng) = "THURSDAY" Then d = 4
  If UCase(ng) = "FRIDAY" Then d = 5
  If UCase(ng) = "SATURDAY" Then d = 6
  If UCase(ng) = "SUNDAY" Then d = 7
  DayConts = d
End Function
Ẹc... Ẹc... ai lại làm thế
Ít ra cũng phải vầy:
PHP:
Function WdNum(WdName As String) As Long
  Dim Arr
  On Error Resume Next
  Arr = Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
  WdNum = WorksheetFunction.Match(WdName, Arr, 0)
End Function
 
Lần chỉnh sửa cuối:
Ẹc... Ẹc... ai lại làm thế
Ít ra cũng phải vầy:
PHP:
Function WdNum(WdName As String) As Long
Dim Arr
On Error Resume Next
Arr = Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
WdNum = WorksheetFunction.Match(WdName, Arr, 0)
End Function

Em không biết hàm MATCH có thể tính được như vậy, nên làm hàm tự tạo. Nếu làm hàm tự tạo mà biết làm hàm MATCH thì đương nhiên làm theo hàm của Thầy là tuyệt nhất! Cám ơn Thầy!
 
Tôi muốn xuất ra giá trị của ngày tháng thành dạng text và lấy giá trị của các sheet khác để nhập chung vào, ví dụ:

Cell A1: HN
Ngày hôm nay là 08tháng 09 năm 2010
Cell A2: 01

Cần xuất ra Cell A3 là HN10090801
10: năm
09: tháng
08: ngày
01: lấy từ Cell A2
HN: lấy từ Cell A1
 
Tôi muốn xuất ra giá trị của ngày tháng thành dạng text và lấy giá trị của các sheet khác để nhập chung vào, ví dụ:

Cell A1: HN
Ngày hôm nay là 08tháng 09 năm 2010
Cell A2: 01

Cần xuất ra Cell A3 là HN10090801
10: năm
09: tháng
08: ngày
01: lấy từ Cell A2
HN: lấy từ Cell A1

Cho mình hỏi thêm là cell A1 của bạn là dạng Text hay là dạng ngày tháng?
 
Các cell là dạng text hết, nhờ bạn viết code giùm, chứ nếu dùng function thì có thể dùng hàm indirect thì có thể viết chung được
 
Tôi muốn xuất ra giá trị của ngày tháng thành dạng text và lấy giá trị của các sheet khác để nhập chung vào, ví dụ:

Cell A1: HN
Ngày hôm nay là 08tháng 09 năm 2010
Cell A2: 01

Cần xuất ra Cell A3 là HN10090801
10: năm
09: tháng
08: ngày
01: lấy từ Cell A2
HN: lấy từ Cell A1

Bạn chỉ mới nêu có 1 trường hợp nên không biết bố cục dữ liệu của bạn ra sao?
Gửi file chi tiết thì may ra có thể tìm được cách tổng quát hơn,
Với trường hợp bạn nêu thì dùng tạm:
PHP:
=LEFT(A1,2)&RIGHT(A1,2)&MID(A1,FIND("năm",A1)-3,2)&MID(A1,FIND("là",A1)+3,2)&TEXT(A2,"00")
 
Ban thích Code thì dùng thử UDF sau:

Mã:
Function Tach(ch As String)
Dim i, ch1, ch2
ch1 = Split(ch, Chr(10))
For i = 1 To Len(ch1(1))
If Mid(ch1(1), i, 1) Like "[0-9]" Then ch2 = ch2 & Mid(ch1(1), i, 1)
Next
Tach = ch1(0) & Right(ch2, 4) & Mid(ch2, 3, 2) & Left(ch2, 2)
End Function
Hàm này chuyển ô A1 thành HN20100908
Vậy ta nối thêm A2 là xong (Minh không nối trong code để dễ tùy biến). Bạn xem file ví dụ
 

File đính kèm

Bạn thích code thì tặng thêm một code nữa
Mã:
Public Function ngo(Vung1, Vung2)
    Dim Tam, J As String, I As Integer
    Const So = "0123456789"
        For I = 3 To Len(Vung1) - 5
            J = Mid(Vung1, I, 1)
            If InStr(1, So, J) Then Tam = Tam & J
        Next
    ngo = Left(Vung1, 2) & Right(Vung1, 2) & Right(Tam, 2) & Left(Tam, 2) & Vung2
End Function
Vì chưa biết dữ liệu thật ra sao nên chỉ làm đúng theo yêu cầu trong bài thôi
 

File đính kèm

Hi bạn,
mình cũng không rành lam nhưng mình thấy dùng hàm nối & là được mà. Dùng & nối các thành phần bạn muốn vào
=A1&RIGHT(YEAR(D8),2)&RIGHT("0"&MONTH(D8),2)&RIGHT("0"&DAY(D8),2)&A2
 
Web KT

Bài viết mới nhất

Back
Top Bottom