विभिन्न कार्यों पर खर्च किए गए कुल समय की गणना करने के लिए एक्सेल फॉर्मूला [बंद]


0

मुझे विभिन्न कार्यों पर खर्च किए गए कुल समय की गणना करने के लिए एक सूत्र की आवश्यकता है लेकिन मैं प्रत्येक दिन संबंधित अंतराल में कुल विभाजन चाहता हूं।

उदाहरण के लिए, कॉलम A में प्रारंभ समय है और स्तंभ B का अंत समय है।

कॉलम C & D में 30mins का अंतराल 07: 00-23: 00 तक है।

कॉलम ई के भीतर, मुझे एक सूत्र की आवश्यकता है जो किसी कार्य के समय को 09: 07-10: 56 तक की गणना करेगा, लेकिन संबंधित 30 मिनट के अंतराल के लिए पॉप्युलेट करने के लिए 09: 00-09: 30 23 मिनट, 09: 30- 30 होगा। 10:00 30 मिनट आदि होंगे।

जब मेरे पास कोई नया काम होता है, तो मेरे पास हजारों कार्य होते हैं, मैं एक संचयी कुल को पसंद करता हूं जैसा कि मैं जाता हूं।


तुमने समझदारी नहीं की, मुझे डर है। 07:00 और 23:00 के बीच बत्तीस 30 मिनट के अंतराल हैं, इसलिए आपको प्रत्येक अंतराल के लिए बत्तीस स्तंभों की आवश्यकता है, दो नहीं।
माइक स्कॉट

अपनी स्प्रेडशीट में वांछित परिणाम का मजाक उड़ाएं। संख्याओं को मैन्युअल रूप से दर्ज करें। कोई स्क्रीनशॉट लें। अपलोड करें कि एक मुफ्त फ़ाइल साझा करने वाली साइट, क्योंकि आप अभी तक छवियों को पोस्ट नहीं कर सकते हैं। लिंक यहाँ पोस्ट करें।
तेयलिन

यह देखें कि क्या यह सही है: आपके पास कार्यों की हजारों पंक्तियाँ हैं, प्रत्येक में कॉल ए में प्रारंभ समय और कॉल बी में अंत समय है। आपके पास 32 बार वेतन वृद्धि है, प्रत्येक पंक्ति में प्रत्येक वेतन वृद्धि के समय के साथ सी और अंत समय में शुरू होता है। कर्नल डी। कर्नल ई में, आप संबंधित समय वेतन वृद्धि के कार्य समय के विभाजन की गणना करना चाहते हैं, इसलिए कर्नल ई में 32 पंक्तियाँ होंगी। क्या आप समय अंतराल से कार्यभार वितरण की तलाश कर रहे हैं? आप कर्नल ई में पंक्ति द्वारा सभी टास्क टाइम ब्रेकडाउन पंक्ति को पूरा करना चाहते हैं, इसलिए पहली पंक्ति में कुल सभी कार्य हैं जो 07:00 और 07:30 के बीच हुए हैं?
फिक्सर 1234

हाँ मौके पर। कॉलम E के भीतर की पहली पंक्ति मुझे स्तंभ A और B के सभी कार्यों पर कुल समय 07: 00-07: 30 के बीच बिताएगी।
दान

और आप चाहते हैं कि यह पूरी चीज़ स्वचालित रूप से आपके द्वारा जोड़े गए किसी भी नए कार्य में शामिल हो, ताकि आपको प्रत्येक नए कार्य के लिए सूत्र श्रेणियों को मैन्युअल रूप से संशोधित करने की आवश्यकता न हो?
फिक्सर 1234

जवाबों:


1

मैं वास्तव में चाहता हूं कि मैं फाइलें संलग्न कर सकता हूं
यदि किसी के पास इसके लिए कोई समाधान है, तो मुझे बताएं कि
मेरे पास आपके लिए एक समाधान है। सबसे पहले, कुछ सेटअप:


आप डायनामिक नामित पर्वतमाला और अपने सूत्रों में उन का उपयोग करके इसी चीज़ को सेटअप कर सकते हैं लेकिन मुझे तालियाँ पसंद हैं इसलिए मैंने उन का उपयोग किया।
मैंने स्तंभों में एक तालिका बनाई A: B जिसे tblTimeLog कहा जाता है,
इसके दो क्षेत्र हैं: प्रारंभ, बंद करें
यह वह जगह है जहाँ आप अपने सभी प्रारंभ को इनपुट करते हैं और आवश्यकतानुसार कार्य समय पर रोकते हैं

मैंने कॉलम D में एक दूसरी तालिका बनाई: G जिसे tblTimeSummary कहा जाता है,
इसमें 4 फ़ील्ड हैं: इंटरवल स्टेयर, इंटरवल स्टॉप, इंटरवल, टोटल टाइम
इंटरवल स्टार्ट और स्टॉप उपयुक्त हैं
आप एक ही टेक्स्ट फ़ील्ड के साथ सब कुछ कर सकते हैं जो समय दिखा रहा है, लेकिन सूत्र हैं बहुत आसान है अगर आप इसे अलग करते हैं तो
ये दोनों 07:00 और 07:30, 07:30 और 08:00 आदि की समय सीमा रखेंगे,
मैंने इन्हें हाथ से टाइप किया और ऑटोफिल
इंटरवल ने केवल प्रस्तुति के लिए दोनों को मिला दिया तो आपको "07:00 - 07:30", "07:30 - 08:00", आदि जैसी चीज़ें मिलती हैं,
मैंने यहाँ एक सूत्र का उपयोग किया है: =TEXT([@[Interval Start]],"HH:mm") & " - " & TEXT([@[Interval Stop]],"HH:mm")
कुल समय वह है जहाँ यह गणना होगी कि उस अंतराल में कितना काम हुआ था।


यहाँ कुल समय के लिए बड़ा सूत्र है:

=SUMPRODUCT((tblTimeLog[Start]<=[@[Interval Stop]])*(tblTimeLog[Stop]>[@[Interval Start]])*(IF([@[Interval Stop]]<=tblTimeLog[Stop],[@[Interval Stop]],tblTimeLog[Stop])-IF([@[Interval Start]]>tblTimeLog[Start],[@[Interval Start]],tblTimeLog[Start])))*24*60

चलो तोड़ते हैं कि नीचे
SUMPRODUCTसरणियों का निर्माण होगा, प्रत्येक पंक्ति को एक साथ गुणा करें, फिर उन पंक्तियों को योग करें
यह जानना महत्वपूर्ण है कि यह TRUE1 और FALSE0 के रूप में माना जाएगा

पहला सरणी (tblTimeLog[Start]<=[@[Interval Stop]])
वह है जो इस अंतराल के अंत से पहले शुरू हुई सभी लॉग प्रविष्टियों को ढूंढता है

दूसरा सरणी विपरीत विचार है (tblTimeLog[Stop]>[@[Interval Start]])
यह सभी लॉग प्रविष्टियों को ढूंढता है जो इस अंतराल के शुरू होने के बाद समाप्त हो
गए हैं, वे सभी लॉग प्रविष्टियों को ढूंढते हैं जिनके पास अंतराल के भीतर कुछ समय है

(IF([@[Interval Stop]]<=tblTimeLog[Stop],[@[Interval Stop]],tblTimeLog[Stop])
यह सरणी या तो अंतराल के अंत या गतिविधि के अंत का चयन करती है, जो भी पहले आया था

IF([@[Interval Start]]>tblTimeLog[Start],[@[Interval Start]],tblTimeLog[Start])
यह सरणी या तो अंतराल की शुरुआत या गतिविधि की शुरुआत का चयन करती है, जो भी अंतिम हो

अंतिम दो सरणियों के बीच का अंतर आपको बताता है कि प्रत्येक लॉग प्रविष्टि का कितना समय इस विशेष अंतराल में बिताया गया था।

*24*60 अंत में यह बिट मिनटों में समय मान को मिनटों में बदल देता है


चलो कुछ छद्म कोड के साथ संक्षेप में प्रस्तुत करते हैं:
=Sum((If the log entry is in this interval)*(How much time was spent in this interval))
पहला सरणी 1 या 0 होगा और दूसरा कुछ समय मान होगा।
उन्हें एक साथ गुणा करना 0 का सरणी देता है और समय मान
जो आपको अंतराल में कुल लॉग समय देता है।

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