ჭკვიანი ავტომატური შევსება ქვემოთ და მარჯვნივ

შინაარსი

აქამდე ხანდახან ღიმილით მახსენდება ჩემი ერთ-ერთი პირველი საველე კორპორატიული ტრენინგი 10 წლის წინ.

წარმოიდგინეთ: საერთაშორისო FMCG კომპანიის წარმომადგენლობის ღია ოფისი, უზარმაზარი ფეხბურთის მოედანი. ელეგანტური დიზაინი, ძვირადღირებული საოფისე აღჭურვილობა, დრეს-კოდი, ემიგრანტების კვნესა კუთხეებში – ეს ყველაფერია 🙂 ერთ-ერთ შეხვედრის ოთახში ვიწყებ ორდღიან ტრენინგს Excel 2003-ის მაშინდელ ვერსიაზე ეკონომიკური დეპარტამენტის 15 ძირითადი თანამშრომლისთვის. მათ ლიდერთან ერთად. ვიცნობთ, ვეკითხები საქმიანი ამოცანების, პრობლემების შესახებ, ვთხოვ აჩვენონ რამდენიმე ტიპიური სამუშაო ფაილი. ისინი აჩვენებენ SAP-დან გადმოტვირთვის კილომეტრის სიგრძეს, ანგარიშების ფურცლებს, რომლებსაც აკეთებენ ამის შესახებ და ა.შ. კარგად, ნაცნობია – გონებრივად ვხვდები თემებს და ვადებს, ვარეგულირებ აუდიტორიას. თვალის კუთხით შევამჩნიე, როგორ ერთ-ერთი მონაწილე, თავისი მოხსენების ნაწილის დემონსტრირებით, მოთმინებით წევს უჯრედს ფორმულით ქვემოთ, ქვედა მარჯვენა კუთხეში შავი ჯვრით რამდენიმე ათასი სტრიქონისთვის, შემდეგ კი გამოტოვებს ბოლოს. მაგიდა მიფრინავს, უკან იხევს და ა.შ. ვერ ვიტან, ვაწყვეტ მას მაუსის დახვევას ეკრანის გარშემო და ვაჩვენებ ორჯერ დააწკაპუნეთ შავ ჯვარზე, ავუხსნი ავტომატური დასრულების შესახებ გაჩერებამდე. 

უცებ ვხვდები, რომ მაყურებელი საეჭვოდ ჩუმად არის და ყველა უცნაურად მიყურებს. შეუმჩნევლად ვიყურები ჩემს ირგვლივ, სადაც კი შემიძლია - ყველაფერი რიგზეა, ხელები და ფეხები ადგილზე მაქვს, ბუზი ღილები მაქვს შეკრული. ბოლო სიტყვებს ძალაუნებურად ვაბრუნებ რაღაც საშინელი პუნქტის ძიებაში - როგორც ჩანს, დანაშაულებრივი არაფერი ყოფილა. ამის შემდეგ ჯგუფის უფროსი ჩუმად დგება, ხელს მკიდებს და ქვის სახით მეუბნება: „გმადლობთ, ნიკოლაი. ეს ტრენინგი შეიძლება დასრულდეს.

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

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

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

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

შევეცადოთ გამოვასწოროთ ეს ხარვეზები მარტივი მაკროთი.

დააჭირეთ კლავიატურის მალსახმობს მარცხნივ Alt + F11 ან ღილაკი Visual Basic tab დეველოპერი (დეველოპერი). ჩადეთ ახალი ცარიელი მოდული მენიუს მეშვეობით ჩასმა – მოდული და დააკოპირეთ ამ მაკროების ტექსტი იქ:

Sub SmartFillDown() Dim rng როგორც დიაპაზონი, n ხანგრძლივი დაყენება rng = ActiveCell.Offset(0, -1).CurrentRegion თუ rng.Cells.Count > 1 შემდეგ n = rng.Cells(1).Row + rng.Rows. Count - ActiveCell.Row ActiveCell.AutoFill დანიშნულება:=ActiveCell.Resize(n, 1), Type:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng როგორც დიაპაზონი, n As Long Set rng = ActiveCell.Offset(-1, 0).CurrentRegion თუ rng.Cells.Count > 1 შემდეგ n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill დანიშნულება:=ActiveCell.Resize(1, n), ტიპი: =xlFillValues ​​End If End Sub  

ასეთი მაკროები:

  • შეუძლია შეავსოს არა მხოლოდ ქვემოთ (SmartFillDown), არამედ მარჯვნივ (SmartFillRight)
  • არ გააფუჭოთ უჯრედების ფორმატი ქვემოთ ან მარჯვნივ - კოპირებულია მხოლოდ ფორმულა (მნიშვნელობა).
  • ცარიელი მიმდებარე უჯრედები იგნორირებულია და კოპირება ხდება ზუსტად ცხრილის ბოლომდე და არა მონაცემების ან პირველ დაკავებულ უჯრედში უახლოეს უფსკრულით.

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

სილამაზის.

PS ცხრილის ბოლოს ფორმულების კოპირების პრობლემის ნაწილი მოგვარდა Excel 2007-ში „ჭკვიანი ცხრილების“ გამოჩენით. მართალია, ისინი ყოველთვის და ყველგან არ არის შესაფერისი. და მარჯვნივ, Excel-მა არასოდეს ისწავლა საკუთარი კოპირება.

  • რა არის მაკროები, როგორ გამოვიყენოთ ისინი, სად მივიღოთ Visual Basic კოდი და სად ჩასვათ იგი.
  • ჭკვიანი ცხრილები Excel-ში 2007-2013 წწ
  • დააკოპირეთ ფორმულები ბმულის ცვლის გარეშე

დატოვე პასუხი