एक ही सामग्री के लिए कई पंक्तियों को एकल पंक्ति में बदलें


0

मैं निर्माता और निर्माता भाग संख्या के लिए विभिन्न मूल्यों के साथ प्रत्येक सामग्री (पंक्तियों की संख्या भिन्न होगी) के लिए कई पंक्तियाँ हैं। मुझे एक ही पंक्ति में सभी निर्माताओं और विनिर्माण भाग संख्या के साथ प्रत्येक सामग्री के लिए इसे एक पंक्ति में बदलने की आवश्यकता है।

उदाहरण नीचे दिया गया है क्योंकि मैं चित्र संलग्न करने में सक्षम नहीं हूं:

मौजूदा डेटा

Material1 Mfgr1 MPN11    
          Mfgr2 MPN12

Material2 Mfgr2 MPN21    
          Mfgr3 MPN22    
          Mfgr4 MPN23

आवश्यक डेटा

Material1 Mfgr1 MPN11 Mfgr2 MPN12    
Material2 Mfgr2 MPN21 Mfgr3 MPN22 Mfgr4 MPN23

सुपर उपयोगकर्ता में आपका स्वागत है। दुर्भाग्य से, हम एक कोड-लेखन सेवा नहीं हैं। किसी विशेष कार्य को करने के लिए कोड के बारे में पूछने के बजाय, कृपया हमें बताएं कि आपने अब तक क्या प्रयास किया है (वर्तमान में आपके पास मौजूद किसी भी कोड सहित) और जहां आप फंस गए हैं ताकि हम आपकी विशिष्ट समस्या में मदद कर सकें। प्रश्न जो केवल कोड के लिए पूछते हैं, वे बहुत व्यापक हैं और उन्हें होल्ड पर या बंद किए जाने की संभावना है ।
DavidPostill

क्या रिकॉर्ड पहले से ही अनुक्रमित हैं (सामग्री, निर्माता, और आप चाहते हैं कि क्रम में भाग संख्या, सभी सन्निहित रिकॉर्ड में समूहीकृत), या क्या कार्य डेटा को समेकित करने के लिए प्रासंगिक रिकॉर्ड का पता लगाना शामिल है? क्या प्रत्येक फ़ील्ड वर्तमान में एक अलग कॉलम या सभी एकल पंक्ति में एक पंक्ति में है? क्या सामग्री को केवल एक बार दिखाया गया है, या प्रत्येक रिकॉर्ड में शामिल किया गया है? क्या आप चाहते हैं कि परिणाम प्रत्येक फ़ील्ड में एक अलग कॉलम या सभी एक पंक्ति में एक पंक्ति में, या प्रत्येक mfgr और MPN एक एकल कक्ष में हो? अनुमानित मात्रा (कुल रिकॉर्ड, सामग्री, अधिकतम MPN प्रति सामग्री) क्या हैं?
फिक्सर 1234

@ डेविड, मैं वर्तमान में मैन्युअल रूप से ऐसा कर रहा हूं, और मैक्रोज़ लिखने में अच्छा नहीं हूं।
रवि

@ Fixer1234, हाँ सभी रिकॉर्ड्स को मैटीरियल, मैन्युफैक्चरर्स, MPN के रूप में अनुक्रमित किया गया है, जिसमें बहुत से अन्य फील्ड हैं, जिनके बीच में मैं निकाल सकता हूं। यदि सामग्री पहले 3 पंक्तियों के लिए समान है, तो सामग्री कोड केवल एक बार (पहले रिकॉर्ड में) दिखाई देगा। साथ ही प्रत्येक फ़ील्ड एक अलग कॉलम में है और परिणाम भी अलग कॉलम में होना चाहिए। कुल रिकॉर्ड अधिकतम के साथ एक हजार पंक्तियों में चल सकते हैं। एमपीएन / सामग्री 5-6 के रूप में
रवि

जवाबों:


0

यह कोड करेगा चाल:

Sub materialsinglerow()
Dim wkb As Workbook
Dim wks, wks1 As Worksheet
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(1)
Set wks1 = wkb.Sheets(2)
continue = True
i = 1
j = 0
k = 2
emptycount = 0
lastmaterial = ""
While continue = True
    material = wks.Cells(i, 1)
    mfgr = wks.Cells(i, 2)
    mpn = wks.Cells(i, 3)
    If material <> "" Then
        j = j + 1
        k = 2
        wks1.Cells(j, 1) = material
        lastmaterial = material
    End If
    If mfgr <> "" Then
        wks1.Cells(j, k) = mfgr
        k = k + 1
        wks1.Cells(j, k) = mpn
        k = k + 1
    Else
        emptycount = emptycount + 1
    End If
    If emptycount > 10 Then
        continue = False
    End If
    i = i + 1
Wend

यह से डेटा पढ़ता पत्रक 1 और के लिए परिणाम बारे में Sheet2 यह सोचते हैं कि मूल डेटा स्तंभों में है A, B and C

यह तब रुकता है जब स्तंभ में 10 खाली कोशिकाएं होती हैं C

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.