Xin giúp mình hàm đếm trong một chuỗi ký tự (1 người xem)

Liên hệ QC

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

nguyendu277

Thành viên chính thức
Tham gia
7/1/11
Bài viết
51
Được thích
5
Ví dụ mình có một chuỗi số như sau:

1,5,7,9-20,22,25,27-35,37,38,40-50

Xin các bạn giúp mình viết hàm đếm để cho kết quả là: 39

Mỗi số cách nhau bằng dấu phẩy và dấu gạch ngang hiểu là nó liền từ số đến số. và trong chuỗi này có thể phát sinh ký tự trống và hàm bỏ qua không đếm ký tự trống đó.

Mình xin cảm ơn các bạn.
 

File đính kèm

Ví dụ mình có một chuỗi số như sau:

1,5,7,9-20,22,25,27-35,37,38,40-50

Xin các bạn giúp mình viết hàm đếm để cho kết quả là: 39

Mỗi số cách nhau bằng dấu phẩy và dấu gạch ngang hiểu là nó liền từ số đến số. và trong chuỗi này có thể phát sinh ký tự trống và hàm bỏ qua không đếm ký tự trống đó.

Mình xin cảm ơn các bạn.
Tôi viết hàm nay cho dữ liệu bạn đã đưa lên nên chưa tổng quát. Thôi thì đưa sao làm vậy bạn Test thử.
--------------------------------
Cú Pháp: =Dem(ô cần đếm)
------------------------------------------------------
Mã:
Public Function Dem(cell As Range) As Long
Dim arr, d As Long, kq(), i As Long, tmp
arr = Split(cell, ",")
For i = 0 To UBound(arr)
    If Len(Trim(arr(i))) < 3 Then
        d = d + 1
    Else
        tmp = Split(arr(i), "-")
        d = d + tmp(1) - tmp(0) + 1
    End If
Next i
        Dem = d
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
Mời các bạn tổng quát hàm thêm chút nữa cho chủ topic.
----------------------------------------------------------------------
Đã hòm hòm hơn!
Mã:
Public Function Dem(cell As Range) As Long
Dim arr, d As Long, kq(), i As Long, tmp
arr = Split(cell, ",")
For i = 0 To UBound(arr)
    If InStr(1, arr(i), "-") = 0 Then
        d = d + 1
    Else
        tmp = Split(arr(i), "-")
        d = d + tmp(1) - tmp(0) + 1
    End If
Next i
        Dem = d
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn bạn #chuot0106 nhiều nhé, mình test thấy đáp ứng tốt ạ, mình hỏi thêm là với bài toán này chỉ cần dùng hàm của Excel mà không cần dùng tới VBA liệu có thể giải quyết được không, kể cả phải mở thêm cột phụ ạ.
 
Cám ơn bạn #chuot0106 nhiều nhé, mình test thấy đáp ứng tốt ạ, mình hỏi thêm là với bài toán này chỉ cần dùng hàm của Excel mà không cần dùng tới VBA liệu có thể giải quyết được không, kể cả phải mở thêm cột phụ ạ.
Được nhưng số cột phụ rất lớn (tùy thuộc số biểu thức trong ô của bạn).
 
Mời các bạn tổng quát hàm thêm chút nữa cho chủ topic.
----------------------------------------------------------------------
Đã hòm hòm hơn!
Mã:
Public Function Dem(cell As Range) As Long
Dim arr, d As Long, kq(), i As Long, tmp
arr = Split(cell, ",")
For i = 0 To UBound(arr)
    If InStr(1, arr(i), "-") = 0 Then
        d = d + 1
    Else
        tmp = Split(arr(i), "-")
        d = d + tmp(1) - tmp(0) + 1
    End If
Next i
        Dem = d
End Function

Cách đếm từ a đến b (a-b) hơi rườm rà. Làm gọn thì chỉ cần evaluate.
các số từ a đến b = -evaluate("a-b")+1

Mã:
[COLOR=#008000]' hàm đếm các số và dãy số trong một chuỗi
[/COLOR]Function dem(ByVal s As String) As Long
Dim e As Variant
For Each e In Split(Replace(s, " ", ""), ",")
dem = dem + 1
If InStr(e, "-") Then dem = dem - Application.Evaluate(CStr(e))
Next e
End Function
 
Cách đếm từ a đến b (a-b) hơi rườm rà. Làm gọn thì chỉ cần evaluate.
các số từ a đến b = -evaluate("a-b")+1

Mã:
[COLOR=#008000]' hàm đếm các số và dãy số trong một chuỗi
[/COLOR]Function dem(ByVal s As String) As Long
Dim e As Variant
For Each e In Split(Replace(s, " ", ""), ",")
dem = dem + 1
If InStr(e, "-") Then dem = dem - Application.Evaluate(CStr(e))
Next e
End Function
Quả thật các thuật toán của Bác VetMini bao giờ cũng tối ưu.
 
Cột phụ lớn cũng được anh ạ! Mong anh giúp đỡ!
Mình hướng dẫn bạn tự làm chứ cột phụ nhiều quá mình không làm nổi? Với ví dụ của bạn (1,5,7,9-20,22,25,27-35,37,38,40-50)mình thực hiện khoảng 22 cột phụ. Cột 1 tách số 1 ra dùng làm Left cắt từ ký tự đầu đến dấu "," (dùng hàm Find để tìm dấu phẩy), cột 2 tách số 5 ra dùng màm Mid cắt từ vị trí dấu phẩy thứ nhất đến dấu phẩy thứ 2 (cũng dùng hàm Find để tìm dấu phẩy) ... đến cột phụ thứ 12 thì tính tổng cột 1, ... cột phụ 15 thì tách số 20 ra và trừ đi số 9 (dùng làm Left và hàm Right để tách, căn cứ vào dấu "-")... Nghe nói thôi đã ớn rồi nói gì đến việc làm, vẫn thực hiện được nếu bạn kiên nhẫn.
 
Mình hướng dẫn bạn tự làm chứ cột phụ nhiều quá mình không làm nổi? Với ví dụ của bạn (1,5,7,9-20,22,25,27-35,37,38,40-50)mình thực hiện khoảng 22 cột phụ. Cột 1 tách số 1 ra dùng làm Left cắt từ ký tự đầu đến dấu "," (dùng hàm Find để tìm dấu phẩy), cột 2 tách số 5 ra dùng màm Mid cắt từ vị trí dấu phẩy thứ nhất đến dấu phẩy thứ 2 (cũng dùng hàm Find để tìm dấu phẩy) ... đến cột phụ thứ 12 thì tính tổng cột 1, ... cột phụ 15 thì tách số 20 ra và trừ đi số 9 (dùng làm Left và hàm Right để tách, căn cứ vào dấu "-")... Nghe nói thôi đã ớn rồi nói gì đến việc làm, vẫn thực hiện được nếu bạn kiên nhẫn.
Nghe bạn nói đúng là thấy oải luôn rồi! Sao phức tạp vậy. Muốn tách thì dùng Text to Columns vài lần có nhanh hơn không?
 
Mình hướng dẫn bạn tự làm chứ cột phụ nhiều quá mình không làm nổi? Với ví dụ của bạn (1,5,7,9-20,22,25,27-35,37,38,40-50)mình thực hiện khoảng 22 cột phụ. Cột 1 tách số 1 ra dùng làm Left cắt từ ký tự đầu đến dấu "," (dùng hàm Find để tìm dấu phẩy), cột 2 tách số 5 ra dùng màm Mid cắt từ vị trí dấu phẩy thứ nhất đến dấu phẩy thứ 2 (cũng dùng hàm Find để tìm dấu phẩy) ... đến cột phụ thứ 12 thì tính tổng cột 1, ... cột phụ 15 thì tách số 20 ra và trừ đi số 9 (dùng làm Left và hàm Right để tách, căn cứ vào dấu "-")... Nghe nói thôi đã ớn rồi nói gì đến việc làm, vẫn thực hiện được nếu bạn kiên nhẫn.

Mình đã dùng hàm
=IF(A1="";0;LEN(A1)-LEN(SUBSTITUTE(A1;",";""))+1)
Để đếm dấu phẩy trong 1 chuỗi ở ô ví dụ là A1.

Nhưng lại không nghĩ ra giải pháp nào cho việc cộng thêm |số cuối trừ số đầu cộng thêm 1| khi giữa chúng là ký tự "-" @#!^%
Có lẽ dùng VBA như các bạn hướng dẫn là gọn nhẹ nhất nhưng quả thật là mình không biết nhiều về VBA lắm nên vẫn muốn dùng hàm excel thông thường hơn nếu không phải tạo quá nhiều cột phụ -\\/.
 
Mình đã dùng hàm
=IF(A1="";0;LEN(A1)-LEN(SUBSTITUTE(A1;",";""))+1)
Để đếm dấu phẩy trong 1 chuỗi ở ô ví dụ là A1.

Nhưng lại không nghĩ ra giải pháp nào cho việc cộng thêm |số đầu trừ số cuối cộng thêm 1| khi giữa chúng là ký tự "-" @#!^%
Có lẽ dùng VBA như các bạn hướng dẫn là gọn nhẹ nhất nhưng quả thật là mình không biết nhiều về VBA lắm -\\/.
Biết thì tốt nhưng không biết cũng không ảnh hưởng lắm! Bị sao lại lên đây "La Làng"--=0--=0--=0--=0
 
Nghe bạn nói đúng là thấy oải luôn rồi! Sao phức tạp vậy. Muốn tách thì dùng Text to Columns vài lần có nhanh hơn không?
Đúng, nhưng làm sao biết trong ô bạn ấy có dữ liệu bao nhiêu mà Text to Columns chứ, mình phân tích cho bạn ấy thấy là cách dùng công thức là không ổn, chứ theo mình thì dạy gì dùng công thức...--=0 --=0 --=0
 
Ví dụ mình có một chuỗi số như sau:

1,5,7,9-20,22,25,27-35,37,38,40-50

Xin các bạn giúp mình viết hàm đếm để cho kết quả là: 39

Mỗi số cách nhau bằng dấu phẩy và dấu gạch ngang hiểu là nó liền từ số đến số. và trong chuỗi này có thể phát sinh ký tự trống và hàm bỏ qua không đếm ký tự trống đó.

Mình xin cảm ơn các bạn.

Nếu đúng viết theo mẫu này thì công thức cũng được, nhưng phải kết hợp với Name. Không cần VBA đâu. Nếu bạn còn cần giải pháp thì tôi sẽ gửi lên cho.
 
Nếu đúng viết theo mẫu này thì công thức cũng được, nhưng phải kết hợp với Name. Không cần VBA đâu. Nếu bạn còn cần giải pháp thì tôi sẽ gửi lên cho.
ở đây có nêu rõ

Mình đã dùng hàm
=IF(A1="";0;LEN(A1)-LEN(SUBSTITUTE(A1;",";""))+1)
Để đếm dấu phẩy trong 1 chuỗi ở ô ví dụ là A1.

Nhưng lại không nghĩ ra giải pháp nào cho việc cộng thêm |số cuối trừ số đầu cộng thêm 1| khi giữa chúng là ký tự "-" @#!^%
Có lẽ dùng VBA như các bạn hướng dẫn là gọn nhẹ nhất nhưng quả thật là mình không biết nhiều về VBA lắm nên vẫn muốn dùng hàm excel thông thường hơn nếu không phải tạo quá nhiều cột phụ -\\/.

nên bạn cứ gửi công thức lên là đúng với mong muốn của người hỏi . Bản thân tôi cũng muốn xem cách dùng công thức cho bài này để xem có giống cách của tôi làm không .
 
ở đây có nêu rõ

nên bạn cứ gửi công thức lên là đúng với mong muốn của người hỏi . Bản thân tôi cũng muốn xem cách dùng công thức cho bài này để xem có giống cách của tôi làm không .

Cứ đưa giải pháp của bạn lên đi, tôi đang mắc chỗ dấu trừ, chưa xử lý được. Vì đầu tiên tôi nghĩ là dấu trừ bình thường, về sau thì hóa ra nó là dấu gạch nối (nối tiếp các giá trị), khi đó bài toán phức tạp thêm, đang nghĩ xem có giải pháp ngắn gọn hơn không cột phụ.
 
Cứ đưa giải pháp của bạn lên đi, tôi đang mắc chỗ dấu trừ, chưa xử lý được. Vì đầu tiên tôi nghĩ là dấu trừ bình thường, về sau thì hóa ra nó là dấu gạch nối (nối tiếp các giá trị), khi đó bài toán phức tạp thêm, đang nghĩ xem có giải pháp ngắn gọn hơn không cột phụ.

chưa làm xong mà nói như đúng rồi

Nếu đúng viết theo mẫu này thì công thức cũng được, nhưng phải kết hợp với Name. Không cần VBA đâu. Nếu bạn còn cần giải pháp thì tôi sẽ gửi lên cho.

vậy tôi nể bạn rồi .
 
chưa làm xong mà nói như đúng rồi

vậy tôi nể bạn rồi .

Cám ơn bạn, tôi hỏi người chủ topic không hỏi bạn nhé. Bạn xen chuyện vào làm chi rui để tự thắc mắc. Còn bài dạng này không dùng VBA thì cũng phải dùng Name thì mới gọn. Gợi ý cho người hỏi cũng là cách để họ tìm giải pháp.
Tôi không thích kiểu nói chuyện xen ngang.
 
Cám ơn bạn, tôi hỏi người chủ topic không hỏi bạn nhé. Bạn xen chuyện vào làm chi rui để tự thắc mắc. Còn bài dạng này không dùng VBA thì cũng phải dùng Name thì mới gọn. Gợi ý cho người hỏi cũng là cách để họ tìm giải pháp.
Tôi không thích kiểu nói chuyện xen ngang.

Bài này nếu chỉ cần gợi ý mà chủ topic này làm được thì chắc mấy người ở trên kia không cần xài tới VBA nhỉ ?
mà ngoài VBA thì bạn có cái gì để gợi ý cho người ta nhỉ ? bạn đang mải ba hoa khoác lác về những điều mình chưa làm được cơ mà ?

Cứ đưa giải pháp của bạn lên đi, tôi đang mắc chỗ dấu trừ, chưa xử lý được. Vì đầu tiên tôi nghĩ là dấu trừ bình thường, về sau thì hóa ra nó là dấu gạch nối (nối tiếp các giá trị), khi đó bài toán phức tạp thêm, đang nghĩ xem có giải pháp ngắn gọn hơn không cột phụ.
 
Bài này nếu chỉ cần gợi ý mà chủ topic này làm được thì chắc mấy người ở trên kia không cần xài tới VBA nhỉ ?
mà ngoài VBA thì bạn có cái gì để gợi ý cho người ta nhỉ ? bạn đang mải ba hoa khoác lác về những điều mình chưa làm được cơ mà ?

Tôi không bahoa, nếu bahoa thì phải như người nói làm được mà không đưa lên (sợ giống với không giống người khác).

Tôi đã làm được, nhưng khi nhìn lại kiểm tra lại lần nữa, thì phát hiện dấu "-" là gạch nối nên đổi lại phương án. Có vậy thui.

Ngoài VBA có cái gì thì đó là việc của tôi, chẳng liên quan đến những người tọc mạch.

Tôi không thích người khác xen ngang, nói vô chứng cớ, suy bụng ta ra bụng người. Nếu chủ topic cần sẽ quay lại, và tôi cần hỏi rõ thêm về vấn đề của bài toán. Chúng ta nên tập trung vấn đề giải quyết , không phải ngồi đó mà suy luận.
 
Tôi không bahoa, nếu bahoa thì phải như người nói làm được mà không đưa lên (sợ giống với không giống người khác).

Tôi đã làm được, nhưng khi nhìn lại kiểm tra lại lần nữa, thì phát hiện dấu "-" là gạch nối nên đổi lại phương án. Có vậy thui.

Ngoài VBA có cái gì thì đó là việc của tôi, chẳng liên quan đến những người tọc mạch.

Tôi không thích người khác xen ngang, nói vô chứng cớ, suy bụng ta ra bụng người. Nếu chủ topic cần sẽ quay lại, và tôi cần hỏi rõ thêm về vấn đề của bài toán. Chúng ta nên tập trung vấn đề giải quyết , không phải ngồi đó mà suy luận.

muốn biết ai là kẻ khoác lác dễ lắm bạn ơi , nội trong 30 phút nữa nếu ai không đưa ra được công thức ( không sử dụng cột phụ )
hoặc đưa lên sau mà lại giống y chang người đưa lên trước thì đó là kẻ khoác lác , tôi chỉ sợ có người không dám chơi thôi à ....
 
muốn biết ai là kẻ khoác lác dễ lắm bạn ơi , nội trong 30 phút nữa nếu ai không đưa ra được công thức ( không sử dụng cột phụ )
hoặc đưa lên sau mà lại giống y chang người đưa lên trước thì đó là kẻ khoác lác , tôi chỉ sợ có người không dám chơi thôi à ....

Việc gì phải chơi với bạn, tôi giúp chủ topic thui, không giúp bạn nên khỏi đưa lên.
Đây là trả lời cho người hỏi, diễn đàn không phải xã hội mà cần lấy số má mà phải thể hiện. Chỉ có kẻ không biết thì thích ra oai ra vẻ thi thố. nực cười.
 
Việc gì phải chơi với bạn, tôi giúp chủ topic thui, không giúp bạn nên khỏi đưa lên.
Đây là trả lời cho người hỏi, diễn đàn không phải xã hội mà cần lấy số má mà phải thể hiện. Chỉ có kẻ không biết thì thích ra oai ra vẻ thi thố. nực cười.

xem tới đây là mọi người chứng kiến đã biết ai mới là kẻ thích ba hoa khoác lác về những điều mình chưa làm được rồi

Nếu đúng viết theo mẫu này thì công thức cũng được, nhưng phải kết hợp với Name. Không cần VBA đâu. Nếu bạn còn cần giải pháp thì tôi sẽ gửi lên cho.
đâu cần phải chứng mình thêm gì nữa
 
xem tới đây là mọi người chứng kiến đã biết ai mới là kẻ thích ba hoa khoác lác về những điều mình chưa làm được rồi

đâu cần phải chứng mình thêm gì nữa

Theo nội quy của diễn đàn, bạn đang vi phạm nội quy đó

Tôi đề nghị ban quản trị có hình thức xử lý thành viên doveandrose này, và xử lý lại chủ đề này, làm trong sạch diễn đàn.

Tôi đang hỏi lại chủ topic, thành viên này đã viết bài xen ngang còn vặn vẹo, gán ghép người khác là ba hoa.

Tôi khẳng định lại lần nữa, là tôi chỉ trả lời cho người hỏi, không trả lời cho những người tọc mạch khích bác. Không biết thì hỏi, không phải ra vẻ thi thố, thách đố.
 
Tôi đề nghị ban quản trị có hình thức xử lý thành viên doveandrose này, và xử lý lại chủ đề này, làm trong sạch diễn đàn.

Tranh luận vẫn nằm trong nội dung của topic (không phải chen ngang)
Trang luận vẫn nằm trong nội quy cho phép
Vậy nên không có gì phải xử lý doveandrose cả
-------------------------------------
Ngoài lề một chút:
- Với ppc0312: Nếu bạn bớt đi tranh luận vô ích và tập trung vào các giải pháp cụ thể, tự dưng diễn đàn sẽ TRONG SẠCH liền
- Với doveandrose: bạn đã hứa có giải pháp trong 30 phút nữa, vậy xin mời!
 
Tranh luận vẫn nằm trong nội dung của topic (không phải chen ngang)
Trang luận vẫn nằm trong nội quy cho phép
Vậy nên không có gì phải xử lý doveandrose cả
-------------------------------------
Ngoài lề một chút:
- Với ppc0312: Nếu bạn bớt đi tranh luận vô ích và tập trung vào các giải pháp cụ thể, tự dưng diễn đàn sẽ TRONG SẠCH liền
- Với doveandrose: bạn đã hứa có giải pháp trong 30 phút nữa, vậy xin mời!

đó là cách phân biệt giữa 2 đối tượng người , chứ không thể vàng thau lẫn lộn được
 

File đính kèm

Tranh luận vẫn nằm trong nội dung của topic (không phải chen ngang)
Trang luận vẫn nằm trong nội quy cho phép
Vậy nên không có gì phải xử lý doveandrose cả
-------------------------------------
Ngoài lề một chút:
- Với ppc0312: Nếu bạn bớt đi tranh luận vô ích và tập trung vào các giải pháp cụ thể, tự dưng diễn đàn sẽ TRONG SẠCH liền
- Với doveandrose: bạn đã hứa có giải pháp trong 30 phút nữa, vậy xin mời!

Xem ở đây nhé

I. Quy định về nội dung
....6. Trong khi thảo luận mỗi người có thể có ý kiến, quan điểm riêng. Thành viên tham gia thảo luận cần tôn trọng những người cùng tham gia và tôn trọng người quản trị, không được khích bác, công kích, lăng mạ xúc phạm người khác, nóng nẩy, quá khích, gây mất đoàn kết trên diễn đàn. Các bài viết có nội dung (một phần hay cả bài) không theo chủ đề đang thảo luận sẽ bị xóa. Các bài viết lợi dụng chủ đề đang thảo luận để công kích thành viên khác hay ban quản trị diễn đàn sẽ bị xóa. Thành viên công kích sẽ bị cảnh cáo hoặc bị khóa nick nếu vẫn tiếp tục công kích sau khi BĐH nhắc nhở.

Tôi không tranh luận vô ích, tôi đang hỏi chủ topic cho rõ đề bài. Còn giải pháp tôi đã nói rõ ở trên là do nhầm lẫn dấu trừ nên khi đó chưa có giải pháp hợp lý. và đã nói rõ
Cứ đưa giải pháp của bạn lên đi, tôi đang mắc chỗ dấu trừ, chưa xử lý được. Vì đầu tiên tôi nghĩ là dấu trừ bình thường, về sau thì hóa ra nó là dấu gạch nối (nối tiếp các giá trị), khi đó bài toán phức tạp thêm, đang nghĩ xem có giải pháp ngắn gọn hơn không cột phụ.
Đọc không chịu đọc, thành viên đó còn vặn vẹo rui phán là bahoa là sao. Các bạn thích bao che thì cứ bao che đi.

Sân chơi diễn đàn là sân chơi chung mỗi người một quan điểm. Quan điểm của tôi là nhắm vào giải quyết vấn đề và chỉ trả lời trực tiếp người hỏi và có thiện chí nói chuyện. Không cần khoe tài giỏi ở đây, số má ở đây. Đã là cái gì, ăn thua gì.
 
đó là cách phân biệt giữa 2 đối tượng người , chứ không thể vàng thau lẫn lộn được

Xem lại đi sau mấy tiếng rui??? Dù gì cũng là giải pháp khá hay.

Đây là lần cuối tôi trả lời cái nick này của bạn, đừng có lôi tôi lại bất cứ cái gì vấn đề của bạn nghe, nếu không đừng trách tôi không còn giữ phép lịch sự tối thiểu với những người như bạn.

@gửi chủ topic:
Giải pháp trên cũng là 1 giải pháp để lựa chọn và đã giải quyết vấn đề. Vẫn còn giải pháp khác ngắn gọn hơn, gợi ý là dùng Name với Evaluate(). Nếu người hỏi quay lại và còn cần giải pháp đó thì tôi gửi cho.
 
Tôi không bahoa, nếu bahoa thì phải như người nói làm được mà không đưa lên (sợ giống với không giống người khác).

Tôi đã làm được, nhưng khi nhìn lại kiểm tra lại lần nữa, thì phát hiện dấu "-" là gạch nối nên đổi lại phương án. Có vậy thui.

Ngoài VBA có cái gì thì đó là việc của tôi, chẳng liên quan đến những người tọc mạch.

Tôi không thích người khác xen ngang, nói vô chứng cớ, suy bụng ta ra bụng người. Nếu chủ topic cần sẽ quay lại, và tôi cần hỏi rõ thêm về vấn đề của bài toán. Chúng ta nên tập trung vấn đề giải quyết , không phải ngồi đó mà suy luận.

Thanks bạn đã quan tâm tới đề nghị được giúp đỡ của mình.
Bài toán mình muốn được giúp đỡ như mô tả ở bài đầu tiên.
Mục đích của mình là đếm số hóa đơn đã sử dụng để làm bc cho thuế nên tối đa là 50 số cần đếm tương ứng 50 seri trong 1 quyển HD
Vì có cả những liên bị hỏng xen kẽ nên nó ko liền mạch, và sẽ đơn giản nếu ta liệt kê rõ từng số sd nhưng như thế nhìn báo cáo sẽ lắm số quá.
Với VBA như các bạn đã giúp như trên đã đáp ứng hoàn hảo yêu cầu của mình, nhưng mình có 1 vài lý do muốn đc sd công thức thông thường hơn dùng macro cho dù có phải tạo ra vài ba cột phụ và làm tăng kích thước file lên.
1. Là mình là dân kế toán nên VBA mình ko biết nhiều lắm
2. File này khi làm xong mình share cho nhiều người khác trong cơ quan cùng làm mà với macro sẽ gặp 1 số rắc rối như có thể bị phần mềm diệt virus vô hiệu nếu như người sd ko biết...
3. Chính vì lý do 1 nên mình muốn học hỏi thiên về excel thay vì VBA nên nếu có giải pháp kể cả ko tối ưu bằng VBA mình cũng muốn đc tiếp thu vì có thể mình ứng dụng vào mục đích khác chẳng hạn.

Lần nữa cám ơn các bạn về tất cả các trợ giúp.
 
nếu Topic này mới bắt đầu được vài bài , tôi sẽ đi phân tích từng câu của bài phát biểu này

Xem lại đi sau mấy tiếng rui??? Dù gì cũng là giải pháp khá hay.

Đây là lần cuối tôi trả lời cái nick này của bạn, đừng có lôi tôi lại bất cứ cái gì vấn đề của bạn nghe, nếu không đừng trách tôi không còn giữ phép lịch sự tối thiểu với những người như bạn.

@gửi chủ topic:
Giải pháp trên cũng là 1 giải pháp để lựa chọn và đã giải quyết vấn đề. Vẫn còn giải pháp khác ngắn gọn hơn, gợi ý là dùng Name với Evaluate(). Nếu người hỏi quay lại và còn cần giải pháp đó thì tôi gửi cho.

nhưng Topic đến đây đã đủ dài , và mọi người quan sát đã hiểu cả rồi , tôi chỉ nói ngắn gọn
trong diễn đàn và ngoài đời thật , người làm tôi phải "sợ" là người thật sự bản lĩnh , qua những hành động cụ thể
chứ nói nhăng cuội vài câu mà nghĩ rằng tôi "sợ" thì ...... =))))))
 
nếu Topic này mới bắt đầu được vài bài , tôi sẽ đi phân tích từng câu của bài phát biểu này

nhưng Topic đến đây đã đủ dài , và mọi người quan sát đã hiểu cả rồi , tôi chỉ nói ngắn gọn
trong diễn đàn và ngoài đời thật , người làm tôi phải "sợ" là người thật sự bản lĩnh , qua những hành động cụ thể
chứ nói nhăng cuội vài câu mà nghĩ rằng tôi "sợ" thì ...... =))))))

Tầm cũng chỉ thế thui, nói ít hiểu nhiều, Không biết thì hỏi, hoặc dựa cột mà nghel.
Đừng trích lại lời tôi nữa nghe chưa, tôi nhắc lại 1 lần nữa nghe.
 

@gửi chủ topic:
Giải pháp trên cũng là 1 giải pháp để lựa chọn và đã giải quyết vấn đề. Vẫn còn giải pháp khác ngắn gọn hơn, gợi ý là dùng Name với Evaluate(). Nếu người hỏi quay lại và còn cần giải pháp đó thì tôi gửi cho.
Theo hiểu biết của mình thì nếu bạn dùng name và evaluate thì nó không là công thức đơn thuần trong excel nữa rồi. +-+-+-++-+-+-++-+-+-+
 
Thôi đừng cãi nữa các bác, thấy VBA hoạt động đc là vui rồi :D.}}}}}
 

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

Back
Top Bottom