टेम्पलेट पर आधारित स्प्रेडशीट में अतिरिक्त कॉलम जोड़ें


1

क्या किसी मौजूदा स्प्रेडशीट में कुछ पूर्वनिर्धारित विश्लेषण / मूल्यांकन कोशिकाओं को जोड़ने का एक तरीका है?

मेरा उपयोग-मामला एक एप्लिकेशन है जो एक डेटाबेस से कर्मचारी डेटा के साथ एक एमएस एक्सेल फाइल बनाता है। हमें इस डेटा का मूल्यांकन उन तरीकों से करना होगा जो एप्लिकेशन के भीतर से संभव नहीं हैं, इसलिए हम एक्सेल में सूत्रों के साथ कुछ कॉलम जोड़ते हैं।

क्या इन मूल्यांकन कोशिकाओं को एक टेम्पलेट के रूप में सहेजने और उन्हें एक नई उत्पन्न फ़ाइल पर लागू करने का एक अच्छा तरीका है?

उदाहरण फ़ाइल / तालिका जो एप्लिकेशन से उत्पन्न होती है:

+-------------+
| ColA | ColB |
+-------------+
|  foo | baz  |
|  bar | baz  |
|  foo |      |
|  bar |      |
+-------------+

अतिरिक्त फ़ार्मुलों के साथ जो स्वचालित रूप से जोड़े जाने चाहिए (वर्तमान में, मैं एक पुरानी फ़ाइल से फ़ार्मुलों को जोड़ने के लिए कॉपी / पेस्ट का उपयोग करता हूं)

+-----------------------------+
| ColA | ColB | Eval1 | Eval2 |
+-----------------------------+
|  foo | baz  |   1   |   1   |
|  bar | baz  |   0   |   1   |
|  foo |      |   1   |   0   |
|  bar |      |   0   |   0   |
+-----------------------------+

स्पष्ट करने के लिए संपादित करें: मुझे कोई स्पष्ट सूत्र नहीं चाहिए, लेकिन सूत्रों के साथ मनमाना कॉलम जोड़ने के तरीके पर अधिक सामान्य तरीका। मैं एक्सेल के लिए बहुत नया हूं (और अब तक वीबीए को नहीं छुआ है), इसलिए मुझे नहीं पता कि क्या यह संभव है और कितना काम शामिल है।

यह प्रश्न किसी गणना के बारे में नहीं है, बल्कि नई उत्पन्न .xlsxफ़ाइलों में कस्टम पूर्वनिर्धारित सूत्रों को जोड़ने की प्रक्रिया के बारे में अधिक है । मेरे उदाहरण में तालिकाओं के पहले और बाद में केवल यह प्रदर्शित करना है कि कॉलम कहां जोड़े जाने चाहिए, लेकिन किसी शब्दार्थ को ले जाने के लिए नहीं हैं।

मेरी स्पष्ट समस्या के लिए, मुझे हमेशा कॉलम के साथ एक फ़ाइल मिलती है Month, Employeeऔर WorkHours। फिर, प्रतिशत वाले स्तंभों को जोड़ने की आवश्यकता होती है, जो मैं आमतौर पर हाथ से करता हूं और उन्हें सभी पंक्तियों के लिए नीचे खींचता हूं। यह एक जटिल काम नहीं है, लेकिन मुझे अपने सहकर्मियों के लिए इसे सुलभ बनाने की आवश्यकता है, बिना किसी फाइल के फॉर्मूले को मैन्युअल रूप से कॉपी किए हुए।

+-----------------------------------------------------------+
|Month    Employee   WorkHours    25%    50%    75%    100% |
|01.2016  PersonA       149,25    FormA  FormB  FormC  FormD|
|01.2016  PersonB        79,00    FormA  FormB  FormC  FormD|
+-----------------------------------------------------------+

सूत्र निम्नलिखित हैं:

FormA: =IF(AND(C2>0;C2<=40);0,25;"")
FormB: =IF(AND(C2>40;C2<=80);0,5;"")
FormC: =IF(AND(C2>80;C2<=120);0,75;"")
FormD: =IF(C2>120;1;"")

सवाल एक तरह का अस्पष्ट है। आप पहले और बाद में दिखाते हैं, लेकिन यह स्पष्ट नहीं है कि बाद में कहाँ से आता है या मान पहले के डेटा से कैसे संबंधित हैं। मुझे यकीन नहीं है कि कोई भी इसका उपयोगी तरीके से जवाब कैसे दे सकता है। क्या आप विस्तृत और अधिक स्पष्ट हो सकते हैं?
फिक्सर 1234

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

हो सकता है कि आप बस यही सोच रहे हों। यह नाइके के नारे की तरह है, "बस करो।" जब आप एक्सेल में फाइल खोलते हैं तो आप जो चाहें, जहां चाहें जोड़ सकते हैं। यदि आप किसी विशेष गणना के साथ एक कॉलम जोड़ना चाहते हैं, उदाहरण के लिए, आप फॉर्मूला को उस सेल में चिपकाते हैं जहाँ आप इसे चाहते हैं, और कॉलम को पॉप्युलेट करने के लिए इसे कॉपी या ड्रैग करें। हो सकता है कि यदि आप एक उदाहरण के बारे में सोच सकते हैं कि आप क्या करना चाहते हैं, तो लोग इस बात का स्वाद प्रदान कर सकते हैं कि यह कैसे पूरा होगा।
फिक्सर 1234

1
मैंने पहले से ही इसे "बस करो" -या, और सब कुछ ठीक है। लेकिन मेरे सहकर्मियों को हर महीने एक नई उत्पन्न फ़ाइल के साथ प्रक्रिया को दोहराना होगा। वे स्तंभों को मैन्युअल रूप से जोड़ना और प्रक्रिया में 2-3 दिन बर्बाद करना सीखने के बजाय हाथ से सभी गणना करेंगे। इसलिए, मैं उनके वर्कफ़्लो को बेहतर बनाने का एक तरीका खोज रहा था। मैं स्थिति को अधिक स्पष्ट रूप से प्रदर्शित करने के लिए कुछ वास्तविक डेटा जोड़ूंगा।
स्लीज़र्ड

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

जवाबों:


2

निश्चित रूप से आप वीबीए रूटीन (एस) का उपयोग कर सकते हैं जो कि अधिकांश गतिविधियों को स्वचालित रूप से करने के लिए किया जा सकता है (और इसे उद्देश्यपूर्ण रूप से वर्णित किया जा सकता है)। व्यापक दृष्टिकोण के एक जोड़े को ध्यान में रखना:

  • पूर्वनिर्धारित फ़ार्मुलों के साथ टेम्पलेट फ़ाइल रखने के अपने वर्तमान दृष्टिकोण पर निर्माण करें। उस फ़ाइल में VBA जोड़ें जो आप अभी कर रहे हैं को स्वचालित करने के लिए: जनरेट किए गए फ़ाइल में टेम्पलेट से फ़ार्मुलों की प्रतिलिपि बनाएँ। यह बेहतर (आसान) दृष्टिकोण हो सकता है, खासकर यदि आप विश्लेषण / मूल्यांकन सूत्रों को बदलने की अपेक्षा करते हैं - और खासकर यदि आपको अपने सहकर्मियों को टेम्पलेट को संशोधित करने की अनुमति देने की आवश्यकता है।
  • एक नई Excel फ़ाइल बनाएँ जिसमें केवल VBA हो। VBA में वांछित एक्सेल वर्कशीट फॉर्मूला को डेटा के रूप में एम्बेड करें। यह सूत्र को नई शीट में टाइप करने की क्रिया को स्वचालित करेगा । यह दृष्टिकोण मौजूदा डेटा को सूत्रों को सिलाई करने की सुविधा प्रदान कर सकता है।

बेशक, यह या तो / या नहीं है; आप एक हाइब्रिड समाधान तैयार कर सकते हैं जो उपरोक्त पहलुओं को जोड़ती है।

आपको देखना चाहिए कि मैं MS ऑफिस में VBA कैसे जोड़ूँ? सामान्य जानकारी के लिए। यह वर्णन करता है कि आपके रिबन पर "डेवलपर" टैब को कैसे सक्रिय किया जाए। यदि आप VBA नहीं जानते हैं, तो शुरू करने का एक अच्छा तरीका "डेवलपर मैक्रो" पर क्लिक करना है "डेवलपर" टैब पर, एक नाम चुनें और "ओके" पर क्लिक करें, उन कार्यों से गुजरें जिन्हें आप रिकॉर्ड करना चाहते हैं / स्वचालित करें, और फिर "स्टॉप रिकॉर्डिंग" पर क्लिक करें (जो "रिकॉर्ड मैक्रो" के समान बटन है)। मुझे याद है कि, दस या बीस साल पहले, मैक्रों को रिकॉर्ड किया गया था और कीस्ट्रोक्स के अनुक्रम / स्क्रिप्ट के रूप में संग्रहीत किया गया था; अब वे समकक्ष VBA में अनुवादित हैं।

आप शायद बुलेटप्रूफ बनाने के लिए कोड को संपादित करना चाहेंगे। आपको VBA पढ़ाना इस साइट के दायरे से परे है, लेकिन मेरे साथ यह हुआ है कि आप वर्कशीट को गतिशील रूप से "ढूंढना" चाहेंगे जहाँ आप डिब्बाबंद फ़ार्मुलों को रखना चाहते हैं। यहाँ ऐसा करने के लिए एक दृष्टिकोण है:

Set curw = ActiveWindow
Set curs = ActiveSheet
For Each w In Windows
    w.Activate
    For Each s In Sheets
        s.Activate
        If Range("A1") = "Month" And Range("B1") = "Employee" _
                                 And Range("C1") = "WorkHours" Then
            ' This is the sheet where I want to put the analysis/evaluation formulas.
            If Range("D1") = "" And Range("E1") = "" And Range("F1") = "" _
                                And Range("G1") = "" Then
                ' Put the formulas here.
            Else
                MsgBox "There’s already something here!"
            End If
        End If
    Next s
Next w
curw.Activate
curs.Activate

यदि आप इस साइट, और अन्य संसाधनों को खोजते हैं, तो आपको इस बात के बहुत से उदाहरण मिलेंगे कि यह निर्धारित करने के लिए कि लक्ष्य पत्रक में कितना डेटा पहले से है (ताकि आप अपने नए कॉलम को मिलान करने के लिए बढ़ा सकें)।

आप टेम्पलेट फ़ाइल खोलने और मैक्रो को फ़ार्मुलों को स्थापित करने के लिए मैक्रो को चलाने के लिए अपने सहकर्मियों को बता सकते हैं। आप मेनू को नेविगेट करने की आवश्यकता की परेशानी को बचाने के लिए एक बटन बना सकते हैं। यह भी देखें कि Office 2007 के लिए VBA मैक्रोज़ को कैसे स्टोर करें उन्हें हमेशा उपलब्ध रहे और दूसरों के साथ साझा करें? टेम्प्लेट फ़ाइल खोलने की आवश्यकता के बिना अपने सह-कर्मियों को मैक्रो कैसे उपलब्ध कराया जाए, इसकी जानकारी के लिए।


यह बहुत ही पूर्ण उत्तर था, धन्यवाद। मैंने VBA AddIn लिखना समाप्त किया ताकि वांछित कार्यक्षमता के लिए एक रिबन / मेनू प्रविष्टि हो।
स्लीज़र्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.