Các câu hỏi về việc Đánh Số Thứ Tự (STT)

Liên hệ QC
Nhờ anh xem giúp file này, em muốn xắp xếp theo thứ tự EK-1, EK-2...Các điểm EK này có tọa độ là X..Y..
Khi các điểm EK này được sắp xếp lại thì các tọa dộ X,Y cũng được tương ứng sắp xếp theo
 

File đính kèm

  • tkm_thu.rar
    1.2 KB · Đọc: 15
Bạn tạo theo 1 cột phụ nữa... ví dụ dử liệu của bạn nằm ở cột A, từ A1 đến A100, vậy trong cột phụ bạn gõ công thức:
Code:
=1*RIGHT(A1,LEN(A1)-3)
Kéo fill công thức đến dòng cuối cùng... Tiếp theo là Sort toàn bộ dử liệu theo cột phụ này!
ANH TUẤN

Nhờ anh xem giúp file này, em muốn xắp xếp theo thứ tự EK-1, EK-2...Các điểm EK này có tọa độ là X..Y..
Khi các điểm EK này được sắp xếp lại thì các tọa dộ X,Y cũng được tương ứng sắp xếp theo

Bác Tuấn chỉ rõ rồi mà bạn tạo cột phụ gõ ct vào fill xuống, xong sort theo cột phụ =>OK rồi.
 

File đính kèm

  • tkm_thu.xls
    24 KB · Đọc: 41
Format số về dạng số thứ tự 1st, 2nd, 3rd, 4thv.v...??

Em có 1 cell chứa giá trị số, giờ muốn format nó về dạng thứ tự như 1st, 2nd, 3rd, 4th như trong tiếng anh. Nếu xài công thức if xét thì được, nhưng em muốn nó ngắn hơn nữa tức là xài formatcell, có bác nào biết định dạng format nào có thể làm được thế ko chỉ giúp em với
 
Format Cells->Number->Custom->Type=#"st"
 
Em có 1 cell chứa giá trị số, giờ muốn format nó về dạng thứ tự như 1st, 2nd, 3rd, 4th như trong tiếng anh. Nếu xài công thức if xét thì được, nhưng em muốn nó ngắn hơn nữa tức là xài formatcell, có bác nào biết định dạng format nào có thể làm được thế ko chỉ giúp em với

Mình có ý như thế này:
Bạn nên tạo một formula để khi nào cần xài thì chỉ cần gõ công thức vào là ra, giống như hàm đọc số thành chữ ấy.
Ví dụ: ô A1 = 1,
ô B1 = SoThuTu(A1) = 1 st
Bạn tham khảo đoạn code sau xem (lưu vào module, chỗ nào bạn lưu hàm đọc số ra chữ cũng được):

PHP:
Function SoThuTu(ByVal Num As Long) As String
Dim N As Long
Const ThuTu = "stndrdthththththth"      '2 ký tự đuôi của số thứ tự
'--------------------------------------------------------------
N = Num Mod 100
'--------------------------------------------------------------
 If ((Abs(N) >= 10) And (Abs(N) <= 19)) _
     Or ((Abs(N) Mod 10) = 0) Then
     SoThuTu = Format(Num) & "th"
 Else
    SoThuTu = Format(Num) & Mid(ThuTu, _
    ((Abs(N) Mod 10) * 2) - 1, 2)
 End If
End Function
 

File đính kèm

  • Book2.xls
    21.5 KB · Đọc: 43
Bạn gõ ô đầu tiên là 1st xong kéo xuống OK luôn.
 
Bạn gõ ô đầu tiên là 1st xong kéo xuống OK luôn.
Tôi cũng hay dùng cách này nhưng có 1 điều tôi ko hiểu dc là thông thường nếu ta có thể fill dc kiểu đó thì đồng nghĩa là phương thức đã dc add vào Custom list... nhưng ở đây cái vụ 1st, 2nd.. này chẳng hề có trong Custom list... Vậy Excel dựa vào đâu để fill dc thế nhỉ?
ANH TUẤN
 
Nếu muốn dùng công thức thì đây, tuy hơi dài 1 chút... Nói chung cách đặt điều kiện cũng gần giống với Function của bạn ca_dafi:
Mã:
=A1&IF(OR(AND(MOD(A1-1,10)>=3,MOD(A1-1,10)<=9),MOD(INT((A1-1)/10),10)=1),"th",CHOOSE(MOD(A1,10),"st","nd","rd"))
ANH TUẤN
 
Lần chỉnh sửa cuối:
Có cách nào format cell kiểu bác Duong_VBA mà nó ra luôn ko hả các anh. Chứ gõ formula với VBA thì ko thích hợp về tốc độ trong cái em đang làm ... chỉ được làm trong một vài giây thôi ạ... em thi mà ... Em có một ô dữ liệu dạng number muốn đưa nó về dạng 1st, 2ndv.v.... chứ fill dữ liệu như của bác ca_dafi thì nhanh thật nhưng chỉ được hữu hạn trường thôi ạ.
 
Lần chỉnh sửa cuối:
Có cách nào format cell kiểu bác Duong_VBA mà nó ra luôn ko hả các anh. Chứ gõ formula với VBA thì ko thích hợp về tốc độ trong cái em đang làm ... chỉ được làm trong một vài giây thôi ạ... em thi mà ... Em có một ô dữ liệu dạng number muốn đưa nó về dạng 1st, 2ndv.v.... chứ fill dữ liệu như của bác ca_dafi thì nhanh thật nhưng chỉ được hữu hạn trường thôi ạ.

Tính tới thời điểm này thì yêu cầu của bạn chỉ có viết code hoặc công thức như anh ANHTUAN mới giải quyết được. Còn cách nhấp chuột kéo xuống thì có lẽ không khả thi trong trường hợp dữ liệu không theo thứ tự và đã có sẵn (ví dụ: 1,3,5,34,23,54,13 ==> 1st,3rd,5th,34th,23rd,54th,13th) Mình đang nghĩ cách khác, nhưng chưa ra.... +-+-+-+
 
Lần chỉnh sửa cuối:
Tính tới thời điểm này thì yêu cầu của bạn chỉ có viết code hoặc công thức như anh ANHTUAN mới giải quyết được. Còn cách nhấp chuột kéo xuống thì có lẽ không khả thi trong trường hợp dữ liệu không theo thứ tự và đã có sẵn (ví dụ: 1,3,5,34,23,54,13 ==> 1st,3rd,5th,34th,23rd,54th,13th) Mình đang nghĩ cách khác, nhưng chưa ra....
Đúng ra thì nó cũng có quy luật, nhưng mà quy luật khá quái gở, gần giống như kiểu quy luật đọc số của VN
1905: Một ngàn chín trăm lẻ năm
1915: Một ngàn chín trăm mười lăm
Khi thì năm, khi thì.. lăm.. khiến ta muốn.. cà lăm theo luôn
Nếu bạn nói rằng bạn đi thi và bạn muốn convert nhanh từ number thành Ordinary number thì tôi nghĩ cách ngắn gọn nhất chỉ còn nước tạo sẳn 1 list từ 1 đến 100 (gõ 1st vào 1 cell rồi kéo fill ra dc 100 cell)... tiếp theo là dùng INDEX với list này...
Như file đính kèm
Nhưng theo tôi cách này chẳng hay ho gì, bạn chỉ cần gỏ chử 1st vào cell nào đó, kéo fill xuống để tạo 1 list 100 cell, sau đó nhìn vào nó rồi tự tìm ra quy luật mà xây dựng hàm... Đấy mới chính là phương pháp học tập lâu dài
ANH TUẤN
 

File đính kèm

  • Ordinary.xls
    20.5 KB · Đọc: 30
Đánh số thứ tự

Chào các bạn!
Mình có một danh sách mà số tên cùng nhau rất nhiều chỉ khác số QL. Nhưng khi đánh số thứ tự nếu cùng tên nhau chỉ đánh một số. Các bạn giúp mình với, cám ơn các bạn rất nhiều!
 

File đính kèm

  • STT.rar
    80.3 KB · Đọc: 88
Chào các bạn!
Mình có một danh sách mà số tên cùng nhau rất nhiều chỉ khác số QL. Nhưng khi đánh số thứ tự nếu cùng tên nhau chỉ đánh một số. Các bạn giúp mình với, cám ơn các bạn rất nhiều!
Công thức thì làm sao có thể Merge cells dc hả bạn! Trừ phi dùng VBA
Vậy:
1> Nếu bạn chấp nhận ko merge cells thì ta dùng công thức
2> Nếu bạn nhất quyết phải merge cell giống như trong file thì phải dùng VBA
Tuy bạn quyết định (nhưng chỉ với mỗi việc đánh số TT thế thì có đáng để lập trình ko nhỉ?)
ANH TUẤN
 
Tạm thế này đi, dung hòa khỏi phải lập trình;
Mà chắc cũng tạm đáp ứng đượccc yêu cầu của bạn.

Thân!
 

File đính kèm

  • STT.7z
    69.7 KB · Đọc: 109
Lần chỉnh sửa cuối:
Tạm thế này đi, dung hòa khỏi phải lập trình;
Mà chắc cũng tạm đáp ứng đượccc yêu cầu của bạn.

Thân!
Nếu chấp nhận công thức như trên thì thử xem có công thức nào tổng quát từ B2 trở xuống (nghĩa là B2 ko dc gõ số 1), đồng thời ko dc sửa đổi giá trị trong cell B1 (hiện tại B1 đang =1)
Đại khái gõ vào B2 1 công thức nào đó và fill xuống là xong!
He... he...
Nhỏ mà hay đây!
ANH TUẤN
 
Nếu chấp nhận công thức như trên thì thử xem có công thức nào tổng quát từ B2 trở xuống (nghĩa là B2 ko dc gõ số 1), đồng thời ko dc sửa đổi giá trị trong cell B1 (hiện tại B1 đang =1)
Đại khái gõ vào B2 1 công thức nào đó và fill xuống là xong!
He... he...
Nhỏ mà hay đây!
ANH TUẤN

Tại ô B2 ta gõ:
Mã:
=IF(ROW()=2,1,IF(C2<>C1,MAX($A$1:A1)+1,""))
Sau đó fill công thức xuống.
Không biết như vậy có đúng ý anh chưa?
 
Tại ô B2 ta gõ:
Mã:
=IF(ROW()=2,1,IF(C2<>C1,MAX($A$1:A1)+1,""))
Sau đó fill công thức xuống.
Không biết như vậy có đúng ý anh chưa?

Sai!

Bỏ luôn ý tưởng ban đầu của bạn đưa ra câu hỏi. nếu công thức như thế thì những tên trùng nhau vẫn tăng lên như thường.

'''''''''''''''''''''''''''''''''''''''''''''''''
Ý của Bác Tuân vẫn làm được, mà chỉ có cái làm cho công thức nó gồng lên, nếu quá nhiều dòng thì góp phần cho file nặng hơn.
 
Tại ô B2 ta gõ:
Mã:
=IF(ROW()=2,1,IF(C2<>C1,MAX([COLOR=Red]$B$1:B1[/COLOR])+1,""))
Sau đó fill công thức xuống.
Không biết như vậy có đúng ý anh chưa?
Tạm dc nhưng cũng gần giống cách củ.. =IF(ROW()=2,1,... tương đương với gõ số 1 vào cell B2 thôi... (với lại dùng ROW() hình như ko ổn lắm)
Tôi cũng đang nghĩ mà chưa nghĩ ra... đúng là NHỎ MÀ HAY... he.. he...
ANH TUẤN
 
Ah... ah... Tìm ra rồi... Sao ta ko nghĩ ra công thức đếm duy nhất nhỉ?
Cú pháp của công thức đếm duy nhất là:
Mã:
=SUM(1/COUNTIF(Vung,Vung))
Vậy tại B2 ta dùng công thức mãng:
Mã:
B2 =IF(C2=C1,"",SUM(1/COUNTIF($C$2:$C2,$C$2:$C2)))
Ctrl + Shift + Enter rồi fill xuống
ANH TUẤN
 
Web KT
Back
Top Bottom