एक सेल को कई सीमांकित लुकअप सोर्स मानों को अनुमति दें जिसमें गैर-लुकअप मान भी हों


1

एक अलग तालिका में कई मानों को देखें जिसमें कई सीमांकित मान वाले सेल दिए गए हैं

कृपया पहले दिए गए प्रश्न को देखने के लिए लिंक खोलें।

उस संदर्भ को देखते हुए, क्या कोई ऐसा फॉर्मूला है जो Eलुकअप करने के बजाय कॉलम में स्थित टेक्स्ट वैल्यू को सीधे लौटा सकता है ?

यदि कॉलम Eमें संख्याओं और पाठ मानों का मिश्रण होता है, तो क्या सूत्र नंबर से जुड़े नाम को लुकअप और टेक्स्ट मान के माध्यम से सीधे लौटा सकता है?

उदाहरण:

E3इसमें 2;3;JohnnyF3सूत्र परिणाम होता हैB;C;Johnny

यहाँ छवि विवरण दर्ज करें

जवाबों:


2

नया फॉर्मूला मूल एक की तुलना में थोड़ा लंबा है, क्योंकि MID(…)फ़ंक्शन को कॉपी करना और दूसरे दो बार उपयोग करना है।

वर्कशीट स्क्रीनशॉट

निम्न कॉलम में कॉपी और पेस्ट / भरने के लिए निम्न फॉर्मूला ( Ctrl+ Shift+ Enter) दर्ज F2करें:

{=
  TEXTJOIN(
  ";",
  TRUE,
  IF(
    ISNUMBER(
      --MID(
        SUBSTITUTE(E2,";",REPT(" ",99)),
        99*(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)
        +(1=ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))),
        99
      )
    ),
    INDEX(
      (B:B),
      N(IF(1,
        MATCH(
          --MID(
            SUBSTITUTE(E2,";",REPT(" ",99)),
            99*(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)
            +(1=ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))),
            99
          ),
          (A:A),
          0
        )
      ))
    ),
    TRIM(
      MID(
        SUBSTITUTE(E2,";",REPT(" ",99)),
        99*(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)
        +(1=ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))),
        99
      )
    )
  )
)}

ध्यान दें कि सूत्र में परिवर्तन केवल एक जोड़ा IF()कार्य है जो यह जांचता है कि निकाला गया मूल्य एक संख्या या पाठ है, और इसे अलग तरीके से संसाधित करता है। पाठ मान को पहले की तरह लुकअप करने के लिए उपयोग किया जाता है, जबकि संख्या मान लौटाया जाता है।



संशोधित सरल एक्सेल 2016 (केवल विंडोज) सूत्र है:

{=TEXTJOIN(";",TRUE,IF(ISNUMBER(--FILTERXML("<a><b>" & SUBSTITUTE(E2, ";", "</b><b>") & "</b></a>", "//b")),INDEX(B:B,N(IF(1,MATCH(--FILTERXML("<a><b>" & SUBSTITUTE(E2, ";", "</b><b>") & "</b></a>", "//b"),A:A,0)))),FILTERXML("<a><b>" & SUBSTITUTE(E2, ";", "</b><b>") & "</b></a>", "//b")))}

नायक। खुशी से काम करता है।
लुसियो

अब जब कि तुम पहुँच गए हैं @Lucio 15+ प्रतिष्ठा है, साथ ही इस सवाल का जवाब वोट दें करने के लिए ;-) भूल नहीं है (और यह सब काम कर रहे अपने पिछले सवाल और भविष्य वालों के लिए / उपयोगी जवाब के साथ-साथ।)
robinCTS
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.