एक विशिष्ट मान की उपस्थिति को देखते हुए सेल की सामग्री को गतिशील रूप से कॉपी करने के लिए एक IF सूत्र का उपयोग करने का प्रयास


0

अगर एक संबंधित शब्द [पंक्ति] में दिए गए शब्द हैं तो मुझे एक वर्कशीट से दूसरे में कोशिकाओं को डुप्लिकेट करने की आवश्यकता है।

पंक्ति 2 में सेल ए में "फू" है, मैं उस पंक्ति की सभी कोशिकाओं को किसी अन्य कार्यपुस्तिका में डुप्लिकेट करना चाहूंगा। अगर A3 में "फ्लॉप" है, तो किसी भी सेल को डुप्लिकेट नहीं किया जाना चाहिए - यह अनिवार्य रूप से (एक रिक्त पंक्ति के बिना) छोड़ दिया जाएगा।

डेटा इस प्रकार है:

    A   |   B   |  C

2  foo  | blah  | blah

3 floop | blah  | blah

4  foo  | blah  | blah

परिणामी तालिका इस प्रकार होगी:

    A   |   B   |  C

2  foo  | blah  | blah

3  foo  | blah  | blah

-

यह उतना ही दूर है जितना मैंने पा लिया है:

मैंने डेटा को सॉर्ट करने के लिए A52 पर एक सहायक तालिका बनाई है जिसके लिए "foo" कॉलम A में मौजूद है फॉर्मूला = IF (ISNUMBER (SEARCH ("foo"), a2)), a2, "" " I एक एहसास बेमानी है, लेकिन काम करने के लिए लगता है कि केवल बिट है।]

अंतिम तालिका में मैं = IF (ISNUMBER (ISBLANK (A52)), A2, [!!!!]] का उपयोग कर रहा हूं [ [!!!!!] प्रदर्शन कोड है जो मुझे नहीं पता है।] यह "FALSE" के रूप में हल होता है

मुझे पता है कि यह एक प्राथमिक प्रश्न है, लेकिन मुझे कहीं भी उत्तर खोजने में कोई भाग्य नहीं है।

अग्रिम में धन्यवाद! - पी

PS जैसा कि मैं यह लिख रहा हूं मुझे एहसास है कि मुझे व्यक्तिगत कोशिकाओं के विपरीत पूरी पंक्ति को संसाधित करने की आवश्यकता है, इसलिए मुझे एक और दृष्टिकोण की आवश्यकता है। ओह अच्छा! मैं इस दूर मिल गया है!


अलग पूछने के लिए आपका स्वागत है! :) बस स्पष्ट करने के लिए, क्या आप पंक्ति को उसी कार्यपुस्तिका में किसी अन्य कार्यपत्रक में कॉपी करना चाहते हैं, या पूरी तरह से किसी अन्य कार्यपुस्तिका में?
मोनोमेथ

जवाबों:


1

इसे प्राप्त करने के लिए एक IF सूत्र का उपयोग कई कारणों से समस्याग्रस्त होने वाला है। लेकिन यह मानते हुए कि आपको यह काम करने के लिए मिला है, आपके पास हमेशा यह मुद्दा होता है कि एक सूत्र को एक सेल के भीतर रखा जाना चाहिए और इसलिए आपकी कार्यपुस्तिका स्केलेबल नहीं है (अर्थात यदि आप पंक्तियों को जोड़ते / हटाते समय क्या होता है)? ज़रूर, आप इसके आस-पास भी काम कर सकते हैं (जैसे आपके डेटा को एक उचित तालिका / सूची के रूप में प्रारूपित करके), लेकिन मेरे अनुभव से आपको ऐसा करने के लिए एक मैक्रो का उपयोग करना बेहतर होगा।

चरण 1: डेवलपर टैब को एक्सेल में जोड़ें

सबसे पहले आपको यह सुनिश्चित करना होगा कि आपके पास Excel के रिबन में डेवलपर टैब दिखाई दे। यदि यह पहले से ही है (आमतौर पर यह दृश्य टैब के बाद अंतिम है, तो चरण 2 पर जाएं: अपना मैक्रो बनाना। अन्यथा, निम्न चरणों का पालन करें:

  1. MS Excel लॉन्च करें
  2. Excel> प्राथमिकताएं पर जाएं (या केवल command,कुंजी दबाएं )
  3. रिबन और टूलबार आइकन चुनें
  4. सुनिश्चित करें कि रिबन टैब शीर्ष पर चुना गया है
  5. दाईं ओर आपको टैब की एक सूची दिखाई देगी - डेवलपर टैब के बगल में स्थित चेकबॉक्स चुनें (यह संभवतः बहुत नीचे सूचीबद्ध है)
  6. Saveबटन पर क्लिक करें
  7. प्राथमिकताएँ से बाहर निकलें
  8. अब आपको डेवलपर टैब दिखाई देगा (नीचे चित्र देखें):

यहां छवि विवरण दर्ज करें

चरण 2: अपना मैक्रो बनाना

अब हमें आपका मैक्रो बनाने की आवश्यकता है। इन कदमों का अनुसरण करें:

  1. एक्सेल में, सुनिश्चित करें कि आपके पास अपनी कार्यपुस्तिका खुली है
  2. डेवलपर टैब चुनें
  3. Visual Basic विकल्प पर क्लिक करें (रिबन के बाईं ओर)
  4. यह Microsoft Visual Basic विंडो को खोलेगा
  5. खिड़की के ऊपर बाईं ओर कुछ इस तरह दिखना चाहिए:

  6. अब ThisWorkbook पर राइट-क्लिक करें और सम्मिलित करें> मॉड्यूल चुनें (नीचे देखें)

  1. कुछ ही पलों में आपको विजुअल बेसिक एडिटर के दाईं ओर एक सफेद विंडो खुली दिखनी चाहिए
  2. अब नीचे दिए गए कोड को कॉपी करें और इसे सफेद जगह पर चिपकाएँ:

    Sub CopyRowsBasedOnCellValue()
    'This macro copies rows from one worksheet to another within the same workbook if that row contains a specific value in Column A
        Dim xRg As Range
        Dim xCell As Range
        Dim X As Long
        Dim Y As Long
        Dim Z As Long
        X = Worksheets("Sheet1").UsedRange.Rows.Count
        Y = Worksheets("Sheet2").UsedRange.Rows.Count
        If Y = 1 Then
            If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then Y = 0
        End If
        Set xRg = Worksheets("Sheet1").Range("A1:A" & X)
        On Error Resume Next
        Application.ScreenUpdating = False
        For Z = 1 To xRg.Count
            If CStr(xRg(Z).Value) = "foo" Then
                xRg(Z).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & Y + 1)
                Y = Y + 1
            End If
        Next
        Application.ScreenUpdating = True
    End Sub
    
  3. अब आपको निम्नलिखित जैसा कुछ देखना चाहिए:

यहां छवि विवरण दर्ज करें

  1. अब आपको इस कोड को थोड़ा अनुकूलित करना होगा क्योंकि यह वर्तमान में आपके प्रश्न में उदाहरण के लिए विशेष रूप से लिखा गया है। आपको निम्नलिखित पहलुओं को अनुकूलित करने की आवश्यकता है:

    • Sheet1अपनी पहली वर्कशीट के नाम के साथ दो उदाहरणों को बदलें (यानी आप जिससे कॉपी कर रहे हैं)
    • Sheet2अपने दूसरे वर्कशीट के नाम के साथ तीन उदाहरणों को बदलें (यानी जिसे आप कॉपी कर रहे हैं)
    • A1:Aउस कॉलम को इंगित करता है जिसे आपके द्वारा मिलान किए जा रहे मान के लिए खोजा जा रहा है (यानी "foo" मान जो आपके उदाहरण में है। यदि यह आपके कार्यपत्रक में स्तंभ A नहीं है, तो A को उस स्तंभ के लिए परिवर्तित करें, जो इसके लिए आवश्यक है।) उदाहरण के लिए, यदि आपकी कार्यपत्रक में कॉलम D में "foo" मान है, तो यह होना चाहिएD1:D
    • अंत में, आपको "foo"कोड में एकल उदाहरण दिखाई देगा । जिस भी वैल्यू को आप मैच करने की कोशिश कर रहे हैं, उसके साथ फू को बदलें।
  2. अंत में, आपको अपनी कार्यपुस्तिका को मैक्रो-सक्षम के रूप में सहेजना होगा। ऐसा करने के लिए, एक्सेल पर लौटने के लिए ऊपर बाईं ओर एक्सेल आइकन पर क्लिक करें और फिर फ़ाइल मेनू से सेव अस विकल्प चुनें। फ़ाइल प्रारूप के लिए आपको ड्रॉप-डाउन सूची से एक्सेल मैक्रो-सक्षम कार्यपुस्तिका (.xlsm) विकल्प का चयन करना होगा ।

चरण 3: मैक्रो का उपयोग करना

अब आप जाने के लिए तैयार हैं। मैक्रो का उपयोग करने के लिए, इन चरणों का पालन करें:

  1. एक्सेल लॉन्च करें और वर्कबुक खोलें
  2. डेवलपर टैब चुनें
  3. मैक्रोज़ आइकन पर क्लिक करें (यह दूसरा होना चाहिए)
  4. यह मैक्रो विंडो लाएगा:
  5. CopyRowsBAsedOnCellValue मैक्रो का चयन करें (नीचे देखें)

यहां छवि विवरण दर्ज करें

  1. Runबटन पर क्लिक करें
  2. आपकी मैक्रो चलेगी और मापदंड से मेल खाने वाली सभी पंक्तियों को आपकी गंतव्य शीट पर कॉपी किया जाएगा। नीचे एक चित्र है जो आपके उदाहरण के आधार पर शॉट्स के पहले और बाद में दिखा रहा है:

यहां छवि विवरण दर्ज करें


नोट: उपरोक्त कोड मूल रूप से https://www.extendoffice.com/ से प्राप्त कोड से अनुकूलित किया गया था । मेरा उस वेबसाइट से कोई संबंध नहीं है।


वाह, पहले पढ़ने पर यह बिल्कुल वैसा ही दिखता है जैसा मुझे चाहिए! धन्यवाद! मैं इसे अभी एक कोशिश नहीं दे सकता, लेकिन आपके सारे प्रयास के लिए तुरंत धन्यवाद देना चाहता था। जब मैं इसे आज़माऊँगा तो मैं वापस जाँच करूँगा।
एलेक्सिस राचेल

कोई चिंता नहीं! :) मुझे पता है अगर आप किसी भी समस्याओं में चलाते हैं। शुभकामनाएं!
Monomeeth
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.