შინაარსი

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

მცურავი ფრაგმენტის იმპორტი Power Query-ში

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

კარგი იქნება, თუ ჩვენი შეკითხვა თავად განსაზღვრავს „მცურავი“ ტექსტური ბლოკის დასაწყისს და დასასრულს იმპორტისთვის.

გამოსავალი, რომელიც მინდა შემოგთავაზოთ, ემყარება იმ აზრს, რომ ჩვენი მონაცემები შეიცავს რამდენიმე საკვანძო სიტყვას ან მნიშვნელობას, რომელიც შეიძლება გამოვიყენოთ ჩვენთვის საჭირო მონაცემთა ბლოკის დასაწყისისა და დასასრულის მარკერებად (მახასიათებლებად). ჩვენს მაგალითში დასაწყისი იქნება სიტყვით დაწყებული ხაზი SKU, და ბოლოს არის ხაზი სიტყვასთან სულ. ამ მწკრივის დადასტურება მარტივია Power Query-ში პირობითი სვეტის გამოყენებით - ფუნქციის ანალოგი IF (თუ) Microsoft Excel-ში.

ვნახოთ როგორ გავაკეთოთ.

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

მცურავი ფრაგმენტის იმპორტი Power Query-ში

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

მცურავი ფრაგმენტის იმპორტი Power Query-ში

ახლა ბრძანებით სვეტის დამატება - პირობითი სვეტი (სვეტის დამატება - პირობითი სვეტი)მოდით დავამატოთ სვეტი ორი პირობის შემოწმებით - ბლოკის დასაწყისში და ბოლოს - და აჩვენებს სხვადასხვა მნიშვნელობებს თითოეულ შემთხვევაში (მაგალითად, რიცხვები 1 и 2). თუ არცერთი პირობა არ არის დაკმაყოფილებული, მაშინ გამომავალი null:

მცურავი ფრაგმენტის იმპორტი Power Query-ში

დაწკაპვით OK ვიღებთ შემდეგ სურათს:

მცურავი ფრაგმენტის იმპორტი Power Query-ში

ახლა მოდით გადავიდეთ ჩანართზე. ტრანსფორმაციის და აირჩიე გუნდი შევსება – ქვევით (ტრანსფორმა – შევსება – ქვემოთ) – ჩვენი ერთი და ორი დაიჭიმება სვეტის ქვემოთ:

მცურავი ფრაგმენტის იმპორტი Power Query-ში

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

მცურავი ფრაგმენტის იმპორტი Power Query-ში

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

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

  • ცხრილების აწყობა სხვადასხვა ფაილებიდან Power Query-ის გამოყენებით
  • ჯვარედინი ჩანართების ხელახალი დიზაინი მაკროებით და Power Query-ით
  • Project Gantt Chart-ის შექმნა Power Query-ში

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