Bỏ dấu ' trong excel

Liên hệ QC
À em quên một điều kiện quan trọng nữa là nếu vùng chọn vừa có kiểu số, vừa có kiểu chữ, thì trước tiên ta phải format toàn bộ cells vùng đó là text rồi thực hiện thao tác paste như bên dưới thì mới có hiệu quả.
 
Vậy là anh hai2hai muốn trong Cell thể hiện là '21334 có phải không?
 
Vậy thì đơn giản rồi anh à! anh gõ dấu nháy ['] này vào ô trống bất kỳ. Sau đó copy ô này (Ctrl+C). Chiếu sáng (Đánh khối) toàn bộ vùng muốn thêm dấu nháy đơn này vào và chọn Paste Special ---> Add (Alt+E, S, D). Anh test thử xem nhé!
Nói đừng buồn nhé,
Cái này mà em dám nói là làm được thì anh cũng thua chứ ở đó mà em bày cho anh Hai2hai làm!

Ngay cả khi:
À em quên một điều kiện quan trọng nữa là nếu vùng chọn vừa có kiểu số, vừa có kiểu chữ, thì trước tiên ta phải format toàn bộ cells vùng đó là text rồi thực hiện thao tác paste như bên dưới thì mới có hiệu quả.
Vẫn không thể nào Add cái dấu ' đó vào được. Excel chỉ chấp nhận Add một giá trị số thôi.
(Mà nếu đã Format là Text rồi thì cần quái gì đưa thêm cái dấu ' vào nữa?)
 
Lần chỉnh sửa cuối:
Vậy là anh hai2hai muốn trong Cell thể hiện là '21334 có phải không?

Mong muốn: Trên cell thể hiện là 21334, nhưng F2 thì nó thể hiện '21334

Đã thử Format cả vùng (cần thêm nháy) trước là dạng text rồi. Khi paste vào, chỉ có dòng là text mới thêm nháy lúc bấm F2 (') thôi, dòng là số thì ko có kết quả như ý.

Cái này mà em dám nói là làm được thì anh cũng thua chứ ở đó mà em bày cho anh Hai2hai làm!

Sao vậy? Mình gần đạt được mong muốn rồi, chỉ còn mỗi vấn đề là các dòng dạng số nữa mà thêm được (') là xong.

Thanks All!
 
Lần chỉnh sửa cuối:
Mong muốn: Trên cell thể hiện là 21334, nhưng F2 thì nó thể hiện '21334

Đã thử Format cả vùng (cần thêm nháy) trước là dạng text rồi. Khi paste vào, chỉ có dòng là text mới thêm nháy lúc bấm F2 (') thôi, dòng là số thì ko có kết quả như ý.

Anh xem file đính kèm. Em vừa làm xong đó.
 

File đính kèm

Nói đừng buồn nhé,
Cái này mà em dám nói là làm được thì anh cũng thua chứ ở đó mà em bày cho anh Hai2hai làm!

Khà khà, vậy cái này đem đi thi lúc sinh nhật GPE mình thì hay biết mấy anh BNTT ha!


PS: Có ai test thử làm được như mình chưa nhỉ!
 
Anh xem file đính kèm. Em vừa làm xong đó.

Tất cả các dòng ở vùng tô đen lại ko có dòng nào chỉ có số (ví dụ: 12345) cả.

Trước khi paste, mình đã format cả vùng đó dạng text rồi mà!

12345asasa thì nó lại là dạng text, cái đó thì OK rồi mà. Vấn đề là trong đống đó lại có dòng 12345 thôi.

ca_dafi thử lại xem.

Thanks much!

P/S: Nhân tiện bài này, đây cũng là 1 vấn đề mình muốn nói thêm. Khi lập trình, bao giờ cũng phải vét cạn hết các trường hợp kiểu như vậy. Ví dụ, ở trường hợp trên, dữ liệu mình tính tới phải bao gồm tất cả các dạng dữ liệu (số, chữ,...) để khi chạy ở khách hàng sẽ hạn chế những trường hợp mà mình ko tính đến. Mọi khi chức năng Import mình chạy phe phé. Xong, mình tiếp tục thử bằng cách thử nhập liệu với nhiều dạng dữ liệu khác nhau chứ ko chỉ 1 dạng và lúc đó phần mềm lại ko import được những dòng đó. Nếu mình ko test kỹ như vậy, đến lúc làm cho KH thì sẽ ko import được, vừa mất thời gian, vừa mất uy tín với KH.
 
Lần chỉnh sửa cuối:
Được mà anh BNTT...............
To anh hai2hai :Anh chuyển số sang text là được (Anh định dạng cột đó là text trước rồi gõ số vào)
 
Lần chỉnh sửa cuối:
Chịu thua thôi... Sao anh không tài nào mà Add thêm cái dấu ' vào.
Lấy cái bài của Ca_Dafi gửi, xóa bớt đi vài dấu ', rồi thử Paste Special vào như em nói, nó hổng chịu vào, là sao ?
Hay là tại vì Excel 2007 ?
 
Được mà anh BNTT...............
To anh hai2hai :Anh chuyển số sang text là được

Sau khi chuyển cột đó sang dạng text, phải Double click vào tất cả các ô số đó để nó xuất hiện thêm cái tag màu xanh. Sau đó Paste Special thì được. Như thế hơi mất công nhỉ.

OK. Vậy là mọi chuyện được giải quyết.

Thanks all & Bye bye (muộn quá, h2h phải về đây)
 
Chịu thua thôi... Sao anh không tài nào mà Add thêm cái dấu ' vào.
Lấy cái bài của Ca_Dafi gửi, xóa bớt đi vài dấu ', rồi thử Paste Special vào như em nói, nó hổng chịu vào, là sao ?
Hay là tại vì Excel 2007 ?
Đã thử trên Excel207, nó không ép phê!
Excel2003 thì tốt
 
Tất cả các dòng ở vùng tô đen lại ko có dòng nào chỉ có số (ví dụ: 12345) cả.

Trước khi paste, mình đã format cả vùng đó dạng text rồi mà!

12345asasa thì nó lại là dạng text, cái đó thì OK rồi mà. Vấn đề là trong đống đó lại có dòng 12345 thôi.

ca_dafi thử lại xem.

Thanks much!

P/S: Nhân tiện bài này, đây cũng là 1 vấn đề mình muốn nói thêm. Khi lập trình, bao giờ cũng phải vét cạn hết các trường hợp kiểu như vậy. Ví dụ, ở trường hợp trên, dữ liệu mình tính tới phải bao gồm tất cả các dạng dữ liệu (số, chữ,...) để khi chạy ở khách hàng sẽ hạn chế những trường hợp mà mình ko tính đến. Mọi khi chức năng Import mình chạy phe phé. Xong, mình tiếp tục thử bằng cách thử nhập liệu với nhiều dạng dữ liệu khác nhau chứ ko chỉ 1 dạng và lúc đó phần mềm lại ko import được những dòng đó. Nếu mình ko test kỹ như vậy, đến lúc làm cho KH thì sẽ ko import được, vừa mất thời gian, vừa mất uy tín với KH.

Đúng thực là dạng thuần số thì không làm được. Nhưng anh cho em nợ nhé, chắc phải có cách giải quyết chứ lị.

Ví dụ như add vào ký tự cuối mỗi cell là một chữ không đụng hàng (mục đích cho nó thành text) sau đó dùng paste special như bên dưới, rồi replace cái chữ không đụng hàng này thành rỗng. Đại khái là vậy, nhưng cách này e không hay
 
Các anh chị cho em hỏi trong excel khi e down 1 dữ liệu trong phần mềm ra thì ở đầu những con sồ xuất hiện dấu phẩy VD '0101018067 vậy làm sao để mầt dấu phầy này đi. E cám ơn các anh chị nhiều ạ

A1 chứa giá trị chữ số '0101018067
B1 gõ công thức =A1

Không cần hàm hiếc gì cả.

- Mình không thành thạo Excel (Nói thật đấy - Có Tuân làm kiểm chứng nhé --=0)
- Nếu dùng hàm Text() thì e ko đúng ý mình lắm.

Bài toán cụ thể thế này:

Mình có 1 Sheet có tên là InventoryItem (cái này ko quan trọng, nói để hình dung thôi). Trong Sheet đó, mình có 2 cột (ví dụ thế): InventoryItemID (Cột 1), InventoryItemName (Cột 2)

Trong chương trình, cả 2 cột đều dạng Text cả (thực tế là Varchar)
Trên Sheet mình đã format 2 cột đó là Text rồi (chứ ko để là General đâu)

Ở Sheet đó mình gõ trực tiếp các dòng sau

12345678 Item 1
abc12345 Item 2

Thế mà khi Import vào chương trình, dòng thứ nhất thì OK ko sao, dòng thứ 2 nó ko nhận ra "abc12345" mà chỉ nhận giá trị NULL. (Mình nghĩ khi detect dòng thứ nhất nó hiểu là cột số, đến dòng thứ 2 nó tiếp tục hiểu là cột số nên nó mới trả lại giá trị NULL)

Mình kiểm tra mãi mới phát hiện ra nếu mình nhập như sau thì mọi việc OK

'12345678 Item 1
'abc12345 Item 2

Tức là, thêm dấu nháy (') vào trước các dữ liệu của cột InventoryItemID thì mọi việc đều tốt đẹp khi Import dữ liệu (khi thêm vào, nếu ko ở chế độ editing thì không nhìn thấy dấu nháy)

Tuy nhiên, dữ liệu của khách hàng có cực nhiều trên mỗi Sheet, và có rất nhiều Sheet có cột ID như vậy, nên ko thể gõ thêm dấu nháy (') cho từng dòng được.

Cho nên, mình muốn (làm bằng tay thôi, ko hàm hiệc, code kiệc gì cả, làm sao không thêm cột nào thì tốt vì file Excel đó là template (chuẩn) để Import rồi) mà có thể nhét dấu nháy (') vào tất cả các dòng của cả cột mà mình muốn làm.

Thanks in advance.

P/S:
Nếu dùng hàm text (=TEXT(B3,"'@")) thì nó lại hiện cả dấu nháy (') khi ko ở chế độ editing chứ ko phải như lúc mình gõ dấu ' lúc bấm F2

Hình như có 1 giải pháp khác là mình Format cột đó là Text.
Sau khi copy từ cột dữ liệu ở file của khách hàng, mình cột dữ liệu đó và paste special sang cột của mình values only (vẫn giữ nguyên format của mình). Hy vọng mọi chuyện sẽ giải quyết được. :)

Cách 1: dùng công cụ A-Tools, dùng lệnh trên thanh toolbar "Number To Text" (vì anh không muốn dùng hàm hay cót két gì mà :-= )

Cách 2: Dùng ADO kết nối CSDL Excel.
Khi dùng Connectionstring để kết nối với CSDL Excel theo Excel ODBC driver. Bắt đầu từ phiên bản MDAC 2.1 trở đi, hệ thống luôn quét (ngầm định) 8 dòng đầu tiên của Excel để xác định kiểu dữ liệu trong một trường (vì Excel có kiểu dữ liệu tự do, các engine DB không nhận kiểu dữ liệu qua Format của Excel). Như vậy để xác định giới hạn về số dòng trong một bảng tính để xác định kiểu giá trị (thay đổi ngầm định là 8) anh dùng property Rows to Scan (MaxScanRows).

Nếu em muốn quét 2 dòng để nhận dạng giá tr thì cú pháp có dạng như sau:

Mã:
Dim cn as ADODB.Connection
Set cn = New ADODB.Connection
With cn
	.Provider = "Microsoft.Jet.OLEDB.4.0"
	.ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=Excel 8.0; [B]MaxScanRows = [COLOR="Red"]2[/COLOR][/B]"
	.Open
End With

Nếu em có cột giá trị

12345
23456
abcde

ODBC sẽ nhận ra cột này thuộc dạng Numberic , khi đó chắc chắn quá trình import sẽ mắc lỗi ở dòng 3 (vì là VarChar/Text).

Nếu muốn ăn chắc thì khai báo tham số MaxScanRows = 0 thì ODBC sẽ quét cả cột để xác định kiểu giá trị cho cột.

P/S: hic, viết một lô rồi mới nhớ là "không dùng cót két gì cả :-=)
 
Lần chỉnh sửa cuối:
Đã thử trên Excel207, nó không ép phê!
Excel2003 thì tốt

Đúng là vậy anh à. Excel 2007 không làm cách này được.

Nếu vậy, em nghĩ không dùng hàm hiếc hoặc code kiết chắc khó làm quá!

To hai2hai: anh dùng hàm đơn giản được không anh?
Cách này dùng cho cả excel 2003 và 2007:
Giả sử cột A chứa dữ liệu:

1. Cột B gõ vào: ="'"&[A]
2. Kéo công thức xuống
3. Dán cứng cột B lại
4. Tìm và thay thế ký tự "'" bên cột B.
5. Copy cột B, paste all qua cột A
6. Delete cột B.

Điểm yếu của cách này là dùng hàm nối chuỗi & và thao tác hơi bị nhiều.
Điểm mạnh là ...hehe thỏa mãn yêu cầu của anh hai2hai.
 
Với trình độ lập trình như anh hai2hai thì tốt nhất là xử lý tại gốc của kết nối ADO! Mấy vụ format hay cót két trong Excel chắc mất thời gian quá :-=.
 
Nếu Haì2hai chịu xài ASAP (cũng là code kiết nhưng viết sẵn) thì có đấy:
Vào menu ASAP Utilities - Number - Convert Number to Text (Adding ' in front)
5 giây, kể cả mở Menu! ASAP là As Soon As Possible mà!

Có điều nó là cọt kẹt nên không có Undo.
 
Nếu Haì2hai chịu xài ASAP (cũng là code kiết nhưng viết sẵn) thì có đấy:
Vào menu ASAP Utilities - Number - Convert Number to Text (Adding ' in front)
5 giây, kể cả mở Menu! ASAP là As Soon As Possible mà!

Có điều nó là cọt kẹt nên không có Undo.

Không phải mình dùng, mà là khách hàng dùng. Mình hỏi việc này để hướng dẫn cho KH tự xử lý dữ liệu trước khi Import dữ liệu từ file Excel (theo chuẩn mà mình đã công bố) vào phần mềm (vì thế mới ko cần cốt kiệc hay cái gì quá phức tạp - tiêu chí là càng đơn giản càng tốt - để đỡ tốn tiền điện thoại --=0 - vì đa số KH của mình họ tự triển khai phần mềm dưới sự hỗ trợ từ xa nhằm tiết kiệm chi phí cho việc triển khai mà).

Cách của ca_dafi quả thực là đơn giản để KH có thể tự thực hiện được. Thanks All!
 
Cũng liên quan đến chủ đề này, em có một khó khăn :
Việc định dạng của excel rất lung tung, chính vì vậy rất dễ nhầm lẫn khi xử lý mấy dữ liệu nửa số nửa text. (Số hiệu tài khoản chẳng hạn)

Vậy có cách nào để excel luôn hiểu nó (Số hiệu tài khoản) là Text ???
(Em đang dùng giải pháp là : thêm vào trước số hiệu tài khoản ký tự "_" híc híc)

Thân!
 
Cũng liên quan đến chủ đề này, em có một khó khăn :
Việc định dạng của excel rất lung tung, chính vì vậy rất dễ nhầm lẫn khi xử lý mấy dữ liệu nửa số nửa text. (Số hiệu tài khoản chẳng hạn)

Vậy có cách nào để excel luôn hiểu nó (Số hiệu tài khoản) là Text ???
(Em đang dùng giải pháp là : thêm vào trước số hiệu tài khoản ký tự "_" híc híc)

Thân!

Trước tiên định dạng cả vùng tài khoản về dạng Text sau đó mới nhập thì Excel luôn là hiểu là Text.
 
Trước tiên định dạng cả vùng tài khoản về dạng Text sau đó mới nhập thì Excel luôn là hiểu là Text.


Đành là như vậy, nhưng trong lúc xóa vùng và xóa ô liên tục, nhiều khi copy . . . excel lại tự động chuyển thành number. Phức tạp thật.

Chẳng lẽ phải tạo 1 hàm nhằm convert Tài khoản sao cho khi nhập vào excel thì luôn có dấu " ' " đằng trước. (Việc tạo hàm này thì đơn giản, tuy nhiên mỗi lần như thế lại phải gọi nó ra thì hơi phiền)

Có cách nào khác không nhỉ ???

Thân!
 
Web KT

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

Back
Top Bottom