Xin hỏi hàm lấy nội dung công thức (chỉ cần bỏ dấu =) từ ô đã có công thức (1 người xem)

  • Thread starter Thread starter seaboy
  • Ngày gửi Ngày gửi

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

seaboy

Thành viên mới
Tham gia
13/1/08
Bài viết
4
Được thích
1
Chào các bạn, tình hình là mình đang phân tích dự án bằng excel, mình đang loay hoay tìm hàm nào mà có thể trích xuất nội dung công thức (chỉ cần bỏ dấu =) từ ô đã có công thức.

Ví dụ : ô A1 có công thức “=B1”, trong excel có hàm nào có thể trích xuất ra được kết quả là “B1” được không ?

Mong mọi người chỉ giúp với, thanks so much (^.^)
 
Chỉ dùng VBA thôi, Excel không có hàm như vậy. Tôi gởi cho bạn một hàm code sưu tầm được của ttphong2007 :
PHP:
'Function recorded 2/20/01 by Vo Thi Kim Hoa
'Public Static
Function FD(mycell)
If mycell = "" Then
  FD = ""
Else
 If Left(mycell.Formula, 1) <> "=" Then
    a = mycell.Address(0, 0)
    FD = a + "=Value"
 Else
  a = mycell.Address(0, 0)
  f = mycell.Formula
  FD = a + f
 End If
End If
'Exit Function
End Function

cú pháp

Ví dụ : ô A1 có công thức “=B1”
A2 = fd(A1) sẽ ra là "A1= B1"

Nhưng mà theo tôi cách này nhìn rối lắm, chỉ phù hợp để đọc công thức tại cell cần tìm thôi. Còn muốn xem cell nào có liên quan đến công thức trong cell này hay cell này được dùng trong công thức ở cell nào thì nên dùng chức năng Formula Auditing của Excel.
 
Chào các bạn, tình hình là mình đang phân tích dự án bằng excel, mình đang loay hoay tìm hàm nào mà có thể trích xuất nội dung công thức (chỉ cần bỏ dấu =) từ ô đã có công thức.

Ví dụ : ô A1 có công thức “=B1”, trong excel có hàm nào có thể trích xuất ra được kết quả là “B1” được không ?

Mong mọi người chỉ giúp với, thanks so much (^.^)
Rất đơn giãn, dùng hàm GET.CELL(6...) --> Khỏi macro luôn
Xem file nha
Tham khảo thêm kỷ thuật Define name cho XL4 tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=7613
 

File đính kèm

Chào các bạn, tình hình là mình đang phân tích dự án bằng excel, mình đang loay hoay tìm hàm nào mà có thể trích xuất nội dung công thức (chỉ cần bỏ dấu =) từ ô đã có công thức.

Ví dụ : ô A1 có công thức “=B1”, trong excel có hàm nào có thể trích xuất ra được kết quả là “B1” được không ?

Mong mọi người chỉ giúp với, thanks so much (^.^)
Nếu muốn bỏ dấu " = " thì sửa lại name trong file của ndu96081631
PHP:
GetFor =GET.CELL(6,Sheet1!$A3)
Sửa thành
GetFor =RIGHT(GET.CELL(6,Sheet1!$A3),LEN(GET.CELL(6,Sheet1!$A3))-1)
 
Nếu muốn bỏ dấu " = " thì sửa lại name trong file của ndu96081631
PHP:
GetFor =GET.CELL(6,Sheet1!$A3)
Sửa thành
GetFor =RIGHT(GET.CELL(6,Sheet1!$A3),LEN(GET.CELL(6,Sheet1!$A3))-1)

Có lẽ như thế này sẽ ngắn hơn chút:
PHP:
GetFor = SUBSTITUTE(GET.CELL(6,Sheet1!$A1),"=","")
TUy nhiên đối với những công thức lồng dạng True, False thì cách này xem ra không hiệu quả, ví dụ:
Đành phải quay lại cách của boyxin vậy.
 
Lần chỉnh sửa cuối:
Có lẽ như thế này sẽ ngắn hơn chút:
PHP:
GetFor = SUBSTITUTE(GET.CELL(6,Sheet1!$A1),"=","")
TUy nhiên đối với những công thức lồng dạng True, False thì cách này xem ra không hiệu quả, ví dụ:

Đành phải quay lại cách của boyxin vậy.
Thế thì dùng hàm REPLACE vậy!
GetFor =REPLACE(GET.CELL(6,Sheet1!$A1),1,1,"")
Sorry! Hồi này chưa để ý, giờ sửa lại đây!
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi thử đâu thấy vấn đề gì đâu

Ô A1 hiện có công thức là: =IF(B1>5,"đúng","sai")

Anh thử sửa lại ô A1 như sau: A1 = IF(B1>=5,"đúng","sai")

Cho nên em mới nói là công thức của em đưa ra chưa tổng quát!

GetFor =REPLACE(GET.CELL(6,Sheet1!$A1),1,1,"")

Hàm replace đơn giản thế mà em không nhớ! Chắc đây là công thức chuẩn cho yêu cầu này luôn vậy!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình làm chưa được và cũng chưa hiểu cách làm của các bạn lắm +-+-+-+

File Get_Formula_02 mình down về rồi nhưng ko thấy hàm cụ thể trong ô kết quả (chỉ thấy từ "=GetFor" tô màu xanh dương thôi), ngoài việc bật Low của Macro-Security mình có cần down thêm add-in hay XL4 Command zì zì đó nữa ko -=09=

Để ứng dụng được cách trên vào file của mình thì cần làm trình tự các bước như thế nào, mọi người hướng dẫn chi tiết zùm mình với, thanks so much (^.^)
 
Mình làm chưa được và cũng chưa hiểu cách làm của các bạn lắm +-+-+-+

File Get_Formula_02 mình down về rồi nhưng ko thấy hàm cụ thể trong ô kết quả (chỉ thấy từ "=GetFor" tô màu xanh dương thôi), ngoài việc bật Low của Macro-Security mình có cần down thêm add-in hay XL4 Command zì zì đó nữa ko -=09=

Để ứng dụng được cách trên vào file của mình thì cần làm trình tự các bước như thế nào, mọi người hướng dẫn chi tiết zùm mình với, thanks so much (^.^)

Cái này là hàm Macro4, bạn vào Insert/Name/Define sẽ thấy có một Name tên GetFor. Đây không phải là VBA gì cả.
 
Với câu hỏi này, không biết bạn cần để làm gì, như để in ra đọc công thức thì bạn chỉ cần nhấn tổ hợ phím Ctrl+~ là OK.
 
Bạn có thể dùng VBA để tạo hàm này nhe:

Function CongThuc(myC As Range) As String
If myC.HasFormula Then
CongThuc = Mid(myC.Formula, 2)
Else
CongThuc = "Không có CT"
End If
End Function

Chúc thành công!
 
Chà các bạn có nhiều cách quá!... mình cũng có một cách khá đơn giản như thế này: bạn gõ Ctrl + H, sau đó ô trên gõ dấu "=" ô dưới gõ một cái gì đó khác người tí là được.
Sau đó muốn phục hồi thì Ctrl+Z; hoặc làm ngược lại thao tác trên.
Cảm ơn các bạn.
 
Với câu hỏi này, không biết bạn cần để làm gì, như để in ra đọc công thức thì bạn chỉ cần nhấn tổ hợ phím Ctrl+~ là OK.
Công thức này rất hay có thể kết hợp với hàm INDIRECT để làm file thống kê mà có liên kết đến nhiều file có cấu trúc như nhau để biết được đường dẫn(nếu có file mở hoặc không mở) mà không cần sử dụng VBA để lấy đường dẫn
 
Lần chỉnh sửa cuối:
Mình làm chưa được và cũng chưa hiểu cách làm của các bạn lắm +-+-+-+

File Get_Formula_02 mình down về rồi nhưng ko thấy hàm cụ thể trong ô kết quả (chỉ thấy từ "=GetFor" tô màu xanh dương thôi), ngoài việc bật Low của Macro-Security mình có cần down thêm add-in hay XL4 Command zì zì đó nữa ko -=09=

Để ứng dụng được cách trên vào file của mình thì cần làm trình tự các bước như thế nào, mọi người hướng dẫn chi tiết zùm mình với, thanks so much (^.^)

Có thể nhu cầu của bạn phức tạp hơn mình nghĩ, nhưng có thể làm thế này

Chọn vùng cần xoá dấu =, bầm Ctrl +F thay thế cái dấu = là xong chuyện

Nhớ sao chép lại bản gốc trước nhé
 
Lần chỉnh sửa cuối:
Có thể nhu cầu của bạn phức tạp hơn mình nghĩ, nhưng có thể làm thế này

Chọn vùng cần xoá dấu =, bầm Ctrl +F thay thế cái dấu = là xong chuyện

Nhớ sao chép lại bản gốc trước nhé

Muốn xem đối số của công thức thì chọn vùng rồi Replace dấu "=" bằng dấu "_" muốn quay lại công thức thì làm ngược lại Replace dấu "_" bằng dấu "=". Khỏi cần sao chép.
 

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

Back
Top Bottom