Công thức chia trong excel

Liên hệ QC

Cavenui

Thành viên mới
Tham gia
16/5/08
Bài viết
5
Được thích
1
Em chào các anh chị!

Em đang có một file excel cần phải xử lý mà không biết làm thế nào. Nội dung xin các anh/chị xem file đính kèm em up lên.
Em nói rõ thêm, đầu tiên là nhập vào từng ô số tiền Việt, sau đó em muốn vẫn trên những ô đó, số liệu chuyển thành $ bằng cách lấy các ô chia cho tỉ giá ở ô B1 (ô B1 gắn địa chỉ tuyệt đối). Yêu cầu là vẫn phải giữ nguyên nguyên tệ chứ không phải là số $ (khi đặt con trỏ vào ô và xem trên formular bar thì thấy các ô vẫn hiển thị cả nguyên tệ và công thức. Ví dụ:
xem ô A3 sẽ thấy 3.720468779 = A3/$B$1
Các anh/chị giúp em với, có thủ thuật là hay nhất, không phải sử dụng marco hay VBA.
Em xin cám ơn nhiều.
 

File đính kèm

  • Vi du.xls
    20.5 KB · Đọc: 292
Đọc cái bạn hỏi, rồi xem file của bạn... Khó hiểu bạn muốn gì quá.
Thôi thì tôi nói cả hai điều mà tôi cho là bạn đang thắc mắc.

1. Giữ nguyên dãy A3:C8, đổi số tiền Việt (VNĐ)trong đó thành tiển Đô (USD), theo tỷ giá ở B1 ?
Cách làm là chọn một dãy nào đó tương đương với A3:C8, ví dụ như A11:C16, rồi nhập công thức như bạn đã nói trong bài: =A3/$B$1

Bạn để ý nhé, cái dấu $ trong công thức này không phải là ký hiệu tiền tệ (đô-la) đâu. mà nó là dấu hiệu cho biết là "niêm phong" cái ô B1 này lại. Cái này: $B$1, người ta gọi là "địa chỉ tuyệt đối" của ô. Có nghĩa là công thức của bạn chạy từ A11 đến C16, nhưng trong công thức, số chia luôn luôn là con số ở ô B1.

Bạn có thể đọc bài này: http://www.giaiphapexcel.com/forum/showpost.php?p=70347&postcount=14 để hiểu thêm về "địa chỉ tuyệt đối", hay còn gọi là "tham chiếu tuyệt đối".​


2. Nhập giá trị vào A3:C8, rồi đổi thành tiền Đô ngay trong dãy A3:C8 này ?

Tôi đưa ra câu hỏi này bởi vì trong file bạn gửi, bạn đã hỏi một câu tương tự như vậy.

Nếu đúng là bạn muốn như thế, thì chẳng cần hàm, công thức chi hết, mà:
  • Bạn nhập hết mấy con số tiền đô đó vào trong A3:C8, rồi chọn cái ô B1, nhấn copy (Ctrl+C chẳng hạn)
  • Rồi bạn chọn khối A3:C8, chọn lệnh Paste Special (chắc bạn biết chứ?)
  • Đánh dấu vào tùy chọn Divide ở phần Operation
  • Rồi nhấn OK.
Thế là xong ! Các con số ở dãy A3:C8 biến thành tiền Đô hết!​
 
Đúng là Paste Special nhanh gọn nhất
Nhưng cái này:
xem ô A3 sẽ thấy 3.720468779 = A3/$B$1
Các anh/chị giúp em với, có thủ thuật là hay nhất, không phải sử dụng marco hay VBA.
Em xin cám ơn nhiều.
Thì hỏng hiểu sẽ xử lý thế nào? A3 mà =A3/$B$1 thì chỉ có VBA mới làm được! nhưng cũng chỉ cho ra giá trị chứ làm cách nào như bạn nói được
 
Đúng là Paste Special nhanh gọn nhất
Nhưng cái này:

Thì hỏng hiểu sẽ xử lý thế nào? A3 mà =A3/$B$1 thì chỉ có VBA mới làm được! nhưng cũng chỉ cho ra giá trị chứ làm cách nào như bạn nói được

Đúng là em muốn có một mẹo nào đó xử lý bài toán này, nếu làm theo các Paste Special thì nó cho kết quả đúng, nhưng không phải là điều em cần trong topic này.
Có bác nào nghĩ ra mẹo hay thì giúp em nhé.
Em gửi lại file.
 

File đính kèm

  • Vi du.xls
    23.5 KB · Đọc: 64
Cavenui đã viết:
Đúng là em muốn có một mẹo nào đó xử lý bài toán này, nếu làm theo các Paste Special thì nó cho kết quả đúng, nhưng không phải là điều em cần trong topic này.
Có bác nào nghĩ ra mẹo hay thì giúp em nhé.
Vậy cái em cần trong topic này là cái gì?

Còn cái em muốn (trong file gửi lại của em), thì tôi đã trả lời ở bài #2 rồi mà! Xem lại cái giả thiết số 1 đó.
 
Lần chỉnh sửa cuối:
Có phải như thế này không? (bằng VBA, ngoài ra chả có mẹo nào có thể)
Nếu phải, thì xài, nhưng chẳng hay tí nào. Vì trong bất kỳ 1 bảng biểu báo cáo nào, người đọc đều muốn xem cả 2 loại tiền, cả trên sheet lẫn khi in ra.
 

File đính kèm

  • TuChiaTygia.xls
    20.5 KB · Đọc: 78
Có phải như thế này không? (bằng VBA, ngoài ra chả có mẹo nào có thể)
Nếu phải, thì xài, nhưng chẳng hay tí nào. Vì trong bất kỳ 1 bảng biểu báo cáo nào, người đọc đều muốn xem cả 2 loại tiền, cả trên sheet lẫn khi in ra.
File này khi mở ra thì thấy đúng, xem code cũng thấy hợp lý. Nhưng nhập vào bất cứ số nào nó cũng cho kết quả =0/$B$1
Là sao thế nhỉ?
 
Bình thường mà Đức Huy! Mình đã test rồi mới post lên. Vừa giờ lại test nữa đấy.

Thêm cái hình làm bằng chứng trước toà! %#^#$

TuchiaTygia.gif
 
Lần chỉnh sửa cuối:
Thế thì lạ thật!
Trên máy tôi dùng OfficeXP nó toàn ra kết quả =0/...

Tui dùng Office 2003 cùng gặp tình trạng như ndu96081631
ndu96081631 đã viết:
File này khi mở ra thì thấy đúng, xem code cũng thấy hợp lý. Nhưng nhập vào bất cứ số nào nó cũng cho kết quả =0/$B$1

Nhưng chọn B1 = 1 rồi nhập cho các ô, sau đó thay đổi giá trị ô B1 thì lại ngon lành
 
Lần chỉnh sửa cuối:
Ah... tôi biết tại sao rồi!
Thêm Application.EnableEvents = FalseApplication.EnableEvents = True vào đầu và cuối code là xong chuyện
 
Cho tới giờ mình cũng chưa hiểu khi nào thì EnableEvents khi nào không, nhưng file vừa rồi chạy tốt trên máy mình, 1 cái ở sở, 1 cái ở nhà:


BeforeChange.gif
a
AfterChange.gif
 
Đương nhiên phải dùng EnableEvents rồi, vì:
-Nhập liệu vào là 1 Event
-Khi chuyển đổi số liệu, ra thành phẩm lại 1 Event nữa
Không khéo thì nó sẽ chạy code 2 lần hoặc bao nhiêu lần cũng chả biết!
Từng bị vụ này rất nhiều lần với code chuyển Text thành Date
Nhưng sau code này lại chạy được trên máy anh ptm0412 nhỉ? Lạ thật!
 
Đương nhiên phải dùng EnableEvents rồi, vì:
-Nhập liệu vào là 1 Event
-Khi chuyển đổi số liệu, ra thành phẩm lại 1 Event nữa
Không khéo thì nó sẽ chạy code 2 lần hoặc bao nhiêu lần cũng chả biết!
Từng bị vụ này rất nhiều lần với code chuyển Text thành Date
Nhưng sau code này lại chạy được trên máy anh ptm0412 nhỉ? Lạ thật!


Em chào các anh/chị!

File excel đúng là có vấn đề, khi em nhập vào thì nó toàn báo là 0/$B$1 hết, khi thay đổi giá trị ô B1 bằng 1 và nhập lại giá trị khác thì nó mới ra kết quả đúng.
@ anh Bùi-Nguyễn Triệu-Tường: Cách làm của anh cho ra kết quả đúng, nhưng không phải là cái em cần, em dẫn ra như sau:

Nếu ở ô A3, em nhập vào 100000, sau đó theo cách của anh em chia có ô tỉ giá là B1, thì sẽ ra kết quả là: 6.20347395

Nhìn trên thanh formular bar thì nó chỉ thể hiện mỗi số đó thôi.
Nếu ở ô A3, em nhập 100000 vào, sau đó em nhấn F2 rồi chia cho ô $B$1 thì kết quả ra tương tự, nhưng trên thanh Formular bar nó sẽ hiện ra:
=100000/$B$1

Cùng 1 kết quả nhưng em cần cách thể hiện thứ 2.
Sorry vì em phải viết dài dòng thế này, máy em không đủ công cụ để cắt, chụp màn hình, mong các anh/chị thông cảm.
Có anh/chị nào có các khác không ạ?
Em cám ơn các anh/chị rất nhiều.
 
Sửa code bài 6 theo cách bài 11 là được.
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
[B][COLOR=red]Application.EnableEvents = False[/COLOR][/B] 
On Error Resume Next
If Target.Column = 1 Then Target.Formula = "=" & Target.Value & "/$B$1"
[B][COLOR=red]Application.EnableEvents = True[/COLOR][/B]
End Sub
 
Em chào các anh chị!

Em đang có một file excel cần phải xử lý mà không biết làm thế nào. Nội dung xin các anh/chị xem file đính kèm em up lên.
Em nói rõ thêm, đầu tiên là nhập vào từng ô số tiền Việt, sau đó em muốn vẫn trên những ô đó, số liệu chuyển thành $ bằng cách lấy các ô chia cho tỉ giá ở ô B1 (ô B1 gắn địa chỉ tuyệt đối). Yêu cầu là vẫn phải giữ nguyên nguyên tệ chứ không phải là số $ (khi đặt con trỏ vào ô và xem trên formular bar thì thấy các ô vẫn hiển thị cả nguyên tệ và công thức. Ví dụ:
xem ô A3 sẽ thấy 3.720468779 = A3/$B$1
Các anh/chị giúp em với, có thủ thuật là hay nhất, không phải sử dụng marco hay VBA.
Em xin cám ơn nhiều.[/QUOTE



ti
 
Em chào các anh chị!

Em đang có một file excel cần phải xử lý mà không biết làm thế nào. Nội dung xin các anh/chị xem file đính kèm em up lên.
Em nói rõ thêm, đầu tiên là nhập vào từng ô số tiền Việt, sau đó em muốn vẫn trên những ô đó, số liệu chuyển thành $ bằng cách lấy các ô chia cho tỉ giá ở ô B1 (ô B1 gắn địa chỉ tuyệt đối). Yêu cầu là vẫn phải giữ nguyên nguyên tệ chứ không phải là số $ (khi đặt con trỏ vào ô và xem trên formular bar thì thấy các ô vẫn hiển thị cả nguyên tệ và công thức. Ví dụ:
xem ô A3 sẽ thấy 3.720468779 = A3/$B$1
Các anh/chị giúp em với, có thủ thuật là hay nhất, không phải sử dụng marco hay VBA.
Em xin cám ơn nhiều.[/QUOTE



ti
nếu công thức 1 cột và dữ liệu chia cho b1 thì mới dùng công thức được. còn trực tiếp gõ vào cell sau đó cell tự hiện công thức như vây thì phải dùng VBA
 
Web KT
Back
Top Bottom