Excel - การสร้าง UDF จากสูตร


0

ฉันมักจะเจอสถานการณ์ที่ฉันเขียนสูตรคล้ายกันมาก แต่ใช้ verbose ที่ใช้ช่วงเดียวกันเป็นอาร์กิวเมนต์สำหรับฟังก์ชั่นหลาย ๆ อย่าง

ตัวอย่างง่ายๆให้พิจารณา:

=(A+B)/B

มีวิธีง่าย ๆ ที่ฉันสามารถสร้าง UDF เช่น:

=PCTCHANGE(A,B)

ที่สามารถทำการคำนวณเช่นเดียวกับข้างต้น? ฉันรู้ว่าด้วยตัวดำเนินการทางคณิตศาสตร์อย่างง่ายสิ่งนี้ไม่สำคัญ แต่มีวิธีง่าย ๆ ในการห่อบางสิ่งที่ซับซ้อนกว่าลงในฟังก์ชั่นง่าย ๆ เดียว

=IF(""=$U30,"",G30/IF(ROW(G30)-MONTH(U30)<ROW(K$8),G$5,OFFSET(G30,-MONTH(U30),0))-1)

ฉันต้องการหลีกเลี่ยงการแปลสูตรเป็นแอปพลิเคชันการเรียกใช้ฟังก์ชันแผ่นงาน ฉันถือว่าแอพพลิเคชั่นการประเมินค่าอาจเป็นส่วนหนึ่งของการแก้ปัญหา แต่ฉันไม่สามารถหาวิธีที่จะส่งช่วงผ่านเข้าไปใน UDF


มันจะมีประโยชน์มากหากเห็น UDF ที่คุณได้ลองไปแล้วหรือกำลังทำงานอยู่
CharlieRB

คุณสามารถแก้ไขสูตรที่สองเพื่อแสดงการอ้างอิงแบบสัมบูรณ์ / การอ้างอิงแบบสมบูรณ์ได้หรือไม่ G30 สามารถเป็น $ G30 เช่น $ U30 หรือไม่ K $ 8 และ G $ 5 เป็น $ K $ 8 และ $ G $ 5 หรือไม่ การขาดการอ้างอิงคอลัมน์แน่นอนทำให้ฉันกังวลว่าสูตรอาจไม่ทำงานเว้นแต่อยู่ในคอลัมน์ที่ระบุ
Jeeped

คำตอบ:


1

คุณจะต้องเปิด VBA และสร้าง UDF จากโมดูล

พิมพ์ ALT-F11 เพื่อเปิดตัวแก้ไข VBA ภายใต้โครงการของคุณให้คลิกขวาแล้วเลือกแทรก - & gt; โมดูล

พิมพ์สิ่งต่อไปนี้ลงในหน้าต่างตัวแก้ไข VBA

Function PctChange(A As Double, B As Double) As Double
   PctChange = (A + B) / B
End Function

เมื่อคุณเรียกใช้ฟังก์ชันให้ทำสิ่งที่คุณทำตามปกติ ในทุกประเภทเซลล์ PctChange (CellA, Cell B)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.