Cũng phải có 1 gợi ý gì đó chứ (chẳng hạn yêu cầu TÌM CÁI GÌ)Trong không khí rộn ràng mừng sinh nhật GPE lần 5 mình xin gửi một câu đố góp vui cho thêm phần sôi động.
Hãy tìm bí mật được giấu trong file đính kèm.
Vậy yêu cầu cụ thể là: Trong file có một cái Logo của GPE, hãy làm cho nó hiện ra.Cũng phải có 1 gợi ý gì đó chứ (chẳng hạn yêu cầu TÌM CÁI GÌ)
Chứ nhìn 1 đống số thế kia ---> Chẳng biết phương hướng là nơi mô
Vậy yêu cầu cụ thể là: Trong file có một cái Logo của GPE, hãy làm cho nó hiện ra.
![]()
![]()
![]()
Gợi ý: Dùng Excel 2007 trở về sau mới tìm được.
Nhanh vậy ta. Chắc tại gợi ý lộ quáThấy rồi, làm rất công phu!
TTP.
Gợi ý: Dùng Excel 2007 trở về sau mới tìm được.
Giải thưởng là 2 chai sữa bắp.Có giải thưởng gì không thắngbd
Tưởng anh tìm ra được rồi chứ. Cái này chưa đúng lắm. Phải hiện ra cái Logo giống như cái logo của diễn đàn cơAnh thử trên Excel 2003 vẫn như vậy, nhưng mà không biết đúng cách của em không nữa!
View attachment 64288
TTP.
Logo giống như logo ở bài #3 đó anh.Nếu thế thì cách khác, không biết có đúng không![]()
Logo giống như logo ở bài #3 đó anh.
Chú ý câu gợi ý của em.
Chính xác. Anh qua gặp Lão Chết Tiệt lấy hai chai sữa bắp nhaChỉnh màu lại là giống
View attachment 64291
Rinh 2 chai sửa bắp được chưa em
Em dùng PM nào mà ra được bộ số liệu đó vậy?
Em dùng Excel thôi.Em dùng PM nào mà ra được bộ số liệu đó vậy?
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Sub Scan()
Dim Area As POINTAPI
Dim lColor As String
Dim winHwnd As Long
Dim HoanhDo As Long, TungDo As Long
winHwnd = GetWindowDC(0)
Call GetCursorPos(Area)
HoanhDo = Area.x
TungDo = Area.y
For i = 95 To TungDo
For j = 29 To HoanhDo
lColor = GetPixel(winHwnd, j, i)
Sheet2.Cells(i - 94, j - 28).Value = lColor
Next
Next
End Sub
Sheet2.Cells(i - 94, j - 28).Value = lColor
Sheet2.Cells(i - 94, j - 28).Interior.Color = lColor
Có lẽ do cái logo đơn giản quá nên Anh dùng CF là thấy. Nếu hình có nhiều tông màu khác nhau thì khó mà thí nghiệm bằng CF với điều kiện thông thường được.Bài này vừa gữi lên thì mình đã mường tượng đến Conditional Formating
Cho điều kiện A1>300, đã thấy có kết quả gần chính xác
Định thí nghiệm, vậy mà chậm tay mất rồi
(Hình của Phong đẹp quá đâm ra hết muốn làm... vì làm chưa chắc đã đẹp bằng)
Mấy hàm API làm được rất nhiều trò đấy! Chẳng hạn là trò trong file dưới đâyEm dùng Excel thôi.
PHP:Private Type POINTAPI x As Long y As Long End Type Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Cái vụ scan hình này có nghe lâu rồi, giờ thấy HuuThang Và NDU làm mới thấy. Quá hay.Mấy hàm API làm được rất nhiều trò đấy! Chẳng hạn là trò trong file dưới đây
- Mở file, bấm nút Show Form
- Ra chuột vào bất cứ cửa sổ nào, bất cứ vị trí nào (kể cả vị trí ngoài cửa sổ Excel) để lấy màu tại điểm ấy
- Bấm nút Enter trên bàn phím để ấn định
Thì em cũng chế cái vụ scan này từ code lấy màu tại vị trí con trỏ chuột sưu tầm được màMấy hàm API làm được rất nhiều trò đấy! Chẳng hạn là trò trong file dưới đây
- Mở file, bấm nút Show Form
- Ra chuột vào bất cứ cửa sổ nào, bất cứ vị trí nào (kể cả vị trí ngoài cửa sổ Excel) để lấy màu tại điểm ấy
- Bấm nút Enter trên bàn phím để ấn định
Làm sao làm tô cho giống là được rồi anh. Nhưng mà phải là tô màu không được dùng Object đâu đấy.
Tôi không tô màu nền, cũng không dùng Object mà tô màu chữ ---> Dùng Symbol hình vuông (3 symbol) ---> Bởi vậy không chắc có đúng ý bạn không?Làm sao làm tô cho giống là được rồi anh. Nhưng mà phải là tô màu không được dùng Object đâu đấy.
Tô màu chữ cũng là tô màu. Anh tô vậy là hợp lệ rồi.Tôi không tô màu nền, cũng không dùng Object mà tô màu chữ ---> Dùng Symbol hình vuông (3 symbol) ---> Bởi vậy không chắc có đúng ý bạn không?
Nếu chưa đúng thì xin hỏi lại: Liệu có giới hạn về version hay không? (chẳng hạn chỉ làm được trên Excel 2007 trở lên)
Bạn làm và chụp hình lại rồi gửi lên cho mọi người xem thử nhé.Đúng là cả hai đều dùng cách như Thầy Ndu, nhưng với cái hình caro, thầy chỉ việc thêm 2 symbol cái vuông phía trên, cái vuông phía dưới, sau đó File cell thành màu đỏ, bản thân symbol là màu đen, chỉnh kích thước lại là ôkie! (Chỉ có cột cuối cùng thì hơi xấu kakaka)
Bạn làm và chụp hình lại rồi gửi lên cho mọi người xem thử nhé.
Được luôn. Bạn gửi lên đi.Gửi File lên luôn được không Thắng?
Được luôn. Bạn gửi lên đi.
Không biết Thắng có ý kiến gì? Và giải pháp của riêng bạn thì thế nào nhỉ?Cá rô chiên đây! hihihi
Cái này sao giống lấy dòng 1 giả lập quá vậy? Chứ Column Header thì làm gì có cửa chỉnh sửaSẳn đây tôi đố các bạn, làm sao có thể làm được như hình dưới đây?
Cái này sao giống lấy dòng 1 giả lập quá vậy? Chứ Column Header thì làm gì có cửa chỉnh sửa
Bạn chụp lại hình có cả dòng 1 mình xem thử (có luôn thanh Ribbon càng tốt)Hihihii, không hề có dòng nào giả lập hihihi
Bạn chụp lại hình có cả dòng 1 mình xem thử (có luôn thanh Ribbon càng tốt)
Vậy tôi xin hỏi thêm: Excel 2003 có làm được điều này không?Bí mật mà! nếu show thanh Ribbon và dòng bí mật thì thấy hết rùi Thầy ui! hihihi
Vậy tôi xin hỏi thêm: Excel 2003 có làm được điều này không?
Mình nhớ không lầm thì nếu như tạo bảng đúng chuẩn của Excel thì khi di chuyển xuống phía bên dưới nó hiện tiêu đề của cột. Hỏng biết có phải vậy không?Dạ không làm được ạ!
Mình nhớ không lầm thì nếu như tạo bảng đúng chuẩn của Excel thì khi di chuyển xuống phía bên dưới nó hiện tiêu đề của cột. Hỏng biết có phải vậy không?
Ý tưởng thì cũng như vậy nhưng em dùng ký tự khác. Một ký tự có sẵn trong font Webdings luôn.Không biết Thắng có ý kiến gì? Và giải pháp của riêng bạn thì thế nào nhỉ?
Không biết mình có thể tạo 1 Pattern Style để thay thế các Style sẵn có của Excel.Ý tưởng thì cũng như vậy nhưng em dùng ký tự khác. Một ký tự có sẵn trong font Webdings luôn.
Em nghĩ chắc là không được đâu.Không biết mình có thể tạo 1 Pattern Style để thay thế các Style sẵn có của Excel.
Nếu có thì quá tiện nhỉ.
Cám ơn.
1 ví dụ cho trường hợp NumberTextTrong lần gặp gỡ với NghiaPhuc, Bác Concogia có đố một câu cũng vui vui, tôi nghĩ cũng nên chia sẽ câu đố này:
Bằng hàm của Excel (không dùng VBA), không dùng name, không cột phụ, làm sao có thể tách được số ra khỏi chữ với cấu trúc TextNumber hoặc NumberText, với chiều dài của số và chữ không giới hạn.
Ví dụ:
1) TextNumber: Learning321 (KQ: 321), Learning_Excel1234 (KQ: 1234), ...
2) NumberText: 123Nghia (KQ: 123), 45456456TrongNghia (KQ: 45456456), ...
@: Concogia đố vậy chứ không biết đã có giải pháp chưa nhỉ? hihihi
=LEFT($A1,COUNT(IF(ISERROR(1*MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)),"",1)))
Em đã thử công thức trên nhưng sao chỉ tách được số đầu tiên thôi anh ơi.1 ví dụ cho trường hợp NumberText
Trường hợp TextNumber cũng tương tự (thay LEFT bằng RIGHT)PHP:=LEFT($A1,COUNT(IF(ISERROR(1*MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)),"",1)))
Hàm mảng thì phải Ctrl + Shift + Enter chứEm đã thử công thức trên nhưng sao chỉ tách được số đầu tiên thôi anh ơi.
![]()
Ờ hén... Đúng là không có gì qua mặt được bác ndu... ẹc ẹc...Hàm mảng thì phải Ctrl + Shift + Enter chứ
Ẹc... Ẹc...
Tui nghĩ hổng phải vậy! Chắc là vì "đi tới đi lui, đi lùi đi tới..." cả ngày nên nghiaphuc bị... hoa mắt đâyỜ hén... Đúng là không có gì qua mặt được bác ndu... ẹc ẹc...
Thêm một cách khác:Trong lần gặp gỡ với NghiaPhuc, Bác Concogia có đố một câu cũng vui vui, tôi nghĩ cũng nên chia sẽ câu đố này:
Bằng hàm của Excel (không dùng VBA), không dùng name, không cột phụ, làm sao có thể tách được số ra khỏi chữ với cấu trúc TextNumber hoặc NumberText, với chiều dài của số và chữ không giới hạn.
Ví dụ:
1) TextNumber: Learning321 (KQ: 321), Learning_Excel1234 (KQ: 1234), ...
2) NumberText: 123Nghia (KQ: 123), 45456456TrongNghia (KQ: 45456456), ...
@: Concogia đố vậy chứ không biết đã có giải pháp chưa nhỉ? hihihi
=LEFT(A1,SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,ROW($1:$10)-1,""))))
Đúng ra thì bài này đã từng làm trên GPE nhiều lần rồi. Vậy có gì đâu mà ĐỐ hả Thắng?Nhân tiện đố về tách số mình có câu này khó hơn nè.
Tách lấy số trong một chuỗi có lẫn lộn số và các ký tự khác.
Ví dụ:
2x + 3y + z = 12 >> 2312
Có 100 bạn tham dự GPE lần 5 >> 1005
8h ngày 23 tháng 7 năm 2011 >> 82372011
Đương nhiên là không được dùng cột phụ chứ anh. Name cũng chỉ mang tính chất rút gọn công thức thôi. Dùng cũng được, không dùng thì càng tốt.Đúng ra thì bài này đã từng làm trên GPE nhiều lần rồi. Vậy có gì đâu mà ĐỐ hả Thắng?
Chắc phải có ràng buộc thêm gì đó để làm khó chứ (chẳng hạn như không dùng name, dùng 1 công thức duy nhất, không cột phụ... vân vân)
Ẹc... Ẹc...
Thôi thì Thắng làm bài này mà không dùng name xem thửĐương nhiên là không được dùng cột phụ chứ anh. Name cũng chỉ mang tính chất rút gọn công thức thôi. Dùng cũng được, không dùng thì càng tốt.
Anh đưa cách làm của anh lên thử đi. Em làm một công thức duy nhất cũng chỉ làm được ở Excel 2007 trở về sau. Excel 2003 bị lỗi do số hàm lồng nhau vượt quá cho phép.Thôi thì Thắng làm bài này mà không dùng name xem thử
Mình bó tay! (nếu mình làm thì ít nhất phải có 1 name)
Thì đó... tôi làm trên Excel 2003 và cũng bị lỗi nàyAnh đưa cách làm của anh lên thử đi. Em làm một công thức duy nhất cũng chỉ làm được ở Excel 2007 trở về sau. Excel 2003 bị lỗi do số hàm lồng nhau vượt quá cho phép.
Temp =IF(ISNUMBER(1*MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),"")
=IF(COUNT(Temp)=0,"",SUMPRODUCT((1*MID($A2,SMALL(Temp,ROW(INDIRECT("1:"&COUNT(Temp)))),1))*(10^(COUNT(Temp)-ROW(INDIRECT("1:"&COUNT(Temp)))))))
Em nghĩ công thức của anh Ndu chỉ cần tới đây là đủ rồi đâu cần lồng hàm "If(iserror)" vào1 ví dụ cho trường hợp NumberText
Trường hợp TextNumber cũng tương tự (thay LEFT bằng RIGHT)PHP:=LEFT($A1,COUNT(IF(ISERROR(1*MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)),"",1)))
=RIGHT(A1;COUNT(1*MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1)))
Em cũng làm giống như anh nhưng thêm hàm TEXT() để không mất các số 0 đứng đầu và dùng hàm LARGE() thay cho hàm SMALL() để công thức gọn hơn một chút.Thì đó... tôi làm trên Excel 2003 và cũng bị lỗi này
Tôi làm như sau:
- Đặt 1 name:
- Công thức tại B2:PHP:Temp =IF(ISNUMBER(1*MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),"")
---------------PHP:=IF(COUNT(Temp)=0,"",SUMPRODUCT((1*MID($A2,SMALL(Temp,ROW(INDIRECT("1:"&COUNT(Temp)))),1))*(10^(COUNT(Temp)-ROW(INDIRECT("1:"&COUNT(Temp)))))))
Nếu đặt thêm 1 name nữa thì công thức sẽ đẹp hơn
=IF(COUNT(Temp)=0,"",TEXT(SUMPRODUCT((1*MID($A2,LARGE(Temp,ROW(INDIRECT("1:"&COUNT(Temp)))),1))*(10^(ROW(INDIRECT("1:"&COUNT(Temp)))-1))),REPT(0,COUNT(Temp))))
1) TextNumber: Learning321 (KQ: 321), Learning_Excel1234 (KQ: 1234), ...
=SUBSTITUTE(A2, TRIM(LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789")-1))), "")
2) NumberText: 123Nghia (KQ: 123), 45456456TrongNghia (KQ: 45456456), ...
=1*LEFT(A1,MAX(NOT(ISERROR(1*(LEFT($A1,ROW(OFFSET($A$1,0,0,LEN($A1),1))))))*ROW(OFFSET($A$1,0,0,LEN($A1),1))))
Thêm một cách khác:
Nhân tiện đố về tách số mình có câu này khó hơn nè.Mã:=LEFT(A1,SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,ROW($1:$10)-1,""))))
Tách lấy số trong một chuỗi có lẫn lộn số và các ký tự khác.
Ví dụ:
2x + 3y + z = 12 >> 2312
Có 100 bạn tham dự GPE lần 5 >> 1005
8h ngày 23 tháng 7 năm 2011 >> 82372011
=SUM(MID(A1,LARGE(ISNUMBER(--MID(A1,ROW($1:$25),1))*ROW($1:$25),ROW($A$1:INDEX($A:$A,COUNT(--MID(A1,ROW($1:$25),1))))),1)*10^(ROW(INDEX($1:$25,COUNT(--MID(A1,ROW(INDEX($1:$25,1,1):
INDEX($1:$25,LEN(A1),1)),1)),1):INDEX($1:$25,1,1))-1))
=SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW($1:$25),1))*ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10)
=SUM(MID(0&A2,LARGE(ISNUMBER(--MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))*ROW(INDIRECT("1:"&LEN(A2))),ROW(INDIRECT("1:"&LEN(A2))))+1,1)*10^ROW(INDIRECT("1:"&LEN(A2)))/10)
=REGEX.SUBSTITUTE(A3,"a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z","")
=REGEX.SUBSTITUTE(A2,"0|1|2|3|4|5|6|7|8|9","")
Ẹc... Ẹc... nếu phải dựa vào Add-In tải từ nước ngoài sao ta không tự mình lập trình lấy... Vụ tách lấy number, text có đầy trên GPE rồi còn gìVới kiểu tách số của Hữu Thắng, có một Addins với nhiều hàm độc đáo có thể giải được nhiều vấn đề độc đáo.
Với hàm này, cho dù số ở bất cứ nơi đâu trong chuỗi, nó cũng tách ra được!
PHP:=REGEX.SUBSTITUTE(A3,"a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z","")
Tách chữ:
Để tải MoreFunc các bạn vào đường dẫn dưới đây:PHP:=REGEX.SUBSTITUTE(A2,"0|1|2|3|4|5|6|7|8|9","")
http://download.cnet.com/Morefunc/3000-2077_4-10423159.html
Ẹc... Ẹc... nếu phải dựa vào Add-In tải từ nước ngoài sao ta không tự mình lập trình lấy... Vụ tách lấy number, text có đầy trên GPE rồi còn gì
http://www.giaiphapexcel.com/forum/showthread.php?16983-T%C3%A1ch-s%E1%BB%91-kh%C3%B4ng-d%C3%B9ng-v%C3%B2ng-l%E1%BA%B7p
Nói về MoreFunc thì tôi đã có từ lâu lắm rồi (từ ngày mới gia nhập diễn đàn)... nhưng nói thật, ít khi nào tôi dùng đến các Add-In (trừ những trường hợp bất khả kháng)...Bộ Addins này có rất nhiều hàm độc đáo, không chỉ cái đó đâu, Thầy tải về nghiên cứu xem sao. Có cả menu cho Thầy lựa chọn hàm luôn đấy nhé!
Tôi đảm bảo nếu viết riêng cho từng trường hợp cụ thể thì tự viết sẽ hiệu quả hơn các Add-in sẵn có. Ví dụ như bạn nói hàm tách số. Trong chuỗi ngoài số ra đâu chỉ có các ký tự từ a đến z, còn các ký tự khác nữa mà (".", ",", "@", "$", "%", "(", ")",...). Trong khi dùng VBScript.RegExp một phát là xong.Bộ Addins này có rất nhiều hàm độc đáo, không chỉ cái đó đâu, Thầy tải về nghiên cứu xem sao. Có cả menu cho Thầy lựa chọn hàm và Help để hướng dẫn cụ thể từng hàm luôn đấy nhé!
Thì bạn làm luôn đi... chỉ có việc tập hợp lại thôi màNếu được, tôi thiết nghĩ thử một ai đó đại diện tập hợp những bài hay của diễn đàn ta, tạo thành một Addins mang tên "made in GPE" và hướng dẫn bằng tiếng Việt cho dễ hiểu dễ sử dụng, khi đó tôi mới nói nó độc đáo hơn cái này. OK???
Thì bạn làm luôn đi... chỉ có việc tập hợp lại thôi mà
Ẹc... Ẹc...
Tôi có ý kiến thế này:Ẹc ... Ẹc ... Cái "ni" em hỏng dám à nha!
1) Tập hợp thì được, nhưng không đủ trình độ để nhận xét mức độ đúng sai, hiệu quả của mỗi hàm tự tạo
2) Vì không rành về VB nên không thể tạo được chương trình hướng dẫn và cách hiển thị trong đó. Càng không biết làm sao cho nó chạy thành chương trình chuyển vào Addins như thằng MoreFunc
==> Cho em xiiiiiiiiiiiiiiiiin!!!!!!!!!!
====> Thầy Ndu và các cao thủ khác mới có thể thực hiện được, còn em chỉ dám nhận công việc là "hưởng thụ" thành quả của các Thầy!!!
To Learning_Excel: Em rất thích ý tưởng của bác, đối với các thày chuyên sâu như thày ndu, ptm, anh huuthang-bd... thì không bàn làm gì? Nhưng với những thành viên chưa thạo lắm về Add-Ins như em thì em thích cái vụ này lắm. Thày ndu đã có ý như vậy thì bác gom thử xem sao, có gì cho em hưởng với... hìhì...nói vậy thôi, em chưa thạo lắm, nếu em trợ giúp bác được cái gì em sẵn sàng ngay.Tôi có ý kiến thế này:
- Bạn cứ việc thu gom
- Để ý những thứ cùng chức năng thì cho vào chung 1 chổ
- Đến những phần tạo file setup, hướng dẫn gì gì đó hãy cứ đưa lên diễn đàn, mọi người sẽ hỗ trợ
(riêng tôi mà bảo thu gom thì... làm biếng)
Món này làm hoài, xem ra chẳng khó tí nào. Công thức cho B1:Không ai đố nữa thì Phong đố nhe.
Anh chị và các bạn sử dụng công thức (1 công thức duy nhất cho mỗi từ tách ra trong 1 ô, không kế thừa kết quả) để tách các từ trong chuỗi vào các ô. Ví dụ như hình sau:
View attachment 64951
Chúc vui vẻ,
Thanh Phong
=TRIM(MID(SUBSTITUTE(TRIM($A1)," ",REPT(" ",LEN($A1))),1+(COLUMNS($A:A)-1)*LEN($A1),LEN($A1)))
Cách 1:Không ai đố nữa thì Phong đố nhe.
Anh chị và các bạn sử dụng công thức (1 công thức duy nhất cho mỗi từ tách ra trong 1 ô, không kế thừa kết quả) để tách các từ trong chuỗi vào các ô. Ví dụ như hình sau:
View attachment 64951
Chúc vui vẻ,
Thanh Phong
Arr=EVALUATE("{"""&SUBSTITUTE($A1," ",""",""")&"""}")
B1=IF(COLUMN(A:A)>COUNTA(Arr),"",INDEX(Arr,COLUMN(A:A)))
B1=TRIM(MID(REPT(" ",100)&SUBSTITUTE($A1," ",REPT(" ",200)),(COLUMN(A:A)-1)*200+1,200))
Biết là NDU có làm file này, mở lên và chưa kịp gán vào và xem lại thì đã có đáp án.Lẹ còn hơn tên lửa nữa
Anh Tuấn có xuống SG alo em cafe nhé. Thắng hôm nào rãnh cafe nhé!
Thanh Phong
Hỏi lại: Có cho dùng Name không?Đố tiếp. Nhiều nhiều anh chị em tham gia cho vui.
Hãy tách cụm số thứ N trong chuỗi. Dùng 1 công thức duy nhất. Xem hình ví dụ:
View attachment 64954
Chúc vui,
Thanh Phong
Hỏi lại: Có cho dùng Name không?
=INDEX(TRIM(MID(SUBSTITUTE(TRIM($A3)," ",REPT(" ",LEN($A3))),1+(ROW($1:$100)-1)*LEN($A3),LEN($A3))),SMALL(IF(ISERROR(1*TRIM(MID(SUBSTITUTE(TRIM($A3)," ",REPT(" ",LEN($A3))),1+(ROW($1:$100)-1)*LEN($A3),LEN($A3)))),"",ROW($1:$100)),B$1))
Tách ra dãy số (hoặc dãy ký tự không phải số) thứ i từ một chuỗi cho trước.
Ví dụ.
Được dùng name nhưng không dùng cột phụ.Chuỗi gốc | Dãy số 2 | Dãy số 3 | Chuỗi 2 | Chuỗi 3
HYAH 76 H 5 HGTY 674 HG75HT7 5675 HGH 576 |5|674|H|HGTY
GHTYGN 57685 HGYT 7586 HHFY 575 UTNY 57 |7586|575|HGYT|HHFY
576 H 4 HGNVNHF 57564 H 47 FVNFHVH 5 YYRE|4|57564|HGNVNHF|H
6957564 HBRGFB 47686 THVBRFHEDB 46 HT|47686|46|THVBRFHEDB|HT
Hihi, vẫn ế.huuthang_bd
Cuối tuần nên ế. Đầu tuần không biết có ai tham gia không.
Hoan nghênh vị khách đầu tiên (ế quá màHihi, vẫn ế.
Đố khó thế mà chẳng có quà ai mà trả lời
Mình nghĩ bài này nếu xác định được điểm dừng khi dữ liệu thay đổi ( từ chữ sang số hoặc ngược lại ) là Ok vì dữ liệu gốc luân phiên Số , Chữ và ngược lại
Nhưng khi xác định điểm dừng được rồi mình chẳng tìm thấy tính tổng quát nào trong bài này cả. Híc
Gặp mấy bài này lấy VBA ra chơi nó cho đỡ nhức đầu
Thôi cũng tham gia một bài cho huuthang_bd bớt ế. Hihi
Thân
(Có chơi ăn gian, thêm tý dũ liệu hàng 4 cho đủ khỏi phải bẫy lỗi thêm đau đầu)
Ý tưởng thì có rồi, anh điều chỉnh lại chút xíu là được thôi.Tách ra dãy số (hoặc dãy ký tự không phải số) thứ i từ một chuỗi cho trước.
Híc.Hoan nghênh vị khách đầu tiên (ế quá mà)
Ăn gian cái gì ăn gian chứ sửa dữ liệu gốc là không ổn nghen anh.
Với lại công thức của anh chưa đúng trong trường hợp có các ký tự không phải là chữ và số (ví dụ như dấu chấm (.), dấu ngoặc,...). Có lẽ cũng tại dữ liệu của em chưa tổng quát, nhưng yêu cầu có nói là:
Ý tưởng thì có rồi, anh điều chỉnh lại chút xíu là được thôi.
Tuy nhiên, bài giải của anh là bài giải chính xác nhất cho đến thời điểm này![]()
Không phải số mình vẫn xác định được. Chỉ 2 loại dữ liệu Số & không phải sốtrường hợp có các ký tự không phải là chữ và số (ví dụ như dấu chấm (.), dấu ngoặc,...).
Thật ra khi dữ liệu chỉ vừa đủ 6 nấc ( cho chuỗi 3) ta dùng Len(ô dữ liệu) cũng Ok. Trường hợp này ta phải bẫy lỗi ngay từ đầuĂn gian cái gì ăn gian chứ sửa dữ liệu gốc là không ổn nghen anh.