Excel-ში მორგებული ფუნქციების უპირატესობები და ნაკლოვანებები

  • გააზიარეთ ეს
Michael Brown

ჩვენ ვაგრძელებთ გაკვეთილების სერიას მომხმარებლის განსაზღვრული ფუნქციების შესახებ. ჩვენს წინა სტატიებში გავეცანით მორგებულ ფუნქციებს და ვისწავლეთ მათი შექმნა და გამოყენება. ამ სახელმძღვანელოში ჩვენ განვიხილავთ ამ ფუნქციების გამოყენების სპეციფიკას და ვნახავთ განსხვავებებს UDF-ებსა და VBA მაკროებს შორის.

ამ სახელმძღვანელოში ჩვენ ვისწავლით შემდეგს:

    ვიმედოვნებთ, რომ ეს სტატია გაზრდის თქვენს ცოდნას UDF-ის შესახებ და დაგეხმარებათ მათი კიდევ უფრო ეფექტურად გამოყენებაში თქვენს Excel სამუშაო წიგნებში.

    UDF და მაკრო ერთი და იგივეა?

    როგორც მომხმარებლის განსაზღვრული ფუნქციები, ასევე VBA მაკროები იქმნება VBA რედაქტორის გამოყენებით. რა განსხვავებაა მათ შორის და რას მივცეთ უპირატესობა?

    ყველაზე მნიშვნელოვანი განსხვავება ისაა, რომ ფუნქცია ასრულებს გამოთვლას, მაკრო კი გარკვეულ მოქმედებას. მომხმარებლის განსაზღვრული ფუნქცია, როგორც ჩვეულებრივი Excel ფუნქცია, უნდა იყოს ჩაწერილი უჯრედში. მისი შესრულების შედეგად, უჯრედი აბრუნებს გარკვეულ მნიშვნელობას. ამავდროულად, შეუძლებელია სხვა უჯრედების მნიშვნელობების შეცვლა, ისევე როგორც მიმდინარე უჯრედის ზოგიერთი თვისება (კერძოდ, ფორმატირება). თუმცა, თქვენ შეგიძლიათ გამოიყენოთ მორგებული ფუნქცია პირობითი ფორმატირების ფორმულებში.

    UDF და VBA მაკრო მუშაობს სხვადასხვა გზით. მაგალითად, როდესაც თქვენ ქმნით UDF-ს Visual Basic რედაქტორში, იწყებთ განცხადებას ფუნქცია და ამთავრებთ დასრულების ფუნქციით . მაკროს ჩაწერისას იწყებ აგანცხადება Sub და მთავრდება End Sub.

    Visual Basic-ის ყველა ოპერატორის გამოყენება არ შეიძლება UDF-ების შესაქმნელად. ამ მიზეზით, მაკრო უფრო მრავალმხრივი გადაწყვეტაა.

    მაკრო არ მოითხოვს მომხმარებლისგან რაიმე არგუმენტის გადაცემას (და არ შეუძლია რაიმე არგუმენტის მიღება), მომხმარებლის მიერ განსაზღვრული ფუნქციისგან განსხვავებით.

    საქმე ისაა, რომ მაკროს ზოგიერთ ბრძანებას შეუძლია გამოიყენოს უჯრედის მისამართები ან ფორმატირების ელემენტები (მაგალითად, ფერი). თუ გადააქვთ უჯრედები, დაამატეთ ან წაშალეთ სტრიქონები და სვეტები, შეცვალეთ უჯრედების ფორმატი, მაშინ მარტივად შეგიძლიათ "გატეხოთ" თქვენი მაკრო. ეს განსაკუთრებით შესაძლებელია, თუ თქვენს ფაილს უზიარებთ კოლეგებს, რომლებმაც არ იციან როგორ მუშაობს თქვენი მაკრო.

    მაგალითად, თქვენ გაქვთ ფაილი იდეალურად მოქმედი მაკროთი. ეს ფორმულა ითვლის A1-დან A4 უჯრედების პროცენტს. მაკრო ცვლის ამ უჯრედების ფერს ყვითლად. აქტიურ უჯრედში დაყენებულია პროცენტული ფორმატი.

    თუ თქვენ ან ვინმე სხვა გადაწყვეტთ ახალი მწკრივის ჩასმას, მაკრო გააგრძელებს მნიშვნელობის ძიებას A4 უჯრედში ( 4,1 პარამეტრი თქვენს UDF-ში), წარუმატებლობა და დააბრუნეთ შეცდომა:

    ამ შემთხვევაში, შეცდომა მოხდა ნულზე გაყოფის გამო (ახლად დამატებულში მნიშვნელობა არ არის რიგი). იმ შემთხვევაში, თუ მაკრო ასრულებს, ვთქვათ, შეჯამებას, მაშინ თქვენ უბრალოდ მიიღებთ არასწორ შედეგს. მაგრამ თქვენ არ იცით ამის შესახებ.

    მაკროსგან განსხვავებით, მომხმარებლის მიერ განსაზღვრული ფუნქციები არ შეიძლება გამოიწვიოს ასეთი უსიამოვნო სიტუაცია.

    ქვემოთ ხედავთ მუშაობის შესრულებას.იგივე გამოთვლები UDF-ის გამოყენებით. აქ შეგიძლიათ მიუთითოთ შეყვანის უჯრედები სამუშაო ფურცელზე ნებისმიერ ადგილას და არ შეგექმნათ რაიმე მოულოდნელი პრობლემა მისი შეცვლისას.

    C3-ში დავწერე შემდეგი ფორმულა:

    =UDF_vs_Macro(A1,A4)

    შემდეგ ჩავსვი ცარიელი მწკრივი და ფორმულა შეიცვალა, როგორც ხედავთ ზემოთ მოცემულ ეკრანის სურათზე.

    ახლა ჩვენ შეგვიძლია გადავიტანოთ შეყვანის ან ფუნქციის მქონე უჯრედი სადმე. შედეგი ყოველთვის სწორი იქნება.

    UDF-ების გამოყენების დამატებითი უპირატესობა არის ის, რომ ისინი ავტომატურად განახლდებიან, როდესაც შეიცვლება მნიშვნელობა შეყვანის უჯრედში. მაკროების გამოყენებისას ყოველთვის უნდა დარწმუნდეთ, რომ ყველა მონაცემი განახლებულია.

    ამ მაგალითის გათვალისწინებით, მირჩევნია გამოვიყენო UDF-ები, სადაც ეს შესაძლებელია და მაკროები გამოვიყენო მხოლოდ სხვა არასაანგარიშო აქტივობებისთვის.

    UDF-ის გამოყენების შეზღუდვები და უარყოფითი მხარეები

    UDF-ის უპირატესობები უკვე აღვნიშნე ზემოთ. მოკლედ, მას შეუძლია შეასრულოს გამოთვლები, რომლებიც შეუძლებელია სტანდარტული Excel ფუნქციებით. გარდა ამისა, მას შეუძლია შეინახოს და გამოიყენოს გრძელი და რთული ფორმულები, აქცევს მათ ერთ ფუნქციად. და თქვენ არ მოგიწევთ რთული ფორმულების დაწერა უსასრულოდ.

    ახლა მოდით უფრო დეტალურად ვისაუბროთ UDF-ის ნაკლოვანებებზე:

    • UDF-ების შექმნა მოითხოვს VBA-ს გამოყენებას. არავითარი გზა არ არის. ეს ნიშნავს, რომ მომხმარებელს არ შეუძლია ჩაწეროს UDF ისე, როგორც Excel მაკრო. თქვენ თავად უნდა შექმნათ UDF. თუმცა, შეგიძლიათ დააკოპიროთ დაჩასვით ადრე ჩაწერილი მაკრო კოდის ნაწილები თქვენს ფუნქციაში. თქვენ უბრალოდ უნდა იცოდეთ მორგებული ფუნქციების შეზღუდვები.
    • UDF-ის კიდევ ერთი ნაკლი ის არის, რომ Excel-ის ნებისმიერი სხვა ფუნქციის მსგავსად მას შეუძლია მხოლოდ ერთი მნიშვნელობის ან მნიშვნელობების მასივის დაბრუნება უჯრედში. ის უბრალოდ ახორციელებს გამოთვლებს, მეტი არაფერი.
    • თუ გსურთ გაუზიაროთ თქვენი სამუშაო წიგნი თქვენს კოლეგებს, დარწმუნდით, რომ შეინახეთ თქვენი UDFs იმავე ფაილში. წინააღმდეგ შემთხვევაში, თქვენი მორგებული ფუნქციები არ იმუშავებს მათთვის.
    • VBA რედაქტორით შექმნილი მორგებული ფუნქციები უფრო ნელია, ვიდრე ჩვეულებრივი ფუნქციები. ეს განსაკუთრებით შესამჩნევია დიდ მაგიდებში. სამწუხაროდ, VBA ჯერჯერობით ძალიან ნელი პროგრამირების ენაა. ამიტომ, თუ ბევრი მონაცემი გაქვთ, შეეცადეთ გამოიყენოთ სტანდარტული ფუნქციები, როდესაც ეს შესაძლებელია, ან შექმენით UDF-ები LAMBDA ფუნქციის გამოყენებით.

    მორგებული ფუნქციის შეზღუდვები:

    • UDF არის შექმნილია გამოთვლების შესასრულებლად და მნიშვნელობის დასაბრუნებლად. მათი გამოყენება შეუძლებელია მაკროების ნაცვლად.
    • მათ არ შეუძლიათ სხვა უჯრედების (მხოლოდ აქტიური უჯრედის) შიგთავსის შეცვლა.
    • ფუნქციების სახელები უნდა შეესაბამებოდეს გარკვეულ წესებს. მაგალითად, თქვენ არ შეგიძლიათ გამოიყენოთ სახელი, რომელიც ემთხვევა Excel ფუნქციის მშობლიურ სახელს ან უჯრედის მისამართს, როგორიცაა AB123.
    • თქვენი მორგებული ფუნქცია არ შეიძლება შეიცავდეს სივრცეებს ​​სახელში, მაგრამ შეიძლება შეიცავდეს ხაზგასმული სიმბოლოს. თუმცა, სასურველი მეთოდია ყოველი ახლის დასაწყისში დიდი ასოების გამოყენებასიტყვა (მაგალითად, GetMaxBetween).
    • UDF-ს არ შეუძლია დააკოპიროს და ჩასვას უჯრედები სამუშაო ფურცლის სხვა ადგილებში.
    • მათ არ შეუძლიათ აქტიური სამუშაო ფურცლის შეცვლა.
    • UDF-ებს შეუძლიათ' არ შეცვალოთ ფორმატირება აქტიურ უჯრედში. თუ გსურთ შეცვალოთ უჯრედის ფორმატირება სხვადასხვა მნიშვნელობების ჩვენებისას, უნდა გამოიყენოთ პირობითი ფორმატირება.
    • მათ არ შეუძლიათ დამატებითი წიგნების გახსნა.
    • მათი არ შეიძლება გამოყენებულ იქნას მაკროების გასაშვებად Application.OnTime-ის გამოყენებით. .
    • მომხმარებლის მიერ განსაზღვრული ფუნქციის შექმნა შეუძლებელია მაკრო ჩამწერის გამოყენებით.
    • ფუნქციები არ ჩანს დეველოპერში > მაკრო დიალოგი.
    • თქვენი ფუნქციები გამოჩნდება დიალოგურ ფანჯარაში ( ჩასმა > ფუნქცია ) და ფუნქციების სიაში მხოლოდ იმ შემთხვევაში, თუ ისინი გამოცხადებულია საჯარო (ეს არის ნაგულისხმევი, თუ სხვა რამ არ არის მითითებული).
    • ნებისმიერი ფუნქცია გამოცხადებული როგორც პირადი არ გამოჩნდება ფუნქციების სიაში.

    საკმაოდ ნელი ოპერაცია , ისევე როგორც გამოყენების ზოგიერთმა შეზღუდვამ, შეიძლება დაგაფიქროთ: „რაში სარგებლობს ეს მორგებული ფუნქციები?“

    ისინი შეიძლება გამოგადგეთ და გავაკეთოთ, თუ გავითვალისწინებთ მათზე დაწესებულ შეზღუდვებს. თუ ისწავლით UDF-ების სწორად შექმნას და გამოყენებას, შეგიძლიათ დაწეროთ თქვენი ფუნქციების ბიბლიოთეკა. ეს მნიშვნელოვნად გააფართოვებს თქვენს უნარს Excel-ში მონაცემებთან მუშაობისთვის.

    რაც შემეხება მე, მორგებული ფუნქციები დიდ დროს დაზოგავს. Და შენ რას იტყვი შენს შესახებ? უკვე სცადეთ შექმნათ თქვენი საკუთარი UDF? Მოგეწონაუკეთესია ვიდრე Excel-ის ძირითადი ფუნქციები? მოდით ვისაუბროთ კომენტარებში :)

    მაიკლ ბრაუნი არის ტექნოლოგიის ერთგული ენთუზიასტი, რომელსაც აქვს გატაცება პროგრამული ინსტრუმენტების გამოყენებით რთული პროცესების გამარტივებისთვის. ტექნოლოგიურ ინდუსტრიაში ათწლეულზე მეტი გამოცდილებით, მან დახვეწა თავისი უნარები Microsoft Excel-სა და Outlook-ში, ასევე Google Sheets-სა და Docs-ში. მაიკლის ბლოგი ეძღვნება თავისი ცოდნისა და გამოცდილების სხვებს გაზიარებას, ადვილად მისაწვდომ რჩევებსა და გაკვეთილებს პროდუქტიულობისა და ეფექტურობის გასაუმჯობესებლად. მიუხედავად იმისა, გამოცდილი პროფესიონალი ხართ თუ დამწყები, მაიკლის ბლოგი გთავაზობთ ღირებულ შეხედულებებსა და პრაქტიკულ რჩევებს ამ აუცილებელი პროგრამული ხელსაწყოებიდან მაქსიმალური სარგებლობის მისაღებად.