मैं वास्तव में चाहता हूं कि मैं फाइलें संलग्न कर सकता हूं
यदि किसी के पास इसके लिए कोई समाधान है, तो मुझे बताएं कि
मेरे पास आपके लिए एक समाधान है। सबसे पहले, कुछ सेटअप:
आप डायनामिक नामित पर्वतमाला और अपने सूत्रों में उन का उपयोग करके इसी चीज़ को सेटअप कर सकते हैं लेकिन मुझे तालियाँ पसंद हैं इसलिए मैंने उन का उपयोग किया।
मैंने स्तंभों में एक तालिका बनाई 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
सरणियों का निर्माण होगा, प्रत्येक पंक्ति को एक साथ गुणा करें, फिर उन पंक्तियों को योग करें
यह जानना महत्वपूर्ण है कि यह TRUE
1 और FALSE
0 के रूप में माना जाएगा
पहला सरणी (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 का सरणी देता है और समय मान
जो आपको अंतराल में कुल लॉग समय देता है।