Đếm các giá trị số và chữ ở các cột. (1 người xem)

Liên hệ QC

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

anhhaili

Thành viên mới
Tham gia
7/5/10
Bài viết
20
Được thích
0
Mình muốn đếm các giá số ở côt1 và cột2 rồi đưa vào côt3 mà không biết làm như thế nào, mong mọi người giúp đỡ!
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    14.1 KB · Đọc: 52
Mình muốn đếm các giá số ở côt1 và cột2 rồi đưa vào côt3 mà không biết làm như thế nào, mong mọi người giúp đỡ!

Thử vầy:
Mã:
=SUMPRODUCT(LEN(A2:B2)-LEN(SUBSTITUTE(SUBSTITUTE(A2:B2,",",""),".",""))+1)-COUNTBLANK(A2:B2)
 
untitled1.JPGcác số trong cột 1 và cột 2 được cách nhau bởi dấu phẩy(,) và dấu chấm(.) Mình không biết cách dùng hàm như thế nào cho đúng! Mong mọi người giúp đỡ!

Thử vầy:
Mã:
=SUMPRODUCT(LEN(A2:B2)-LEN(SUBSTITUTE(SUBSTITUTE(A2:B2,",",""),".",""))+1)-COUNTBLANK(A2:B2)




Cảm ơn thầy đã chỉ giúp! vẫn còn một vấn đề mong thầy chỉ giúp cho là khi sum các cột ở giá trị đếm được thì kết quả không đúng !
 
Lần chỉnh sửa cuối:

File đính kèm

Nhờ thầy xem và chỉ giúp em cách đếm các số ở 2 cột trong file đính kèm! xin cảm ơn!

Lỗi là do dữ liệu của bạn chứ không phải do công thức
Để ý cell C112, dữ liệu trong cell là 92,116 ---> Thực chất cái dấu phẩy này không phải bạn tự gõ mà do format cell tạo thành ---> Hãy nhìn lên thanh Formula sẽ thấy giá trị của cell C112 là 92116 (không hề có dấu phẩy nào cả)
Tương tự cho lỗi ở các cell khác
 
1.Bên bộ phận nhập dữ liệu lúc thì dùng dấu (,) lúc thì dùng dấu (.)
2.cả 2 cột đều có số cây và có dấu(,) hoặc dấu(.) thì hàm đếm giá trị lại cho kết quả sai.
Nhờ các thầy chỉ giúp em với! hic.
 
thầy cho em hỏi cái này xíu. làm sao khi chuyển kiểu dữ liệu từ number sang text vẫn giữ nguyên dấu(,) hoac dau(.) vây?
 
thầy cho em hỏi cái này xíu. làm sao khi chuyển kiểu dữ liệu từ number sang text vẫn giữ nguyên dấu(,) hoac dau(.) vây?

Tôi không biết có cách nào làm bằng tay không, nhưng nếu là tôi thì tôi dùng VBA để chuyển bằng code này:
PHP:
Sub GetFormat()
  Dim rCel As Range, rng As Range
  Dim sFormat As String
  Set rng = Selection
  For Each rCel In rng
    sFormat = rCel.Text
    If IsNumeric(sFormat) Then
      rCel.Value = "'" & sFormat
    Else
      rCel.Value = sFormat
    End If
  Next
End Sub
- Cho code trên vào 1 Module
- Quét chọn vùng dữ liệu cần chuyển rồi chạy code
 
Tôi không biết có cách nào làm bằng tay không, nhưng nếu là tôi thì tôi dùng VBA để chuyển bằng code này:
PHP:
Sub GetFormat()
  Dim rCel As Range, rng As Range
  Dim sFormat As String
  Set rng = Selection
  For Each rCel In rng
    sFormat = rCel.Text
    If IsNumeric(sFormat) Then
      rCel.Value = "'" & sFormat
    Else
      rCel.Value = sFormat
    End If
  Next
End Sub
- Cho code trên vào 1 Module
- Quét chọn vùng dữ liệu cần chuyển rồi chạy code

Code này của bạn sẽ chuyển 12345678-->'12345678
Cho mình hỏi là có cách nào để chuyển thành 12.345.678 không ?
Mình đang copy dữ liệu từ exel sang word nhưng cứ phải thêm dấu "." thế này thì mất thời gian quá.
Thanks!
 
Code này của bạn sẽ chuyển 12345678-->'12345678
Cho mình hỏi là có cách nào để chuyển thành 12.345.678 không ?
Mình đang copy dữ liệu từ exel sang word nhưng cứ phải thêm dấu "." thế này thì mất thời gian quá.
Thanks!
Sao bạn kg Format 123456,789 thành 123.456,789 rồi chạy code
 
Code này của bạn sẽ chuyển 12345678-->'12345678
Cho mình hỏi là có cách nào để chuyển thành 12.345.678 không ?
Mình đang copy dữ liệu từ exel sang word nhưng cứ phải thêm dấu "." thế này thì mất thời gian quá.
Thanks!

Các bạn thử làm như mình nha:
Mình sử dụng VBA để thực hiện. Mở file Excel rồi nhấn Alt+F11 mở VBA Edit.

Bước 1 : Thêm 1 Module: Vào Insert--Chọn Module

Bước 2 : Tham chiếu thư viện đối tượng có liên quan. Vàọ Tools--Chọn References
Trên hộp thoại hiện ra như trong sheet mình đã chèn hình.
Nhấn vào Browser---Tìm chọn FM20.DLL rồi OK.

Bước 3: Chép Code sau vào Module thêm ở bước 1. Đóng VBA Edit.
Mã:
Sub Copy_Format()
Dim Num As Variant
Dim Dt As Object
Set Dt = New DataObject
If Not IsNumeric(ActiveCell.Value) Then
MsgBox "O chon khong phai dang so !"
Exit Sub
End If
Num = ActiveCell
Num = Format(Num, "#,##0.00")
If Application.DecimalSeparator = "," Then _
Num = Replace(Replace(Replace(Num, ".", "#"), ",", "."), "#", ",")
Dt.SetText Num
Dt.PutInClipboard
End Sub



Bước 4: Nhấn Alt+F8 rồi chọn vẹt sáng vào Macro vừa chép vào. Nhấn nút Option để khai báo phím tắt ví dụ Ctrl+m chẳng hạn.

Giờ thì bạn có thể thử được rồi . Tại ô cần chép số nhấn Ctrl+m. Sang ô khác hay sang Word nhấn Ctrl+v để dán vào. Kết quả sẽ theo ý bạn. Các bạn chỉnh lại code để có thể chép 1 ô hay cả vùng nha
 

File đính kèm

Lần chỉnh sửa cuối:
Các bạn thử làm như mình nha:
Mình sử dụng VBA để thực hiện. Mở file Excel rồi nhấn Alt+F11 mở VBA Edit.

Bước 1 : Thêm 1 Module: Vào Insert--Chọn Module

Bước 2 : Tham chiếu thư viện đối tượng có liên quan. Vàọ Tools--Chọn References
Trên hộp thoại hiện ra như trong sheet mình đã chèn hình.
Nhấn vào Browser---Tìm chọn FM20.DLL rồi OK.

Anh có thể bỏ qua bước 2 và thay đoan:
Set Dt = New DataObject
Thành
Set Dt = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
------------
Có điều em đang thắc mắc: Không biết code này dùng để làm gì? Vì thực chất dấu phẩy hay dấu chấm đâu có quan trọng. Mục đích cuối cùng của chủ topic này là muốn xem các dấu chấm hoặc phẩy nó chia số ra làm bao nhiêu phần thôi
Ví dụ:
12.123 ---> Kết quả = 2 (dấu chấm chia số ra làm 2 phần)
12,123,456.78 ---> Kết quả = 4 (dấu chấm và phẩy chia số ra làm 4 phần)
vân vân
 
Set Dt = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

Hôm nay mình mới biết chiêu này đấy. Ndu viết rõ hơn và mở rộng cho các đối tượng khác được không.
Bài trước là theo ý bạn Loan 1989 để chép số từ Exc sang Word tự động chấm phân cách tay cho phảy phân cách mà không lệ thuộc Region Setting và không làm ảnh hưởng đến định dạng gốc
 
Lần chỉnh sửa cuối:
Hôm nay mình mới biết chiêu này đấy. Ndu viết rõ hơn và mở rộng cho các đối tượng khác được không.

Cái này mình cứ tham khảo các trang web nước ngoài thôi anh à
(gần như đối tượng nào cũng có thể viết theo kiểu CreateObject("...") được cả)
 
Web KT

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

Back
Top Bottom