Վերջերս մենք քննարկեցինք FILTER.XML ֆունկցիայի օգտագործումը ինտերնետից XML տվյալներ ներմուծելու համար. հիմնական խնդիրը, որի համար իրականում նախատեսված է այս գործառույթը: Ճանապարհին, սակայն, հայտնվեց այս ֆունկցիայի մեկ այլ անսպասելի և գեղեցիկ օգտագործում՝ կպչուն տեքստը բջիջների արագ բաժանելու համար:
Եկեք ասենք, որ մենք ունենք տվյալների սյունակ, ինչպիսին է սա.
Իհարկե, հարմարության համար ես կցանկանայի այն բաժանել առանձին սյունակների՝ ընկերության անվանումը, քաղաքը, փողոցը, տունը: Դուք կարող եք դա անել մի քանի տարբեր ձևերով.
- օգտագործում Տեքստը ըստ սյունակների ներդիրից Ամսաթիվ (Տվյալներ — Տեքստ սյունակներում) և գնացեք երեք քայլ Տեքստի վերլուծիչ. Բայց եթե վաղը տվյալները փոխվեն, դուք ստիպված կլինեք նորից կրկնել ամբողջ գործընթացը։
- Բեռնեք այս տվյալները Power Query-ում և բաժանեք դրանք այնտեղ, այնուհետև վերբեռնեք դրանք թերթիկում, այնուհետև թարմացրեք հարցումը, երբ տվյալները փոխվեն (ինչն արդեն ավելի հեշտ է):
- Եթե Ձեզ անհրաժեշտ է թարմացնել անմիջապես, ապա կարող եք գրել մի քանի շատ բարդ բանաձևեր՝ ստորակետներ գտնելու և դրանց միջև տեքստը հանելու համար:
Եվ դուք կարող եք դա անել ավելի էլեգանտ և օգտագործել FILTER.XML գործառույթը, բայց ի՞նչ կապ ունի դա դրա հետ:
FILTER.XML ֆունկցիան որպես սկզբնական արգումենտ ստանում է XML կոդ՝ հատուկ պիտակներով և ատրիբուտներով նշվող տեքստ, այնուհետև այն վերլուծում է իր բաղադրիչների մեջ՝ հանելով մեզ անհրաժեշտ տվյալների բեկորները: XML կոդը սովորաբար այսպիսի տեսք ունի.
XML-ում տվյալների յուրաքանչյուր տարր պետք է փակվի պիտակների մեջ: Պիտակը ինչ-որ տեքստ է (վերևի օրինակում՝ մենեջեր, անուն, շահույթ) փակցված անկյունային փակագծերում: Թեգերը միշտ գալիս են զույգերով՝ բացվում և փակվում է (սկիզբին ավելացված կտրվածքով):
FILTER.XML ֆունկցիան հեշտությամբ կարող է հանել մեզ անհրաժեշտ բոլոր թեգերի բովանդակությունը, օրինակ՝ բոլոր մենեջերների անունները և (ամենակարևորը) դրանք միանգամից ցուցադրել մեկ ցուցակում: Այսպիսով, մեր խնդիրն է սկզբնաղբյուր տեքստին պիտակներ ավելացնել՝ այն վերածելով XML կոդի, որը հարմար է FILTER.XML ֆունկցիայի կողմից հետագա վերլուծության համար:
Եթե որպես օրինակ վերցնենք մեր ցուցակից առաջին հասցեն, ապա մեզ անհրաժեշտ կլինի այն վերածել այս կառուցվածքի.
Ես զանգահարեցի գլոբալ բացման և փակման բոլոր տեքստային պիտակը t, և յուրաքանչյուր տարրը շրջանակող պիտակներն են s., բայց դուք կարող եք օգտագործել ցանկացած այլ նշանակում, դա կարևոր չէ:
Եթե այս ծածկագրից հանենք նահանջներն ու տողերի ընդմիջումները՝ ամբողջությամբ, ի դեպ, կամընտիր և ավելացված միայն պարզության համար, ապա այս ամենը կվերածվի տողի.
Եվ դա արդեն համեմատաբար հեշտությամբ կարելի է ստանալ սկզբնաղբյուր հասցեից՝ դրանում ստորակետերը փոխարինելով մի քանի պիտակներով օգտագործելով գործառույթը ՓՈԽԱՐITԱԿ (ՓՈԽԱՐԱԿԻՑ) և սոսնձում խորհրդանիշով & բացման և փակման պիտակների սկզբում և վերջում.
Ստացված միջակայքը հորիզոնական ընդլայնելու համար մենք օգտագործում ենք ստանդարտ ֆունկցիան ՏՐԱՆՍՊ (ՏՐԱՆՍՊՈԶԵԼ), դրանով փաթաթելով մեր բանաձևը.
Այս ամբողջ դիզայնի կարևոր առանձնահատկությունն այն է, որ Office 2021-ի և Office 365-ի նոր տարբերակում՝ դինամիկ զանգվածների աջակցությամբ, մուտքագրման համար հատուկ ժեստեր չեն պահանջվում. պարզապես մուտքագրեք և սեղմեք Մտնել – բանաձևն ինքնին զբաղեցնում է իրեն անհրաժեշտ բջիջների քանակը, և ամեն ինչ աշխատում է պայթյունով: Նախորդ տարբերակներում, որտեղ դեռևս դինամիկ զանգվածներ չկային, նախքան բանաձևը մուտքագրելը անհրաժեշտ կլինի ընտրել բավարար քանակությամբ դատարկ բջիջներ (կարող եք լուսանցքով), իսկ բանաձևը ստեղծելուց հետո սեղմել ստեղնաշարի դյուրանցումը։ Ctrl+Հերթափոխություն+Մտնելմուտքագրել այն որպես զանգվածի բանաձև:
Նմանատիպ հնարք կարող է օգտագործվել, երբ իրար կպած տեքստը բաժանվում է մեկ բջիջի մեջ տողերի ընդմիջման միջոցով.
Նախորդ օրինակի միակ տարբերությունն այն է, որ ստորակետի փոխարեն այստեղ մենք փոխարինում ենք անտեսանելի Alt + Enter տողերի ընդմիջման նիշը, որը կարելի է նշել բանաձևում՝ օգտագործելով CHAR ֆունկցիան 10 կոդով։
- Excel-ում տողերի ընդմիջումների հետ աշխատելու նրբությունները (Alt + Enter):
- Excel-ում տեքստը բաժանեք սյունակներով
- Տեքստի փոխարինում SUBSTITUTE-ով