Thêm khoảng trắng vào text (1 người xem)

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

Người dùng đang xem chủ đề này

TKT

Thành viên tiêu biểu
Tham gia
2/1/08
Bài viết
673
Được thích
1,336
Nghề nghiệp
.....
Xin hỏi các anh chị .
Giả sử mình có cột mã số thuế (có 10 số)
ô A1 :0303572126
ô A2 :0409735345
.......

ô A100:0304050785

Bây giờ mình muốn thêm khoảng trắng vào giữa 2 số, chẳng hạn như:

ô A1 : thể hiện 0 3 0 5 7 2 1 2 6 thay cho 030572126
Các ô còn lại cũng như vậy. Xin chỉ cách nhanh nhất để thật hiện. Xin cám ơn các anh chị
 
Bạn ơi mã số thuế đôi lúc 13 số nữa đấy ví dụ : 0305060456-001.
Nếu có chi nhánh.
Như vậy chắc khó lắm. Lúc đầu mình nghĩ sử dụng hàm left right mid và nối chuỗi, nhưng mã số thuế dao động từ 10-14 ký tự . Cha cha không biết phải làm sao
 
Bạn dùng đoạn code này :
PHP:
Function them(mst)
Dim kq As String
For i = 1 To Len(mst)
tam = Mid(mst, i, 1)
kq = kq & tam & " "
Next i
them = Trim(kq)
End Function

cell B1: = them(A1)
 
Ai làm dc bài này bằng 1 công thức duy nhất ko có cột phụ thì xem như đũ món ăn chơi... Hic... Tôi thì đành bó bột.. vì nó rất giống với 1 chủ đề mà tôi đang quan tâm: Ráp các phần tử trong 1 mãng vào 1 cell... Trong khi bài này dùng VBA thì quá OK và nhẹ nhàng
----------------------
Trong trường hợp đặc biệt, nếu như số đã cho có độ dài nhỏ nhỏ 9 ký tự thì tôi nghĩ tôi có thể làm nó bằng công thức đấy!
Đặt 2 name:
Mã:
TACH =1*MID(Sheet1!$A1,ROW(INDIRECT("1:"&LEN(Sheet1!$A1))),1)
THEM0 =10^(2*(LEN(Sheet1!$A1)-ROW(INDIRECT("1:"&LEN(Sheet1!$A1)))))
Cuối cùng là công thức:
Mã:
=SUBSTITUTE(SUMPRODUCT((TACH)*(THEM0)),0," ")
ANH TUẤN
 
Lần chỉnh sửa cuối:
Công thức Anhtuan cao cấp quá tôi làm theo mà chưa được, tôi làm các công thức cơ bản left, mid và nối chuỗi, công thức dài thòn lòn luôn hic.hic..
 

File đính kèm

Làm chơi cho vui thôi... thật ra công thức cũa tôi vẫn chưa chính xác đâu...
Việc cắt chuổi theo 1 d/k nào đó cũng ko khó lắm, cái khó là phải đưa ra dc 1 công thức tổng quát với mọi độ dài chuổi... Hic... hơi tê
-------------
Tôi thấy trong file cũa bạn có đặt name giống như tôi đã nói ở trên.. tuy nhiên, có lẽ kết quã sai là ở 2 điểm:
1> Do trong name có dùng tham chiếu tương đối nên khi đặt name con trỏ chuột cũa bạn bắt buộc phải ở vị trí dòng thứ nhất
2> Tên name là THEM0 chứ ko phải THEMO (số 0 chử ko phải chử O)
ANH TUẤN
 
anhtuan1066 đã viết:
Tôi thấy trong file cũa bạn có đặt name giống như tôi đã nói ở trên.. tuy nhiên, có lẽ kết quã sai là ở 2 điểm:
1> Do trong name có dùng tham chiếu tương đối nên khi đặt name con trỏ chuột cũa bạn bắt buộc phải ở vị trí dòng thứ nhất
2> Tên name là THEM0 chứ ko phải THEMO (số 0 chử ko phải chử O)
Hic.hic.. do đang tìm hiểu về Name nên thấy bài Anhtuan là làm theo vì thấy Anhtuan là chuyên gia sử dụng Name mà, mặc dù làm theo mà không hiểu gì nên mới sai như thế đấy. Sẵn đây nhờ Anhtuan giải thích dùm luôn ý nghĩa 2 cái Name đó nhé và nhất là cái hàm Indirect trong Name, cũng đã tìm hiểu mà cũng chưa chịu hiểu +-+-+-+ .
TACH =1*MID(Sheet1!$A1,ROW(INDIRECT("1:"&LEN(Sheet1!$A1))),1)
THEM0 =10^(2*(LEN(Sheet1!$A1)-ROW(INDIRECT("1:"&LEN(Sheet1!$A1)))))​
 
Ái chà... chết tôi mất...
2 name này hoàn toàn giống thuật toán FOR trong VBA đấy đồng chí à...
Nói thằng em TACH trước nhé:
1> Công đoạn này là tách ra từng số trong A1 bằng hàm MID....
2> Vậy có phãi là =MID(A1, i , 1) (như trong VBA viết như vậy)... lấy ký tự thứ i trong A1 với i chạy từ 1 đến hết chuổi...
3> Nói thêm về ROW 1 chút: ví dụ hàm mãng =ROW(1:10) sẽ cho ta 1 mãng gồm các số từ 1 đến 10
3> Giờ thế i vào chính là ROW(1: .... bao nhiêu đây?).... Do ta ko biết trước dc chuỗi dài bao nhiêu nên đành phải dùng LEN(...) đễ định vị...
4> Tất nhiên ta ko thể biểu diển công thức theo kiễu =ROW(1:LEN(A1)) dc rồi... Excel sẽ ko tài nào hiểu nỗi... Nên lại đành phải thêm thằng em INDIRECT vào, tức =ROW(INDIRECT("1:"&LEN(....)))
Nếu bạn chưa hiểu về INDIRECT thì có thể thí nghiệm... Ví dụ tại A1 bạn gõ cái gì đó vào... Tại 1 cell khác bạn gõ công thức = INDIRECT("A1") xem nó ra cái gì... Có thể nói đại khái rằng INDIRECT biến chuổi ký tự thành giá trị mà địa chỉ cell trong chuỗi hoặc công thức trong chuổi trã về
Còn thằng em THEM0 ấy à?... Đó chỉ là cách tôi nhân thêm mỗi ký tự số với 10 lũy thừa bao nhiêu đó đễ có thể lòi ra dc số 0 chen giữa.. (chỉ là tính toán thôi mà)
Nói chung nếu dùng VBA đễ làm thì hắn làm thế nào tôi làm thế nấy, chỉ là cách biểu diển có khác nhau 1 chút thôi... (đồng chí mà hiểu về VBA thì quá ngon lành rồi... Hiểu 1 cách dễ dàng luôn)
Ở đây chúng ta chỉ bàn về ý nghĩa cũa name thôi chứ thực ra là cách làm nầy chưa chính xác đâu... Sẽ sai khi trong cell A1 có tồn tại số 0
Hic... Hic... Khó giãi thích quá đi
ANH TUẤN
 
Rất cám ơn Anhtuan, qua giải thích thấy cách kết hợp các công thức lại rất hay, thực lòng thì chưa thể hiểu hết được nhưng cũng đã hiểu được ý nghĩa của 2 name đó rồi và đủ học hỏi thêm mấy cái rất hay trong cách lồng nhiều hàm, thấy Anhtuan giải thích cũng được đấy chứ, sẽ còn học hỏi Anhtuan nhiều về công thức. VBA thì tôi bó bột!$@!!
 
Web KT

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

Back
Top Bottom