Từ đầu tiên trong một câu

  • Thread starter KKBS
  • Ngày gửi
K

KKBS

Thành viên sơ cấp
23/2/05
53
0
0
46
HCM
#1
Trong Excel, có cách gì để trích ra từ đầu tiên trong một câu không? Tôi không muốn dùng VBA vì đa số người dùng Excel không phải là dân lập trình nên sẽ khó khăn khi nhìn thấy mấy câu lệnh VBA !

Một trong những ứng dụng của việc này là khi họ và tên của nhân viên đã (lỡ) được gõ chung vào một ô, sau đó lại muốn tách ra.

Thân,
KKBS.
 
L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#2
KKBS nói:
Trong Excel, có cách gì để trích ra từ đầu tiên trong một câu không? Tôi không muốn dùng VBA vì đa số người dùng Excel không phải là dân lập trình nên sẽ khó khăn khi nhìn thấy mấy câu lệnh VBA !

Một trong những ứng dụng của việc này là khi họ và tên của nhân viên đã (lỡ) được gõ chung vào một ô, sau đó lại muốn tách ra.

Thân,
KKBS.
To: KKBS,
Thực sự ra đối với yêu cầu trên của bạn đâu có gì khó lắm đâu! Tôi nghĩ bạn dư sức làm việc này bằng việc kết hợp hàm tìm kiếm khỏang trống find và hàm left là bạn có thể làm được.
Chúc bạn khỏe.
Lê Văn Duyệt
 
K

KKBS

Thành viên sơ cấp
23/2/05
53
0
0
46
HCM
#3
Đúng là tôi có thể tự làm được, nhưng tôi muốn post bài này lên như một câu hỏi mở để mọi người cùng suy nghĩ ra một hàm phối hợp "đẹp nhất" có thể áp dụng được vì tôi nghĩ ứng dụng của nó rất thực tiễn. Sự kết hợp các hàm phải cho ra một kết quả chính xác cho nhiều trường hợp khác nhau có thể xảy ra.

Thân,
KKBS.
 
H

HyperVN

<b>Phu hót rác</b>
17/3/03
1,833
14
0
42
Hải Phòng
www.webketoan.vn
#4
Mình cũng muốn thấy công thức đó trên diễn đàn, ai có không nhỉ, đáng tiếc là HyperVN hơi yếu về hàm trong excel (chỉ dùng mấy hàm thông dụng thôi).
 
Q

Quỳnh

Thành viên sơ cấp
27/1/05
22
0
0
41
Hà Nội
#5
Em cũng hay dùng cách của bác Levanduyet:

=LEFT(A1,FIND(" ",A1,1))

A1 là ô chứa Họ tên.
 
L

levanduyet

Welcome
16/10/04
535
11
18
HCM
my.opera.com
#7
OverAC nói:
Chỉnh lại cái của Quỳnh một chút nhé

=LEFT(trim(A1),FIND(" ",trim(A1),1))
To: OverAC,
Chào, em lại xuất hiện hả? Hay chỉ xuất hiện...ít ít thôi!
Chúc em khỏe.
Lê Văn Duyệt
 
K

KKBS

Thành viên sơ cấp
23/2/05
53
0
0
46
HCM
#9
Công thức này đến đây "đủ và đẹp" chưa các bạn?

Thân,
KKBS.
 
D

dinhlinh

Thành viên sơ cấp
24/12/04
15
0
1
Ho Chi Minh
#10
Nếu chỉ lấy từ đầu tiên, không có khỏang trắng
=LEFT(trim(A1),FIND(" ",trim(A1),1)-1)
 
ketoan4mat

ketoan4mat

Thành viên thân thiết
24/4/03
3,910
14
38
Sài Gòn đẹp lắm
#11
Cái này trong '"Tiện ích tiếng Việt trong Excel" có mà. fải ko bà con?? À, sẵn đây mình muốn hỏi về "Tiện ích tiếng Việt trong Excel" được ko hả? Vì khi mình load file này về thì use được. Nhưng khi tắt máy, mở lai thì "Tiện ích tiếng Việt trong Excel" mất đi, ko biết nó nằm ở đâu hả?
Thân,
 
Sửa lần cuối:
T

Tuanktcdcn

Lão già ham vui
18/6/04
548
51
28
41
Hà Nội
www.bluesofts.net
#12
Lấy từ cuối cùng của chuỗi!

Lấy từ cuối cùng của chuỗi:
Phần này có thể tách riêng "Tên" trong một cột "Họ và Tên".
=Right(Chuoi,Find(" ",Mid(Chuoi,Len(Chuoi)-0,1)&Mid(Chuoi,Len(Chuoi)-1,1)&Mid(Chuoi,Len(Chuoi)-2,1)&Mid(Chuoi,Len(Chuoi)-3,1)&Mid(Chuoi,Len(Chuoi)-4,1)&Mid(Chuoi,Len(Chuoi)-5,1)&Mid(Chuoi,Len(Chuoi)-6,1)&Mid(Chuoi,Len(Chuoi)-7,1))-1)
Từ Việt Nam có nghĩa chỉ dài tối đa 7 ký tự.
 
S

SA_DQ

Thành viên thân thiết
29/6/05
435
38
28
61
HCM city
#13
Cắt Chuỗi đa năng đây, xin biếu tham khảo!

Function HoTen(SHoTen as string, SLoai as string) as string
dim Chu as String, ii as Integer, VTri as Integer
SLoai=Ucase$(SLoai)
Select Case SLoai
Case ''H''
HoTen=left(SHoTen,InStr(SHoTen & '' '','' '') 'Chú í mình Kh nhập '' đc
Case ''T'',''L''
Chu=SHoTen
Do
ii=InStr(Chu,'' ''): if ii=0 then exit do
Chu=Mid(Chu,1 + ii): VTri = ii + VTri
Loop
HoTen=IIf(SLoai=''T'', Chu, left(SHoTen,VTri)
Case Else
HoTen = ''Xin Chào'' :two:
End Select
End Function :wall:
Bổ sung lúc 12H50 8/08: Quá hay, nhưng thông cảm vì mình vẫn dùng W98 nên không có hàm InStrRev(SChu," ")
 
Sửa lần cuối:
W

workman

Thành viên sơ cấp
22/7/05
372
0
0
46
Ho Chi Minh
#14
rất hay, hoan hô SA DQ. Tuy nhiên bạn nên dùng hàm InStrRev sẽ nhanh hơn một chút (do không cần dùng vòng lặp).

Xin đóng góp một hàm đơn giản chỉ gồm 1 dòng lệnh thôi. Kết quả tương tự như hàm của SA DQ

Function HoTen(SHoTen As String, SLoai As String) As String

HoTen = IIf(SLoai = "H", Left(SHoTen, InStr(SHoTen & " ", " ")), IIf(SLoai = "T", Right(SHoTen, Len(SHoTen) - InStrRev(SHoTen, " ")), Left(SHoTen, InStrRev(SHoTen, " "))))

End Function
 
K

KKBS

Thành viên sơ cấp
23/2/05
53
0
0
46
HCM
#15
Lập trình có một nét đẹp không thể nào chối cãi được. Tuy nhiên, ở mức độ người sử dụng, tôi vẫn cho rằng việc phối hợp các hàm có sẵn của Excel là đẹp hơn. Excel hay hơn các ứng dụng bảng tính khác nhờ chức năng phong phú và sự "thông minh" của nó. Ngoài ra, thư viện hàm dựng sẳn trong Excel là khá "đầy đủ". Trong phạm vi bài này, tôi cho rằng công thức mà các bạn đã nêu là đủ sử dụng rồi, không cần phải dùng tới VBA. Tuy nhiên trong công thức đó cần bổ sung thêm một chút để không bị lỗi khi trong ô chỉ có một từ thôi. Ngoài ra, không nên xem tên không dài quá 7 ký tự vì như vậy không được tổng quát cho lắm, rủi trong công ty có một ông Tây ba lô đang làm việc thì sao :)

Ý kiến trên không nhằm mục đích phê bình, chỉ là ý kiến chủ quan của tôi dưới góc độ một người sử dụng bình thường nhất thôi.

Thân.
KKBS.
 
W

workman

Thành viên sơ cấp
22/7/05
372
0
0
46
Ho Chi Minh
#16
Tôi hoàn toàn tán thành ý của bác là nếu dùng hàm được càng nhiều càng tốt. Tuy nhiên trong thực tế đôi khi hàm không đủ sức giải quyết, hoặc nếu giải quyết được thì cũng trầy vi tróc vảy, thì vẫn nên có VBA hỗ trợ. Đặc biệt khi gặp data quá lớn mà dùng công thức mảng thì treo máy là cái chắc. Lúc này mới thấy VBA ngon lành hơn.
 
K

KKBS

Thành viên sơ cấp
23/2/05
53
0
0
46
HCM
#17
Sẽ không có chuyện đúng hay sai trong vấn đề chọn công cụ để giải quyết công việc vì khi dùng sở trường của mình để giải quyết công việc thì vẫn tốt hơn, giống chuyện dùng thương hay dùng đao gì miễn là đánh hay là được. Tuy nhiên, dưới gốc độ là người lập trình, nếu các hàm built-in của Excel mà chạy chậm thì ta viết VBA cũng sẽ chậm, vì thuật toán bên trong của Excel phần lớn là tối ưu. Khi dữ liệu nhiều thì không nên dùng Excel nữa, phải chuyển sang Access hay một hệ cơ sở dữ liệu chuyên dụng như MS SQL chẳng hạn. Nhưng dù sao, tôi vẫn thừa nhận VBA là công cụ rất tốt của MS, giải quyết được nhiều việc mà nếu không có nó, Excel tự thân nó sẽ bó tay :)

Thân,
KKBS.
 

BQT trực tuyến

  • Lặng Yên
    Lặng Yên
    Điều hành cao cấp

Thành viên trực tuyến

  • Tú Vưu
  • nhungle25790
  • adkytl
  • xediengiatot
  • HoangAnhPhong411
  • daongocnam0603
  • Kim Anh 1990
  • minhly0309
  • Trâm NTN
  • Lặng Yên
  • Linhcnsg
  • Stupidgirl1002
  • homeclassic3

Xem nhiều