Tách và đếm các số từ hộp nhập Textbox

Liên hệ QC

Hoacomay96

Thành viên chính thức
Tham gia
18/3/08
Bài viết
96
Được thích
8
Các Tiền bối giúp em vấn đề sau với nhé. Em có thiết kế 1 form, trên đó có 1 textbox để nhập dữ liệu dạng số. Ví dụ 1,4,5,11,13,18,20,31,33,35...cách nhau bởi dấu ",".dữ liệu đó đựoc gán vào 1 ô cells. Vậy làm thế nào để đếm được dãy số nhập đó có bao nhiêu số và tách đươcj các số đó ra để gán lần luọt vào các ô cells trên 1 cột của bảng tính ? (dãy số luôn thay đổi số lượng theo người nhập)
 
Vì mổi số cách nhau bởi dấu phầy nên thay vì đếm số, bạn đếm dấu phẩy là xong! Tách lấy số cũng dựa trên đặc điểm dấu phẩy này... Quá dể...
Ko có đặc điểm gì còn tách ra dc nữa là...
ANH TUẤN
 
Upvote 0
Em không biết nhiều về chuỗi lắm, anh viết cụ thể giúp em với.cách đếm dấu "," và tách lây số trong chuỗi như thế nào ạ?
 
Upvote 0
Ví dụ A1 là cell chứa chuổi của bạn: 12,15,13,1 chẳng hạn
Tại 1 cell nào đó bạn gõ công thức
Mã:
=SUMPRODUCT((MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)=",")*1)
Đây chính là công thức đếm xem trong A1 có bao nhiêu dấu phẩy
Còn việc tách số thì trên diển đàn đã có rất nhiều... Bạn search xem nhé!
ANH TUẤN
 
Upvote 0
Cảm ơn anh AnhTuan nhiều. Anh cho em đúng công thức rồi.Chúc anh luôn luôn mạnh khỏe để truyền dạy kiến thức cho mọi người.
 
Upvote 0
Ví dụ A1 là cell chứa chuổi của bạn: 12,15,13,1 chẳng hạn
Tại 1 cell nào đó bạn gõ công thức
Mã:
=SUMPRODUCT((MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)=",")*1)
Đây chính là công thức đếm xem trong A1 có bao nhiêu dấu phẩy
Còn việc tách số thì trên diển đàn đã có rất nhiều... Bạn search xem nhé!
ANH TUẤN

Anh ANH TUAN ơi cho em hỏi tí xíu:
Indirect("1:"&Len($A1)) Là một mảng giá trị phải không
Như ví dụ trên thì công thức indirect này sẽ cho ra mảng giống như thế này phải không anh:
[
1
2
,
1
5
,
1
3
,
1
]

Row(Indirect("1:"&len($A1))) là cho ra giá trị của dòng thứ mấy trong mảng đó phải không anh.

Em rất muốn học hỏi từ anh về các công thức loại này. Vì những gì anh viết thực sự hớp hồn người khác. Quả thật bái phục.
 
Upvote 0
He... he... cái này y chang với For i = 1 to... mấy mấy (chưa biết là mấy)... vậy nếu dùng VBA có phải bạn sẽ to --> LEN(..) hay ko?
Tôi dùng công thức cũng vậy thôi... Nếu tôi biết trước LEN(...) = 100 thì tôi sẽ ghi là: ROW(1:100)
Cái hàm ROW trong trường hợp này thật ra chẳng có ý nghĩa gì liên quan đến khái niệm dòng cột cả.. chẳng qua tôi muốn tạo 1 chuổi số đếm 1, 2, 3... vân vân...
Vậy mình suy ngược lại nhé:
INDIRECT("1:"&LEN(...)) sẽ bằng với INDIRECT("1:100") nếu LEN(..) =100
ROW(INDIRECT.... ))) sẽ bằng ROW(1:100) <=> số đếm từ 1 đến 100
Và nguyên con:
MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)
sẽ là 1 mãng giá tri như bạn nói
Thế thôi
Thấy ghê gớm thế thôi, thật ra y chang với VBA nếu bạn dùng thuật toán quét từng ký tự bằng vòng lập FOR, khi gặp dấu phẩy thì tăng 1 biến K nào đó lên 1
Hi... hi...
PHP:
Chw = Range("A1").Value
For i = 1 to Len(Chw)
   If Mid(Chw,i,1) = ....
   ......
Cố gắng mường tượng xem chúng có giống nhau ko?
ANH TUẤN
 
Lần chỉnh sửa cuối:
Upvote 0
Bác Anh tuan ơi cho em hỏi. em có 6 hộp nhập text box được gán vào 6 ô cells, thì làm sao mà tách được từng số trong 6 chuỗi kí tự đó.Các kí tự cách nhau dấu ",". em đã tìm trên diễn đàn hoài mà không áp dụng được. anh lại giúp em với nhé .em phải dùng 6 vòng lặp for cho từng text box nhưng như thế thì phức tạp quá, anh có cáh nào nhanh và gọn hơn không chỉ em với .
 
Upvote 0
Nếu bạn đã có code tách số rồi thì tôi nghĩ bạn ráp 6 cell ấy lại với nhau rồi dùng 1 vòng lập thôi là dc chứ gì
ANH TUẤN
 
Upvote 0
Web KT

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

Back
Top Bottom