Feb 15, 2011

எக்சலில் குறிப்பிட்ட வரிசைப்படி தகவல்களை மொத்தமாக தேர்வு செய்வது எப்படி?


ms+excel+logoஎக்சலில் நமக்கு வேண்டிய தகவல்களை வரிசைப்படி அல்லது நெடுவரிசைப்படி தேர்வு செய்வது எளிதானது தான். மவுஸ் மூலம் அல்லது Shift key மூலமாகவும்
செய்யலாம். இதனால் தொடர்ச்சியாக வரும் செல்களை மட்டுமே தேர்வு செய்ய முடியும். ஆனால் முதல் வரிசை, அடுத்து 5 ஆம் வரிசை, 10 ஆம் வரிசை என்று விட்டு விட்டு தேவைப்படின் நாம் CTRL விசையை அழுத்தியவாறே ஒவ்வொன்றாக தேர்வு செய்யலாம். சிறிய அளவில் தகவல்கள் இருக்குமாயின் பிரச்சினையில்லை. பெரிய எக்சல் கோப்பில் Ctrl விசையை அழுத்தி பல வரிசைகளைத் தேர்வு செய்வது கடினமான வேலையே. ஆனால் நமக்கு குறிப்பிட்ட வரிசைப்படி தகவல்கள் வேண்டுமெனில் சில வழிகளை பயன்படுத்துவதன் மூலம் பெறலாம்.

முதல் வரிசையில் ஒரு வகையான தகவல்களும், இரண்டாவது வரிசையில் வேறு வகையான தகவல்களும் அமைந்துள்ளன. இந்த இரண்டு விதமான தகவல்களும் அடுத்தடுத்து மாறிவருகின்றன. இதில் ஒரே வகையைச் சார்ந்த வரிசைகளை மட்டும் தேர்வு செய்து வேறொரு இடத்தில் காப்பி செய்து வைக்கலாம் என நினைப்பீர்கள். குறிப்பிட்ட வரிசையெனில் அது ஒரு எண்ணின் மடங்குகளாக இருக்க வேண்டும். உதாரணம் : 3,6,9,12,15,21

கீழ்க்கண்டதில் சென்னை என்று வரும் வரிசைகள் தனியாகவும் திருச்சி என்று வரும் வரிசைகள் தனியாகவும் வேண்டும் என நினைப்பீர்கள்.அல்லது 2,4,6,8 என்று வரக்கூடிய வரிசைகள் மட்டும் தனியே எடுக்க வேண்டும் என நினைப்பீர்கள். இதை ஆங்கிலத்தில் Select Every "N" th rows in a worksheet என்று சொல்வார்கள்.
vb+macro+data

செயல்படுத்தும் முறை :

எக்சலில் வழக்கமாக இந்த வசதியில்லை எனினும் Macro ஒன்றை உருவாக்கி அதன் மூலம் இவ்விதம் செய்யமுடியும். குறிப்பிட்ட வேலைகளை திரும்பத் திரும்ப செய்ய வேண்டியிருக்கும் போது Macro உருவாக்குவதன் மூலம் எளிமையாக ஒரே கிளிக்கில் செய்யமுடியும். இவை விசுவல் பேசிக்கில் உள்ள கட்டளைகள், பங்சன்களைக் கொண்டு செயல்படுத்தப்படுகின்றன.

Tools->Macro->Macros சென்று Macro name என்பதில் உருவாக்கப்பட வேண்டிய
மேக்ரோவிற்கு SelectRows என்று பெயர் கொடுத்து Create என்பதை கிளிக் செய்யவும். இப்போது விசுவல் பேசிக் புரோகிராமிங் விண்டோ திறக்கப்படும். அதில் கீழ்க்கண்ட வரிகளை காப்பி செய்யவும்.

Sub SelectRows()
Dim MyRange As Range, i As Integer
Set MyRange = Rows(2)
For i = MyRange.Row To Cells(Rows.Count, "A").End(xlUp).Row Step 3
Set MyRange = Union(MyRange, Rows(i))
Next i
MyRange.Select
End Sub

vbamacro1
Set myrange=rows(2) என்பது தகவல்கள் எந்த வரிசையிலிருந்து ஆரம்பிக்கின்றன எனக்கொடுக்க வேண்டும். பெரும்பாலும் முதல் வரிசையில் தலைப்புகள் இருக்கும்.அதனால் இரண்டு என உள்ளது. அடுத்து For என்று ஆரம்பிக்கும் வரியில் கடைசியில் Step க்கு அருகில் நமக்கு வேண்டிய எண்ணைக் கொடுக்க வேண்டும். இங்கே மூன்று மூன்றாகச் செல்வதால் 3 என உள்ளது.

இதே போல குறிப்பிட்ட எண்ணின் படி அமைந்துள்ள நெடுவரிசைகளையும் (Columns) தேர்வு செய்யலாம். இதற்கான நிரல்வரிகள் கீழே.

Sub SelectColumns()
Dim MyRange As Range, i As Integer
Set MyRange = Columns(2)
For i = MyRange.Column To Cells(1, Columns.Count).End(xlUp).Column step 2
Set MyRange = Union(MyRange, Columns(i))
Next i
MyRange.Select
End Sub

மேக்ரோவிற்கான நிரல்வரிகளை காப்பி செய்துவிட்டு மறுபடியும் எக்சல்
கோப்பிற்கே வந்துவிடவும். Tools->Macro->Macros சென்றால் நீங்கள் உருவாக்கிய
மேக்ரோக்களின் பட்டியல் இருக்கும். அதைத் தேர்வு செய்து Run என்பதை
கிளிக் செய்வதன் மூலம் குறிப்பிட்ட வரிசையிலான செல்களைத் தேர்வுசெய்யப்பட்டு விடும். அதனை நீங்கள் காப்பி செய்து வேறு வேலைகளுக்கு
பயன்படுத்தலாம்.
vb+macro+select+rows
மேலும் Options என்பதை கிளிக் செய்து உங்களின் மேக்ரோவிற்கு குறுக்குவிசை ஒன்றை குறிப்பிடலாம். இதனால் மெனுவிற்கு செல்லாமல் குறுக்குவிசைகளை அழுத்துவதன் மூலம் மேக்ரோவினை எளிதாக இயக்கலாம்.
excel+macro+shortcut
மாற்றுவழி :

எந்த இடத்திலிருந்து தகவல்கள் ஆரம்பிக்கிறதோ அந்த வரிசையின் கடைசியில்
ஒரு புதிய நெடுவரிசையில் =Mod(Row(A1),3) என்ற சூத்திரத்தை அடித்தால்
மூன்றின் மடங்குகள் மட்டும் 0 என்ற விடையோடு வரும்.
excel+macro+filter+1
பின்னர் Data->Filters->Autofilter என்பதை கிளிக் செய்யவும். இப்போது ஒவ்வொரு நெடுவரிசையிலும் Filter உருவாயிருக்கும்.
vb+macro+filterநாம் கடைசி நெடுவரிசையின் Filter இல் 0 என்பதை தேர்வு செய்தால் நமக்கு வேண்டிய வரிசைகள் மட்டுமே காட்டப்படும். பின்னர் அதை எளிதாக தேர்வு செய்யலாம்.

5 comments:

  1. SASI+KUMAR2

    பயனுள்ள பதிவு நன்றி பொன்மலர்

    ReplyDelete
  2. blogger_logo_round_35
  3. Speed+Master
  4. dubaiat

    பல முறை முயற்சித்தும் எனக்கு வேண்டிய மேக்ரோ இன்னும் எனக்கு தண்ணி காண்பித்துக்கொண்டிருக்கு.

    ReplyDelete
  5. DSC01083

    பயனுள்ள பதிவு , மேலும் எதிர் பார்க்கிறோம்

    ReplyDelete