एक्सेल - लक्ष्य के लिए सेल का मूल्य भेजें
मुद्दा
क्या किसी सेल के मूल्य (कॉपी और पेस्ट विशेष) को किसी अन्य सेल में भेजना संभव है, जहां स्रोत का मान '0 ’में बदलने पर मूल्य में गड़बड़ी नहीं होगी?
मेरे पेरोल कैलकुलेटर सारांश वर्कशीट को एक्सेल फ़ाइल के भीतर प्रत्येक सप्ताह अन्य कार्यपत्रकों से जानकारी मिलती है और वर्तमान सप्ताह के पेरोल की गणना करता है। पिछले सप्ताह के मान थे, लेकिन अब, चालू सप्ताह के दौरान, पिछले सप्ताह की कोशिकाएँ 0 हैं।
मेरा लक्ष्य पिछले सप्ताह के मूल्यों को एक और सेल सरणी में बनाए रखना है ताकि मेरे पास महीने के लिए कुल चल सके।
उदाहरण:
A3 का सूत्र है:
= IF (A3 = 'पेरोल कैलकुलेटर'! M2, VLOOKUP (H1, 'पेरोल कैलकुलेटर'! $ B $ 3: $ M $ 28, 8, FALSE), 0)
उस मान को K3 में पोस्ट किया जाना चाहिए, लेकिन केवल '0' से अधिक होने पर।
यदि A3 '0' का मान लौटाता है, तो '0' से बड़ा कोई भी मान जो पहले K3 में पोस्ट किया गया था, अकेला छोड़ दिया जाएगा।
मैं इसे आसानी से मैन्युअल रूप से उन मूल्यों की प्रतिलिपि बनाकर कर रहा हूं, जिन्हें मैं सहेजना चाहता हूं, फिर 'पेस्ट विशेष' कमांड का उपयोग करके और 'मान' चुनकर, लक्ष्य पर चिपकाया गया। 'स्किप ब्लैंक्स' कुछ नहीं करता है। मैक्रो:
उप मैक्रो 1 ()
'
'मैक्रो 1 मैक्रो
'
'
रेंज ( "सी 3")। का चयन करें
ActiveWindow.ScrollRow = 10
रेंज ( "सी 3: I52") का चयन करें।
Selection.Copy
रेंज ( "K3")। का चयन करें
चयन। विशेष पेस्ट: = xlValues, ऑपरेशन: = xlNone, SkipBlanks: = _
सत्य, संक्रमण: = गलत
रेंज ( "K3")। का चयन करें
Application.CutCopyMode = गलत
अंत उप
यह पिछले सप्ताह के मानों को शून्य से अधिलेखित करता है कि क्या मैं स्किप ब्लॉक्स चुनूं या नहीं (शायद इसलिए कि कोशिकाएं शून्य हैं, खाली नहीं!)।
मैं सरणी A3: I54 के साथ काम कर रहा हूं और K3: K54 से अधिक किसी भी मान को कॉपी और पेस्ट करना चाहता हूं: Q54 उन मूल्यों को बनाए रखता है जो पहले K3: Q54 में पोस्ट किए गए थे जो '0' से अधिक हैं।
उपाय
अगर मेरी व्याख्या सही है तो शायद यह आपको सही दिशा में ले जाए।
यह कॉलम A की तुलना कॉलम K में वर्तमान में ...... के साथ करेगा।
A1 K1 में मूल्य की तुलना करता है
A2 के 2 में मूल्य की तुलना करता है
आदि....
यदि स्तंभ A शून्य से अधिक है और स्तंभ K शून्य से अधिक है, तो स्तंभ K में मान रखें। अन्यथा स्तंभ A में दिए गए मान को स्तंभ B पर कॉपी करें।
सब मैक्रो 1 () डिम जेज = 3 डू रेंज तक ("ए" और जे) = "" यदि रेंज ("ए" और जे) = 0 फिर रेंज ("के" और जे) = रेंज ("के" एंड जे) Else Range ("K" & j) = Range ("A" & j) End अगर j = j + 1 लूप एंड सब
कई कॉलम जोड़ने के लिए, मैक्रो को "C: K" जैसा बनाएं
Sub Macro1 () मंद jj = 3 डू रेंज तक ("C" & j) = "" यदि रेंज ("C" & j) = 0 तो रेंज ("K" & j) = रेंज ("K" & j) Else Range ("K" & j) = Range ("C" & j) End if If Range ("D" & j) = 0 तो Range ("L" & j) = Range ("L" & j) Else रेंज ("L" & j) = रेंज ("D" & j) यदि इफ रेंज ("E" & j) = 0 तो रेंज ("M" & j) = रेंज ("M" & j) एल्स रेंज ("M" & j) = रेंज ("E" & j) एंड इफ रेंज ("F" & j) = 0 तो रेंज ("N" & j) = रेंज ("N" & j) एल्स रेंज () "एन" और जे) = रेंज ("एफ" और जे) एंड इफ रेंज ("जी" और जे) = 0 तो रेंज ("ओ" और जे) = रेंज ("ओ" और जे) एल्स रेंज (") O "और j) = श्रेणी (" G "& j) अंत यदि if श्रेणी (" H "& j) = 0 तब सीमा (" P "& j) = श्रेणी (" P "और j) Else Range (" P ") "और j) = श्रेणी (" H "& j) अंत यदि if श्रेणी (" I "& j) = 0 तो रेंज (" Q "& j) = श्रेणी (" Q "& j) Else Range (" Q ") & j) = श्रेणी ("I" & j) अंत यदि j = j + 1 लूप अंत उप
ध्यान दें कि
फोरम पर इस टिप के लिए WutUp WutUp का धन्यवाद।