Đố vui mừng sinh nhật GPE lần 5 (1 người xem)

Liên hệ QC

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

huuthang_bd

Chuyên gia GPE
Tham gia
10/9/08
Bài viết
8,933
Được thích
11,357
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Thợ đụng
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.
 

File đính kèm

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.
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ô
 
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.
webUpload
webUpload
LogoGPE.jpg

Gợi ý: Dùng Excel 2007 trở về sau mới tìm được.
 
Lần chỉnh sửa cuối:
Có giải thưởng gì không thắngbd
 
Thấy rồi, làm rất công phu!

TTP.
Nhanh vậy ta. Chắc tại gợi ý lộ quá -0-/.
Gợi ý: Dùng Excel 2007 trở về sau mới tìm được.
Có giải thưởng gì không thắngbd
Giải thưởng là 2 chai sữa bắp.
Lão chết tiệt còn nợ em hai chai sữa bắp giải khuyến khích cuộc thi vẽ biểu đồ. Lấy đắp qua đây --=0
 
Lần chỉnh sửa cuối:

File đính kèm

  • LogoGPE3.jpg
    LogoGPE3.jpg
    89.3 KB · Đọc: 155
Lần chỉnh sửa cuối:
Chỉ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?
Chính xác. Anh qua gặp Lão Chết Tiệt lấy hai chai sữa bắp nha--=0
[video=youtube;RnM4HdOj0Yw]http://www.youtube.com/watch?v=RnM4HdOj0Yw[/video]
Em dùng PM nào mà ra được bộ số liệu đó vậy?
Em 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
PHP:
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
Lấy một cái hình trắng đen bỏ vào Sheet1, kết quả sẽ có ở Sheet2
Chỉnh các thông số i, j lại cho trùng với điểm ảnh đầu tiên của cái hình của mình.
Code sẽ quét từ điểm ảnh đó đến vị trí con chuột. Vì vậy nên trước khi chạy code anh đặt con chuột tại điểm ảnh cuối cùng của cái hình.
Sau khi có được số liệu thì em cộng trừ nhân chia để che mắt thôi, để nguyên bộ số liệu đó vẫn được.
Thay dòng
PHP:
Sheet2.Cells(i - 94, j - 28).Value = lColor
Bằng dòng
PHP:
Sheet2.Cells(i - 94, j - 28).Interior.Color = lColor
Anh sẽ có một bức ảnh trên Excel với mỗi ô là một điểm ảnh (Làm cái này thì có thể làm ảnh màu được)
 

File đính kèm

Lần chỉnh sửa cuối:
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)
 
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)
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.
 
Em 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
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
 

File đính kè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
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.
Nghe nói ngưới ta dùng hình thức này để viết mật mã. Không biết có đúng không. Còn phân tích màu từng điểm ảnh và chuyển thành mã thì nghe nói lâu rồi.
Cám ơn hai bạn nhiều.
 
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à --=0
 
Xin gửi tiếp đến các bạn một câu đố vui nữa.
Làm thế nào để tô được màu như thế này:
ToMau.JPG



Và như thế này:

QuocKy.JPG
 
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?
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)
 
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)
Tô màu chữ cũng là tô màu. Anh tô vậy là hợp lệ rồi.
Version nào làm cũng được, không giới hạn.
 
Tạm thời làm được cái dưới

View attachment 64523

Nhưng cũng không chắc đã đúng ý tác giả

Đú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)
 
Đú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é.
 
Sẳn đây tôi đố các bạn, làm sao có thể làm được như hình dưới đây?
 

File đính kèm

  • GPE.jpg
    GPE.jpg
    17.8 KB · Đọc: 92

Chính xác! Không sai vào đâu được! Khi dùng Table trong XL 2007 ta cứ làm bình thường, khi ô hiện hành nằm trong bảng, ta kéo Scroll xuống che dòng tiêu đề, thì tiêu đề cột sẽ hiển thị trên Header Column.

==> Không biết từ chỗ này, có thể phát triển thành Code được không nhỉ???
 
Lần chỉnh sửa cuối:

File đính kèm

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
 
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
1 ví dụ cho trường hợp NumberText
PHP:
=LEFT($A1,COUNT(IF(ISERROR(1*MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)),"",1)))
Trường hợp TextNumber cũng tương tự (thay LEFT bằng RIGHT)
 
Lần chỉnh sửa cuối:
1 ví dụ cho trường hợp NumberText
PHP:
=LEFT($A1,COUNT(IF(ISERROR(1*MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)),"",1)))
Trường hợp TextNumber cũng tương tự (thay LEFT bằng RIGHT)
Em đã thử công thức trên nhưng sao chỉ tách được số đầu tiên thôi anh ơi.
NumberText.png
 
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
Thêm một cách khác:
Mã:
=LEFT(A1,SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,ROW($1:$10)-1,""))))
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
100 bạn tham dự GPE lần 5 >> 1005
8
h ngày 23 tháng 7 năm 2011 >> 82372011
 
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
100 bạn tham dự GPE lần 5 >> 1005
8
h ngày 23 tháng 7 năm 2011 >> 82372011
Đú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...
 
Đú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...
Đươ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 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.
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ô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)
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.
 
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ì đó... 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:
PHP:
Temp =IF(ISNUMBER(1*MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),"")
- Công thức tại B2:
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
 

File đính kèm

Lần chỉnh sửa cuối:
1 ví dụ cho trường hợp NumberText
PHP:
=LEFT($A1,COUNT(IF(ISERROR(1*MID($A1,ROW(INDIRECT("1:"&LEN($A1))),1)),"",1)))
Trường hợp TextNumber cũng tương tự (thay LEFT bằng RIGHT)
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ào
PHP:
=RIGHT(A1;COUNT(1*MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1)))
Vì em có thử hàm Count không đếm giá trị #Value không biết có đúng không
 
Lần chỉnh sửa cuối:
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:
PHP:
Temp =IF(ISNUMBER(1*MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)),ROW(INDIRECT("1:"&LEN($A2))),"")
- Công thức tại B2:
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
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.
Mã:
=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), ...

Cách này cũng khá thú vị mà không cần dùng C+S+E nè:
PHP:
=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), ...
PHP:
=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))))
Nhưng cái này lại cần C+S+E.

Đúng là công thức có nhiều giải pháp.
 
Thêm một cách khác:
Mã:
=LEFT(A1,SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,ROW($1:$10)-1,""))))
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
100 bạn tham dự GPE lần 5 >> 1005
8
h ngày 23 tháng 7 năm 2011 >> 82372011

Search thử trên mạng thấy có mấy giải pháp:

Công thức mảng
PHP:
=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))

Cách này không là công thức mảng, làm ví dụ cho chuỗi dài 25 ký tự (nếu chuỗi dài hơn thì điều chỉnh trong công thức tại hàm Row)
PHP:
=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)

Công thức mảng
PHP:
=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)

TTP
 
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ữ:

PHP:
=REGEX.SUBSTITUTE(A2,"0|1|2|3|4|5|6|7|8|9","")
Để tải MoreFunc các bạn vào đường dẫn dưới đây:
http://download.cnet.com/Morefunc/3000-2077_4-10423159.html
 
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ữ:

PHP:
=REGEX.SUBSTITUTE(A2,"0|1|2|3|4|5|6|7|8|9","")
Để tải MoreFunc các bạn vào đường dẫn dưới đây:
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ách-số-không-dùng-vòng-lặp
 
Ẹ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

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é!
 

File đính kèm

  • Picture123.jpg
    Picture123.jpg
    19.6 KB · Đọc: 60
Lần chỉnh sửa cuối:
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é!
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)...
Ngoài ra dùng Add-In hổ trợ cũng có cái bất tiện khi mang file sang máy khác... Thôi thì cái gì ta tự mình làm được thì... ta cứ làm mà xài thôi (mang sang đâu cũng xài tốt)
Ẹc... Ẹc...
-------------
Mà nè, bạn thử liệt kê những công cụ gì đó trong MoreFunc mà bạn cho là độc đáo và chưa có trên GPE này xem
 
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é!
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.
 
Có bao giờ diễn đàn mình tập hợp tất cả các công thức, hàm tự tạo thành một Addins tổng hợp như vậy chưa? Hay chỉ cụ thể một trường hợp nào đó thôi? Và có bao giờ hướng dẫn các hàm đó trong Addins để sử dụng như thế nào chưa? Đó là cách thức rất độc đáo của Addins này. Tôi thấy cao thủ thì không cần đến nó, nhưng với vài trường hợp thì sử dụng nó cũng tốt thôi.

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???
 
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...
 
Thì bạn làm luôn đi... chỉ có việc tập hợp lại thôi mà
Ẹc... Ẹc...

Ẹ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!!!
 
Ẹ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!!!
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)
 
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)
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.
 
Lần chỉnh sửa cuối:
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:

TachchuRanhieucot.jpg

Chúc vui vẻ,

Thanh Phong
 

File đính kèm

Lần chỉnh sửa cuối:
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
Món này làm hoài, xem ra chẳng khó tí nào. Công thức cho B1:
PHP:
=TRIM(MID(SUBSTITUTE(TRIM($A1)," ",REPT(" ",LEN($A1))),1+(COLUMNS($A:A)-1)*LEN($A1),LEN($A1)))
Kéo fill sang phải và xuống dưới
Ẹc... Ẹc...
 
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
Cách 1:
Đặt 1 name:
Mã:
Arr=EVALUATE("{"""&SUBSTITUTE($A1," ",""",""")&"""}")
Và dùng công thức:
Mã:
B1=IF(COLUMN(A:A)>COUNTA(Arr),"",INDEX(Arr,COLUMN(A:A)))
Cách 2:
Mã:
B1=TRIM(MID(REPT(" ",100)&SUBSTITUTE($A1," ",REPT(" ",200)),(COLUMN(A:A)-1)*200+1,200))
 
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
 
Đố 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ụ:

TrichCumSoThuN_trongchuoi.jpg

Chúc vui,

Thanh Phong
 

File đính kèm

Ái dza, khỏi name luôn
Mã:
=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))
Công thức cho cell B3
Ctrl + Shift + Enter rồi kéo fill sang phải và xuống dươi
--------------
Bài này nếu làm trên Excel 2003 thì e rằng không đặt name là không xong!
 

File đính kèm

Lần chỉnh sửa cuối:
Một câu đố tách chuỗi khác

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ụ.
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
Được dùng name nhưng không dùng cột phụ.
 
Cuối tuần nên ế. Đầu tuần không biết có ai tham gia không.
 
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ụ.
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
Được dùng name nhưng không dùng cột phụ.
huuthang_bd
Cuối tuần nên ế. Đầu tuần không biết có ai tham gia không.
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)
 

File đính kè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)
Hoan nghênh vị khách đầu tiên (ế quá mà --=0)
Ă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á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.
Ý 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 --=0
 
Hoan nghênh vị khách đầu tiên (ế quá mà --=0)
Ă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 --=0
Híc.
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,...).
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ố
Ăn gian cái gì ăn gian chứ sửa dữ liệu gốc là không ổn nghen anh.
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ói chung, bài này giải vui chơi để thấy áp dụng hàm vẫn giải được những yêu cầu rắc rối này thôi chứ ...đau đầu lắm bạn ơi
Thân
 
Lâu quá không ai giải thôi thì mình gửi cách giải của mình vậy.
Để thực hiện yêu cầu có thể có nhiều cách. Đây là một trong các cách.
 

File đính kèm

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

Back
Top Bottom