રેજેક્સનો ઉપયોગ કરીને એક્સેલમાં વ્હાઇટસ્પેસ અને ખાલી લીટીઓ દૂર કરો

  • આ શેર કરો
Michael Brown

સૌથી અસરકારક રીતે વ્હાઇટસ્પેસને હેન્ડલ કરવા માંગો છો? કોષમાંની બધી જગ્યાઓ દૂર કરવા માટે નિયમિત અભિવ્યક્તિનો ઉપયોગ કરો, બહુવિધ જગ્યાઓને એક અક્ષરથી બદલો, ફક્ત સંખ્યાઓ વચ્ચે ખાલી જગ્યાઓ ટ્રિમ કરો અને વધુ.

તમે જે પણ ઇનપુટ ડેટાનો ઉપયોગ કરી રહ્યાં છો, તમને ભાગ્યે જ કોઈનો સામનો કરવો પડશે જગ્યા વિના ડેટાસેટ. મોટા ભાગના કિસ્સાઓમાં, વ્હાઇટસ્પેસ સારી છે - તમે તેને સમજવામાં સરળ બનાવવા માટે માહિતીના જુદા જુદા ભાગોને દૃષ્ટિની રીતે અલગ કરવા માટે તેનો ઉપયોગ કરો છો. કેટલીક પરિસ્થિતિઓમાં, જો કે, તે દુષ્ટ બની શકે છે - વધારાની જગ્યાઓ તમારા સૂત્રોને ગડબડ કરી શકે છે અને તમારી વર્કશીટ્સને લગભગ અવ્યવસ્થિત બનાવી શકે છે.

    એક્સેલમાં વ્હાઇટસ્પેસને ટ્રિમ કરવા માટે રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ શા માટે કરવો?

    એક્સેલ વર્કશીટ્સમાં વ્હાઇટસ્પેસને દૂર કરવા માટે રેગ્યુલર એક્સપ્રેશન્સનો ઉપયોગ કરવા માટે આપણે ઝીણવટભરી રીતે ડાઇવ કરીએ તે પહેલાં, હું પ્રથમ સ્થાને મનમાં આવતા પ્રશ્નને સંબોધવા માંગુ છું - જ્યારે એક્સેલ પાસે પહેલેથી જ TRIM હોય ત્યારે અમને શા માટે રેજેક્સની જરૂર છે? ફંક્શન?

    ફરકને સમજવા માટે, ચાલો જોઈએ કે દરેક કેસમાં વ્હાઇટસ્પેસ શું ગણવામાં આવે છે:

    • બિલ્ટ-ઇન TRIM ફંક્શન ફક્ત સ્પેસ અક્ષર ને છીનવી શકે છે. જેનું 7-બીટ ASCII સિસ્ટમમાં મૂલ્ય 32 છે.
    • રેગ્યુલર એક્સપ્રેશન્સ સ્પેસ ( ), ટેબ (\t), કેરેજ રીટર્ન (\r), અને નવા જેવા સફેદ જગ્યાના થોડા અલગ સ્વરૂપોને ઓળખી શકે છે લેનિન). વધુમાં, ત્યાં વ્હાઇટસ્પેસ અક્ષર (\s) છે જે આ તમામ પ્રકારો સાથે મેળ ખાય છે અને કાચા ઇનપુટને સાફ કરવા માટે અત્યંત મદદરૂપ છેડેટા.

    પડદા પાછળ શું થાય છે તે બરાબર જાણીને, ઉકેલ માટે કામ કરવું ઘણું સરળ છે, ખરું?

    એક્સેલમાં રેગ્યુલર એક્સપ્રેશન કેવી રીતે સક્ષમ કરવું

    તે જાણીતી હકીકત છે કે આઉટ-ઓફ-ધ-બોક્સ એક્સેલ રેગ્યુલર એક્સપ્રેશનને સપોર્ટ કરતું નથી. તેમને સક્ષમ કરવા માટે, તમારે કસ્ટમ VBA ફંક્શન બનાવવાની જરૂર છે. સદભાગ્યે, અમારી પાસે પહેલેથી જ RegExpReplace નામનું એક છે. રાહ જુઓ, શા માટે "બદલો" જ્યારે આપણે દૂર કરવાની વાત કરી રહ્યા છીએ? એક્સેલ ભાષામાં, "કાઢી નાખો" એ "ખાલી સ્ટ્રિંગ સાથે બદલો" માટેનો બીજો શબ્દ છે :)

    તમારા એક્સેલમાં ફંક્શન ઉમેરવા માટે, ફક્ત આ પેજ પરથી તેનો કોડ કૉપિ કરો, તેને VBA એડિટરમાં પેસ્ટ કરો. , અને તમારી ફાઇલને મેક્રો-સક્ષમ વર્કબુક (.xlsm) તરીકે સાચવો.

    તમારા સંદર્ભ માટે અહીં ફંક્શનનું સિન્ટેક્સ છે:

    RegExpReplace(ટેક્સ્ટ, પેટર્ન, રિપ્લેસમેન્ટ, [instance_num] , [match_case])

    પ્રથમ ત્રણ દલીલો જરૂરી છે, છેલ્લી બે વૈકલ્પિક છે.

    ક્યાં:

    • ટેક્સ્ટ - માટે મૂળ શબ્દમાળા માં શોધો.
    • પેટર્ન - શોધવા માટેનું રેગેક્સ.
    • રિપ્લેસમેન્ટ - બદલવા માટેનું ટેક્સ્ટ. દૂર કરવા વ્હાઇટસ્પેસ , તમે આ દલીલને બેમાંથી એક પર સેટ કરશો:
      • ખાલી સ્ટ્રિંગ ("") સંપૂર્ણપણે બધી જગ્યાઓને ટ્રિમ કરવા માટે<11
      • સ્પેસ અક્ષર (" ") એક જ સ્પેસ અક્ષર સાથે બહુવિધ સ્પેસ બદલવા માટે
  • ઇન્સ્ટન્સ_નમ (વૈકલ્પિક) - દાખલા નંબર. મોટા ભાગના કિસ્સાઓમાં, તમે તેને તમામ ઉદાહરણોને બદલવા માટે છોડી દેશો(ડિફૉલ્ટ).
  • મેચ_કેસ (વૈકલ્પિક) - એક બુલિયન મૂલ્ય સૂચવે છે કે શું મેચ (સત્ય) અથવા અવગણવું (ખોટા) ટેક્સ્ટ કેસ. વ્હાઇટસ્પેસ માટે, તે અપ્રસ્તુત છે અને તેથી અવગણવામાં આવે છે.
  • વધુ માહિતી માટે, કૃપા કરીને RegExpReplace ફંક્શન જુઓ.

    regex સાથે વ્હાઇટસ્પેસ કેવી રીતે દૂર કરવી - ઉદાહરણો

    આ સાથે તમારી વર્કબુકમાં RegExpReplace ફંક્શન ઉમેરવામાં આવ્યું છે, ચાલો એક પછી એક અલગ-અલગ પરિસ્થિતિઓનો સામનો કરીએ.

    regex નો ઉપયોગ કરીને બધી વ્હાઇટસ્પેસ દૂર કરો

    સ્ટ્રિંગમાં બધી જગ્યાઓ દૂર કરવા માટે, તમે ખાલી કોઈપણ વ્હાઇટસ્પેસ અક્ષરને શોધો, જેમાં સ્પેસ, ટેબ, કેરેજ રીટર્ન અને લાઇન ફીડ, અને તેને ખાલી સ્ટ્રિંગ ("") વડે બદલો.

    પેટર્ન : \s+

    રિપ્લેસમેન્ટ : ""

    માની લઈએ કે સ્ત્રોત શબ્દમાળા A5 માં છે, B5 માં સૂત્ર છે:

    =RegExpReplace(A5, "\s+", "")

    તમારા પેટર્નનું સંચાલન કરવાનું સરળ બનાવવા માટે , તમે પૂર્વવ્યાખ્યાયિત કોષમાં રેજેક્સ ઇનપુટ કરી શકો છો અને તેને $A$2 જેવા ચોક્કસ સંદર્ભનો ઉપયોગ કરીને ફોર્મ્યુલામાં સપ્લાય કરી શકો છો, તેથી કૉલમ નીચે સૂત્રની નકલ કરતી વખતે સેલ સરનામું યથાવત રહેશે.

    =RegExpReplace(A5, $A$2, "")

    એક કરતાં વધુ વ્હાઇટસ્પેસ દૂર કરો

    વધારાની વ્હાઇટસ્પેસ દૂર કરવા (એટલે ​​કે વધુ n એક સળંગ સ્પેસ), સમાન રેગેક્સ \s+ નો ઉપયોગ કરો પરંતુ મળેલા મેળને એક જ સ્પેસ અક્ષરથી બદલો.

    પેટર્ન : \s+

    રિપ્લેસમેન્ટ : " ""

    =RegExpReplace(A5, "\s+", " ")

    કૃપા કરીને ધ્યાન આપો કે આ ફોર્મ્યુલા માત્ર વચ્ચે જ નહીં પરંતુ એક સ્પેસ અક્ષર રાખે છેડેટાસેટની નીચે, ધારો કે તમે બહુવિધ રેખાઓને અકબંધ રાખીને તમામ અગ્રણી/પાછળની જગ્યાઓ અને એક સિવાયની એક જગ્યાને ટ્રિમ કરવા માંગો છો. કાર્યને પૂર્ણ કરવા માટે, તમારે બે અલગ-અલગ RegExpReplace ફંક્શનની જરૂર પડશે.

    પ્રથમ ફંક્શન બહુવિધ સ્પેસને એક જ સ્પેસ અક્ષરથી બદલે છે.

    =RegExpReplace(A5, " +", " ")

    બીજું એક સ્પેસ સ્ટ્રિપ કરે છે. લીટીની શરૂઆત અને અંતથી:

    =RegExpReplace(A5, "^ +| +$", "")

    બસ બે ફંક્શનને એક બીજામાં નેસ્ટ કરો:

    =RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")

    અને તમને એક મળશે સંપૂર્ણ પરિણામ:

    એક અક્ષર સાથે બહુવિધ સ્પેસ બદલવા માટે Regex

    જો તમે સ્ટ્રીંગમાંથી બધી જગ્યાઓ દૂર કરવા અને સળંગ જગ્યાઓના દરેક જૂથને બદલવા માંગતા હો ચોક્કસ અક્ષર સાથે, તમારે આ કરવાની જરૂર છે:

    પ્રથમ, અગ્રણી અને પાછળની વ્હાઇટસ્પેસને ટ્રિમ કરવા માટે આ રેજેક્સનો ઉપયોગ કરો:

    =RegExpReplace(A8, "^[\s]+|[\s]+$", "")

    પછી, ઉપરોક્ત કાર્યને સર્વ કરો અન્ય RegExpReplace ની ટેક્સ્ટ દલીલ કે જે એક અથવા વધુ સળંગ વ્હાઇટસ્પેસને તમે સ્પષ્ટ કરેલ અક્ષર સાથે બદલે છે, દા.ત. હાયફન:

    પેટર્ન : \s+

    રિપ્લેસમેન્ટ : -

    ધારી રહ્યા છીએ કે સ્ત્રોત શબ્દમાળા A8 માં છે, સૂત્ર આ આકાર લે છે:

    =RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")

    અથવા તમે સ્ક્રીનશોટમાં બતાવ્યા પ્રમાણે અલગ કોષોમાં પેટર્ન અને રિપ્લેસમેન્ટ દાખલ કરી શકો છો:

    Regex ખાલી લીટીઓ દૂર કરવા માટે

    અહીં એક પ્રશ્ન છે જે વપરાશકર્તાઓ કે જેમની પાસે એક કોષમાં બહુવિધ લીટીઓ છે તેઓ વારંવાર પૂછે છે: "મારા કોષોમાં ઘણી બધી ખાલી લીટીઓ છે. મેળવવાનો કોઈ રસ્તો છે?દરેક કોષમાંથી પસાર થવું અને દરેક લાઇનને મેન્યુઅલી કાઢી નાખવા સિવાય તેમાંથી છૂટકારો મેળવવો?" જવાબ: તે સરળ છે!

    પ્રવર્તમાન લાઇનની શરૂઆતથી ^ સુધી એક પણ અક્ષર ન હોય તેવી ખાલી લીટીઓને મેચ કરવા માટે આગલી લાઇન \n, રેગેક્સ છે:

    પેટર્ન : ^\n

    જો તમારી દૃષ્ટિની ખાલી લીટીઓમાં સ્પેસ અથવા ટેબ હોય, તો આ રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરો:

    પેટર્ન : ^[\t ]*\n

    આ ફોર્મ્યુલાનો ઉપયોગ કરીને ખાલી સ્ટ્રિંગ સાથે રેજેક્સને બદલો, અને બધી ખાલી લીટીઓ એકસાથે જતી રહેશે!

    =RegExpReplace(A5, $A$2, "")

    RegEx ટૂલ્સ વડે વ્હાઇટસ્પેસ દૂર કરવી

    ઉપરોક્ત ઉદાહરણોએ regexes દ્વારા પૂરી પાડવામાં આવેલ અદ્ભુત શક્યતાઓનો માત્ર એક નાનો હિસ્સો દર્શાવ્યો છે. કમનસીબે, બધા જ નહીં ક્લાસિક રેગ્યુલર એક્સપ્રેશનની સુવિધાઓ VBA માં ઉપલબ્ધ છે.

    સદભાગ્યે, અમારા અલ્ટીમેટ સ્યુટ સાથે સમાવિષ્ટ RegEx ટૂલ્સ આ મર્યાદાઓથી મુક્ત છે કારણ કે તે Microsoft ના .NET RegEx એન્જિન દ્વારા પ્રક્રિયા કરવામાં આવે છે. આ તમને વધુ અત્યાધુનિક પેટર્ન બનાવવા દે છે જે VBA RegExp. Belo દ્વારા સમર્થિત નથી w તમને આવા રેગ્યુલર એક્સપ્રેશનનું ઉદાહરણ મળશે.

    સંખ્યાઓ વચ્ચેની જગ્યા દૂર કરવા માટે Regex

    આલ્ફાન્યૂમેરિક સ્ટ્રિંગમાં, ધારો કે તમે માત્ર નંબરો વચ્ચેની ખાલી જગ્યાઓ દૂર કરવા માંગો છો, તેથી સ્ટ્રિંગ જેમ કે "A 1 2 B" "A 12 B" બને છે.

    કોઈપણ બે અંકો વચ્ચે વ્હાઇટસ્પેસ મેચ કરવા માટે, તમે નીચેના દેખાવનો ઉપયોગ કરી શકો છો:

    પેટર્ન : (?<=\d)\s+(?=\d)

    આધારિત ફોર્મ્યુલા બનાવવા માટેઉપરોક્ત રેજેક્સ પર, અહીં કરવા માટેના બે સરળ પગલાં છે:

    1. Ablebits Data ટેબ પર, Text જૂથમાં, Regex પર ક્લિક કરો ટૂલ્સ .

    2. Regex Tools ફલક પર, સ્ત્રોત ડેટા પસંદ કરો, તમારું regex દાખલ કરો, દૂર કરો પસંદ કરો વિકલ્પ, અને દૂર કરો દબાવો.

      મૂલ્યો નહીં પણ સૂત્રો તરીકે પરિણામો મેળવવા માટે, સૂત્ર તરીકે દાખલ કરો ચેક બૉક્સમાં ટિક મૂકવાનું યાદ રાખો.

    એક ક્ષણમાં, તમે મૂળ ડેટાની જમણી બાજુએ નવી કૉલમમાં દાખલ કરેલ AblebitsRegexRemove ફંક્શન જોશો.

    વૈકલ્પિક રીતે, તમે અમુક કોષમાં regex ઇનપુટ કરી શકો છો , A5 કહો, અને Insert Function ડાયલોગ બોક્સનો ઉપયોગ કરીને સીધું જ કોષમાં ફોર્મ્યુલા દાખલ કરો, જ્યાં AblebitsRegexRemove ને AblebitsUDFs હેઠળ વર્ગીકૃત થયેલ છે.

    આ ફંક્શન ખાસ કરીને સ્ટ્રિંગ્સને દૂર કરવા માટે રચાયેલ હોવાથી, તેને માત્ર બે દલીલોની જરૂર છે - ઇનપુટ સ્ટ્રિંગ અને રેજેક્સ:

    =AblebitsRegexRemove(A5, $A$2)

    આ રીતે ખાલી જગ્યાઓ દૂર કરવી રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરીને એક્સેલ. વાંચવા બદલ હું તમારો આભાર માનું છું અને આવતા અઠવાડિયે તમને અમારા બ્લોગ પર મળવાની રાહ જોઉં છું!

    ઉપલબ્ધ ડાઉનલોડ્સ

    રેજેક્સ સાથે વ્હાઇટસ્પેસ દૂર કરો - ઉદાહરણો (.xlsm ફાઇલ)

    Ultimate Suite - ટ્રાયલ વર્ઝન (.exe ફાઇલ)

    શબ્દો પણ શબ્દમાળાની શરૂઆતમાં અને અંતે, જે સારું નથી. આગળ અને પાછળની વ્હાઇટસ્પેસથી છુટકારો મેળવવા માટે, ઉપરોક્ત સૂત્રને બીજા RegExpReplace ફંક્શનમાં માળો કે જે શરૂઆત અને અંતથી ખાલી જગ્યાઓ છીનવી લે છે:

    =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")

    માટે Regex આગળની અને પાછળની વ્હાઇટસ્પેસને દૂર કરો

    લાઇનની શરૂઆતમાં અથવા અંતે વ્હાઇટસ્પેસ શોધવા માટે, પ્રારંભ ^ અને અંત $ એન્કરનો ઉપયોગ કરો.

    લીડિંગ વ્હાઇટસ્પેસ:

    પેટર્ન : ^[\s]+

    પાછળની વ્હાઇટસ્પેસ:

    પેટર્ન : [\s ]+$

    અગ્રેસર અને પાછળની વ્હાઇટસ્પેસ:

    પેટર્ન : ^[\s]+

    માઈકલ બ્રાઉન સોફ્ટવેર ટૂલ્સનો ઉપયોગ કરીને જટિલ પ્રક્રિયાઓને સરળ બનાવવાના જુસ્સા સાથે સમર્પિત ટેકનોલોજી ઉત્સાહી છે. ટેક ઉદ્યોગમાં એક દાયકા કરતાં વધુ અનુભવ સાથે, તેમણે Microsoft Excel અને Outlook, તેમજ Google Sheets અને Docsમાં તેમની કુશળતાને સન્માનિત કરી છે. માઈકલનો બ્લોગ તેના જ્ઞાન અને કુશળતાને અન્ય લોકો સાથે શેર કરવા માટે સમર્પિત છે, ઉત્પાદકતા અને કાર્યક્ષમતામાં સુધારો કરવા માટે અનુસરવામાં સરળ ટીપ્સ અને ટ્યુટોરિયલ્સ પ્રદાન કરે છે. ભલે તમે અનુભવી વ્યાવસાયિક હોવ કે શિખાઉ માણસ, માઈકલનો બ્લોગ આ આવશ્યક સોફ્ટવેર સાધનોમાંથી સૌથી વધુ મેળવવા માટે મૂલ્યવાન આંતરદૃષ્ટિ અને વ્યવહારુ સલાહ આપે છે.