FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

Mündəricat

Bu yaxınlarda biz İnternetdən XML məlumatlarını idxal etmək üçün FILTER.XML funksiyasının istifadəsini müzakirə etdik – bu funksiya əslində nəzərdə tutulmuş əsas vəzifədir. Bununla birlikdə, bu funksiyanın başqa bir gözlənilməz və gözəl istifadəsi ortaya çıxdı - yapışqan mətni hüceyrələrə sürətlə bölmək üçün.

Deyək ki, belə bir məlumat sütunumuz var:

FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

Əlbəttə ki, rahatlıq üçün onu ayrı sütunlara bölmək istərdim: şirkət adı, şəhər, küçə, ev. Bunu müxtəlif yollarla edə bilərsiniz:

  • istifadə Sütunlar üzrə mətn tabdan Tarix (Məlumatlar - Sütunlara mətn) və üç addım gedin Mətn təhlili. Ancaq sabah məlumatlar dəyişərsə, bütün prosesi yenidən təkrarlamalı olacaqsınız.
  • Bu məlumatları Power Query-ə yükləyin və orada bölün, sonra onu yenidən vərəqə yükləyin və sonra məlumat dəyişdikdə sorğunu yeniləyin (bu, artıq daha asandır).
  • Tez yeniləmək lazımdırsa, vergül tapmaq və onların arasında mətn çıxarmaq üçün çox mürəkkəb düsturlar yaza bilərsiniz.

Və siz bunu daha zərif şəkildə edə və FILTER.XML funksiyasından istifadə edə bilərsiniz, bəs bunun bununla nə əlaqəsi var?

FILTER.XML funksiyası ilkin arqument kimi XML kodunu alır — xüsusi teqlər və atributlarla işarələnmiş mətn və sonra bizə lazım olan məlumat fraqmentlərini çıxararaq onu öz komponentlərinə təhlil edir. XML kodu adətən belə görünür:

FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

XML-də hər bir məlumat elementi teqlərə əlavə edilməlidir. Teq bucaqlı mötərizədə yazılmış bəzi mətndir (yuxarıdakı nümunədə menecer, ad, mənfəətdir). Teqlər həmişə cüt-cüt olur – açılış və bağlanma (əvvəlinə kəsik işarəsi əlavə etməklə).

FILTER.XML funksiyası bizə lazım olan bütün teqlərin məzmununu, məsələn, bütün menecerlərin adlarını asanlıqla çıxara və (ən əsası) hamısını bir siyahıda bir anda göstərə bilər. Beləliklə, bizim vəzifəmiz FILTER.XML funksiyası ilə sonrakı təhlil üçün uyğun olan XML koduna çevirərək mənbə mətnə ​​teqlər əlavə etməkdir.

Siyahımızdan ilk ünvanı nümunə olaraq götürsək, onu bu konstruksiyaya çevirməliyik:

FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

Mən qlobal açılış və bütün mətn etiketini bağladım t, və hər bir elementi çərçivəyə alan teqlərdir s., lakin hər hansı digər təyinatlardan istifadə edə bilərsiniz - fərqi yoxdur.

Bu koddan abzasları və sətir kəsimlərini silsək - tamamilə, yeri gəlmişkən, isteğe bağlıdır və yalnız aydınlıq üçün əlavə edilirsə, bütün bunlar sətirə çevriləcəkdir:

FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

Onsuz da vergülləri bir neçə etiketlə əvəz etməklə mənbə ünvanından nisbətən asanlıqla əldə edilə bilər. funksiyasından istifadə etməklə Substitute (ƏVƏZİNƏ) və simvolu ilə yapışdırılır & açılış və bağlama etiketlərinin əvvəlində və sonunda:

FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

Yaranan diapazonu üfüqi olaraq genişləndirmək üçün standart funksiyadan istifadə edirik TRANSP (TRANSPOS), formulumuzu içinə sarın:

FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

Bütün bu dizaynın mühüm xüsusiyyəti ondan ibarətdir ki, Office 2021 və Office 365-in dinamik massivləri dəstəkləyən yeni versiyasında daxil etmək üçün heç bir xüsusi jest tələb olunmur – sadəcə daxil olub klikləyin. Daxil edin – düsturun özü ehtiyac duyduğu hüceyrələrin sayını tutur və hər şey bir partlayışla işləyir. Hələ dinamik massivlərin olmadığı əvvəlki versiyalarda düstura daxil etməzdən əvvəl əvvəlcə kifayət qədər boş xana seçməlisiniz (bir kənar ilə edə bilərsiniz) və formula yaratdıqdan sonra klaviatura qısa yolunu basın. Ctrl+ÜstKrkt+Daxil edinmassiv düsturu kimi daxil etmək üçün.

Bənzər bir hiylə bir-birinə yapışdırılmış mətni sətir kəsilməsi ilə bir xanaya ayırarkən istifadə edilə bilər:

FILTER.XML funksiyası ilə yapışqan mətnin bölünməsi

Əvvəlki misaldan yeganə fərq ondadır ki, biz burada vergül əvəzinə 10 kodu ilə CHAR funksiyasından istifadə edərək düsturda göstərilə bilən görünməz Alt + Enter sətir kəsmə simvolunu əvəz edirik.

  • Excel-də sətir fasilələri (Alt + Enter) ilə işləməyin incəlikləri
  • Excel-də mətni sütunlara bölün
  • Mətnin SUBSTITUTE ilə əvəz edilməsi

Cavab yaz