नेस्टेड IF और CHOOSE फॉर्मूले में सुधार करें


2

मुझे CSV फ़ाइल के रूप में हमारे खुले कार्य आदेशों के लिए साप्ताहिक दर्जा प्राप्त है। इसमें 3-अक्षर की स्थिति कोड शामिल हैं जो पूरी प्रक्रिया में विभिन्न चरणों से जुड़े हैं।

मुझे स्टेटस कोड्स के स्थान पर प्लेन-लैंग्वेज परिभाषाएँ डालनी होंगी।

मेरी स्प्रैडशीट स्वचालित रूप से ऐसा करती है, लेकिन स्प्रेडशीट मुझे लगता है कि मैं इसे अभी कैसे कर रहा हूं वास्तव में अक्षम है। शीट, जो ऐसा करती है, अपने आप में, 75 एमबी से अधिक है, और पूरी चीज को नीचे कर देती है।

मेरी वर्तमान शीट कैसे काम करती है एक 16-कॉलम ग्रिड है जो CSV के स्टेटस कोड [@ [SO कोड्स] के साथ है और रो 1 में कोड्स की स्टैटिक सूची है। प्रत्येक दूसरी पंक्ति 16-साथ है:

=IF([@[SO Codes]]=Table3[[#Headers],[AA]],1,0)
=IF([@[SO Codes]]=Table3[[#Headers],[CA]],2,0)
=IF([@[SO Codes]]=Table3[[#Headers],[CAN]],3,0)
आदि

इसलिए प्रत्येक स्थिति कोड को 1 से 16 तक की संख्या दी जाती है जो 16x [कार्य क्रमों की संख्या] ग्रिड पर दिखाई देती है।

का अंतिम कॉलम है:

=SUBTOTAL(9,E2:T2)
=SUBTOTAL(9,E3:T3)
=SUBTOTAL(9,E4:T4)
आदि

अंत में, जो मेरे ट्रैकर को लाइनों के साथ खिलाता है जो कि जैसा दिखता है: =CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3),IF([@Status]=J4,L4),IF([@Status]=J5,L5),IF([@Status]=J6,L6),IF([@Status]=J7,L7),IF([@Status]=J8,L8),IF([@Status]=J9,L9),IF([@Status]=J10,L10),IF([@Status]=J11,L11),IF([@Status]=J12,L12),IF([@Status]=J13,L13),IF([@Status]=J14,L14),IF([@Status]=J15,L15),IF([@Status]=J16,L16),IF([@Status]=J17,L17))

जहां कॉलम एल प्लेनटेक्स्ट कोड परिभाषाओं की सूची है, और जे 3 स्टेटस कोड कैलकुलेटर से सबटोटल्स को फीड करता है।

मैं मदद नहीं कर सकता कि ऐसा करने का एक और अधिक सुंदर और कुशल तरीका होना चाहिए। कोई अंतर्दृष्टि? मैंने CSV से सीधे कोड पर = CHOOSE फ़ंक्शन का उपयोग करने की कोशिश की, लेकिन यह केवल संख्यात्मक मानों पर काम करता है। मैंने प्रत्येक चरण की तस्वीरें शामिल की हैं, क्योंकि मुझे लगता है कि मैंने इसे खराब तरीके से समझाया है।

सीएसवी कोड कैलकुलेटर enter image description here

ट्रैकर enter image description here


उप योग से अधिक तेज है (9, ... Vlookup = IF ([@ [SO कोड]] = = तालिका 3 [[# हेडर], [AA]], 1,0) से तेज है ... लेकिन क्या आपके पास वर्ष हैं स्मार्ट फ़िल्टर में छिपा हुआ डेटा बंद क्यों? इतना बड़ा क्यों? = Vlookup (टेक्स्ट सेल, 1 कॉलम में कोड के साथ सरणी, 2 (यदि 2 कॉलम में विवरण), 0 = सटीक मिलान)
Sunnyskyguy EE75

जवाबों:


1

कि चुनें सूत्र के रूप में लिखा जा सकता है

=Vlookup([@Status],$J$2:$L$17,3,False)

मुझे यकीन नहीं है कि मैं समझता हूं कि बाकी समस्या क्या है।


दो Vlookups, संभव कोड विवरण और स्थिति
Sunnyskyguy EE75

0

कोड कैलकुलेटर:

लंबी तालिका के बजाय आप एकल का उपयोग कर सकते हैं MATCH():
=MATCH([@[SO CODES]],TableHelper[code list],0)
enter image description here

ट्रैकर

यहां मुझे यकीन नहीं है कि मैं आपके मूल सूत्र को सही ढंग से समझता हूं।

=CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3)... - क्या होता है जब [@Status]<>J2? या कि एक अवास्तविक परिदृश्य है? यदि हाँ, तो बस एक सरल का उपयोग करें INDEX() समारोह:
=INDEX($L$2:$L$17,[@Status])

अन्यथा कृपया बताएं कि आपके सूत्र को क्या करना चाहिए।

अंतिम अनुकूलन:

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

मैंने CSV से कोड पर सीधे = CHOOSE फ़ंक्शन का उपयोग करने की कोशिश की, लेकिन यह केवल संख्यात्मक मानों पर काम करता है

वास्तव में, आप सीधे कोड्स को फीड कर सकते हैं, बस उपयोग कर सकते हैं VLOOKUP(), कुछ इस तरह:
=VLOOKUP(<code>,$J:$K,2,false)

कहा पे

  • <code> एक कोड है जिसके लिए आप विवरण प्राप्त करना चाहते हैं
  • $J:$K आपके स्क्रीनशॉट के अनुसार कोड और विवरण कॉलम हैं

सारे सवालों के जवाब देने के लिए धन्यवाद! यह स्पष्ट है कि मुझे यह जानने की आवश्यकता है कि कैसे = vlookup का उपयोग करें। मैं एक्सेल में नया हूँ। वैसे भी, पहली तालिका 3 पत्र स्थिति कोड को एक संख्या में परिवर्तित करती है। दूसरी तालिका इस बात को देखती है कि संख्या क्या है, और फिर स्थिति कोड के लिए संबंधित सादे भाषा विवरण देता है। यह पूरी प्रणाली एक बहुत अधिक दृढ़ और संसाधन-गहन है, जिसकी आवश्यकता है। आप लोगों ने वास्तव में मेरी मदद की। धन्यवाद!
Nate Marek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.