Giúp tạo 1 hàm theo ý muốn

Liên hệ QC

kevintoro

Thành viên mới
Tham gia
7/3/09
Bài viết
18
Được thích
2
AE có thể giúp mình lập một hàm,mình bỏ excel lâu quá không nhớ gì hết hiz.mình có 1 file excel,mình muốn lập 1 hàm sao cho khi text trong D3 có dòng chữ "công ty trách nhiệm hữu hạn","cổ phần",hợp tác xã","dịch vụ",thi ben C3 sẽ được thay bằng "TNHH","CP","HTX","DV".còn lại trong text D3 không xuất hiện mấy chữ trên thi C3 là "DNTN"
Hi vọng được sự giúp đỡ của AE vì chiều nay fai làm cho xếp rồi hiz
 
Đơn giản nhất là bạn cứ if cho khỏe nhé:
C3=IF(D3="công ty trách nhiệm hữu hạn","TNHH",IF(D3="cổ phần","CP",IF(D3="hợp tác xã","HTX",IF(D3="dịch vụ","DV","DNNT"))))
 
Đơn giản nhất là bạn cứ if cho khỏe nhé:
C3=IF(D3="công ty trách nhiệm hữu hạn","TNHH",IF(D3="cổ phần","CP",IF(D3="hợp tác xã","HTX",IF(D3="dịch vụ","DV","DNNT"))))
Không được à nha! Phải dùng hàm Search hoặc cái gì đó thuộc dạng TÌM TEXT
 
đúng rồi tại D3 của mình là 1 text trong đó có tên của công ty chứ không phải là chữ ,hi vọng được AE giúp đỡ
 
đúng rồi tại D3 của mình là 1 text trong đó có tên của công ty chứ không phải là chữ ,hi vọng được AE giúp đỡ
Dạng bài toán này không khó... Làm thì chẳng có vấn đề gì nhưng mà.. nói thật, không có file đính kèm nên cảm thấy lười lắm!
(Ai hỏi bài mà có kèm file thì chắc chắn nhận được nhiều trợ giúp hơn)
 
Ok mình sẽ gởi file đính kèm,hi vọng AE giúp nha,sếp hối quá hiz
 

File đính kèm

Ok mình sẽ gởi file đính kèm,hi vọng AE giúp nha,sếp hối quá hiz
Nếu Cty có tên là:
CÔNG TY TRÁCH NHIỆM HỮU HẠN THƯƠNG MẠI VÀ DỊCH VỤ
thì viết tắt là gì?
Trong khi chở đợi bạn trả lời mục này, tôi làm.. đại
 

File đính kèm

Lần chỉnh sửa cuối:
bạn vẫn để cho mình là TNHH & DV nha bạn,thank bạn đã quan tâm
 
Tại ô C3 bạn nhập công thức sau chắc được nhưng trông hơi kỳ 1 chút

Mã:
=CHOOSE(IF(TYPE(FIND("c«ng ty tr¸ch nhiÖn h÷u h¹n",D3,1))=16,0,1)+IF(TYPE(FIND("cæ phÇn",D3,1))=16,0,2)+IF(TYPE(FIND("hîp t¸c x·",D3,1))=16,0,3)+IF(TYPE(FIND("dÞch vô",D3,1))=16,0,4)+1,"DNTN","TNHH","CP","HTX","DV")
 
AE có thể giúp mình lập một hàm,mình bỏ excel lâu quá không nhớ gì hết hiz.mình có 1 file excel,mình muốn lập 1 hàm sao cho khi text trong D3 có dòng chữ "công ty trách nhiệm hữu hạn","cổ phần",hợp tác xã","dịch vụ",thi ben C3 sẽ được thay bằng "TNHH","CP","HTX","DV".còn lại trong text D3 không xuất hiện mấy chữ trên thi C3 là "DNTN"
Hi vọng được sự giúp đỡ của AE vì chiều nay fai làm cho xếp rồi hiz
Bạn xem File mình làm xó giống cái bạn cần không nhé
 

File đính kèm

ok mình thank bạn nhiều,có dịp mình uống cà phê nha hihi
 
Bạn dùng hàm này nha:

Các bước chuẩn bị:
(1) Thêm 1 cột bên phải cột cần chuyển đổi;
(2) Thêm trang tính trắng & nhập vô đó các dòng muốn chuyển đổi, như sau:
A|B
Old|New
CÔNG TY TRÁCH NHIỆM HỮU HẠN|TNHH
CỔ PHẦN|CP
HỢP TÁC XÃ|HTX
DỊCH VỤ|DV
GIẢI PHÁP EXCEL.COM|GPE
. . . .
Sau đó bôi chọn vùng này & gán cho nó cái tên gợi cảm, như 'BgKe'
(3) Chép hàm sau vô cửa sổ VBE

PHP:
Option Explicit
Function ChuyenDoi(Old As Range, Chuan As Range) As String
 Dim Rw As Long, Jj As Long
 
 Rw = Chuan.Rows.Count
 For Jj = 1 To Rw
   With Chuan
      If InStr(Old.Value, .Cells(Jj, 1).Value) > 0 Then
         ChuyenDoi = Replace(Old, .Cells(Jj, 1).Value, .Cells(Jj, 2).Value)
         Exit Function
      End If
   End With
 Next Jj
End Function
Các bước thực hiện

(*) Tại cột 'E' bạn vừa thêm, ô [E2] bạn nhập cú pháp hàm sau"
=chuyendoi(D2,BgKe)
Sau khi {ENTER} nếu thấy đúng như í thì copy xuống;
(**) Copy & dán Special ngay tại cột này
(***) Xóa cột nào bạn thấy không cần nữa.

Chú ý: Hàm chưa làm với những câu có hai từ/ngữ cần chuyển đổi;
Nếu có như cầu này, cần sửa lại hàm xíu!
Chúc vui!

 
Chỉnh sửa lần cuối bởi điều hành viên:
Tạm sửa lại lần 2 theo ý bạn!
(bài này làm bằng VBA xem chừng dể hơn)
Anh ơi, "DNTN" chứ hỏng phải là "DNTT"...
Xin mượn file của anh, thêm một cột để bỏ cái UDF của em vào:
PHP:
Option Explicit
Function TenTat(Ten As String, BangDo As Range) As String
    On Error Resume Next
    Dim i, j, iC As Integer
    Dim Ten0, Ten1, Ten2 As String
    iC = BangDo.Rows.Count
    For i = 1 To iC
        If InStr(1, Ten, BangDo(i, 1), 1) > 0 Then
            Ten0 = Replace(Ten, BangDo(i, 1), BangDo(i, 2), , , 1)
            Ten1 = BangDo(i, 2)
            Exit For
        End If
    Next
    If Ten1 = "" Then TenTat = "DNTN": Exit Function
    For j = 1 To Len(Ten0)
        If InStr(1, Ten0, BangDo(j, 1), 1) > 0 Then
            Ten2 = BangDo(j, 2): Exit For
        End If
    Next
    If Ten2 = "" Then TenTat = Ten1 Else TenTat = Ten1 & " & " & Ten2
End Function
Cái UDF này, em đã ngừa trước chuyện nhập tên Công ty bằng kiểu gì cũng được, không phân biệt chữ thường, chữ hoa.
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu dùng VBA thì dùng Find sẽ ngon hơn chứ
PHP:
Function TenTat(Ten As Range, Bang As Range, Optional Cot = 2) As String
  Dim Clls As Range, Temp As String
  For Each Clls In Bang.Resize(, 1)
    If Not Ten.Find(What:=Clls.Value, LookAt:=xlPart, MatchCase:=False) Is Nothing Then
      Temp = Temp & " & " & Clls.Offset(, Cot - 1)
    End If
  Next
  If Temp = "" Then
    TenTat = "DNTN"
  Else
    TenTat = Mid(Temp, 4, Len(Temp) - 3)
  End If
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
bạn ơi sao mình copy code của bạn qua bản excel khác nó không được,bạn có thể cho mình hỏi "BangDo" có fải là cái bảng ở sheet2 ko,làm cách nào đặt tên cho khối dữ liệu được
 
Nếu dùng VBA thì dùng Find sẽ ngon hơn chứ
PHP:
Function TenTat(Ten As Range, Bang As Range, Optional Cot = 2) As String
  Dim Clls As Range, Temp As String
  For Each Clls In Bang.Resize(, 1)
    If Not Ten.Find(What:=Clls.Value, LookAt:=xlPart, MatchCase:=False) Is Nothing Then
      Temp = Temp & " & " & Clls.Offset(, Cot - 1)
    End If
  Next
  If Temp = "" Then
    TenTat = "DNTN"
  Else
    TenTat = Mid(Temp, 4, Len(Temp) - 3)
  End If
End Function
Từ khi sinh ra cho đến giờ, hôm nay mới biết đến cái .Find(What:=... ,LookAt:=xlPart, MatchCase:=False)
Cảm ơn anh.
 
hiz minh can 2 bạn,mình chỉ muốn hỏi BangDo la khoi dữ liệu nào vậy hiz,mong 2 bạn chỉ mình
 
hiz minh can 2 bạn,mình chỉ muốn hỏi BangDo la khoi dữ liệu nào vậy hiz,mong 2 bạn chỉ mình
Bạn quét chọn vùng rồi gõ tên khối vào hộp Name Box ấy
Như hình này
attachment.php

Hoặc có thể vào menu Insert\Name\Define mà làm
 

File đính kèm

  • untitled1.JPG
    untitled1.JPG
    14 KB · Đọc: 35
Web KT

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

Back
Top Bottom