चयनित पंक्तियों के क्रम को उल्टा कैसे करें?


33

क्या चयनित पंक्तियों के क्रम को उलटने का एक आसान तरीका है ? (या सभी पंक्तियों के बारे में कैसे , अगर यह आसान है।)

विशेष रूप से, इस मामले में, कोई ऐसा स्तंभ नहीं है जिसका उपयोग उन्हें सही क्रम में प्राप्त करने के लिए छंटाई के लिए किया जा सके। तो, एक मनमाना क्रम में पंक्तियों का एक गुच्छा दिया जाता है, क्या उस आदेश को उल्टा करना संभव है?

उदहारण के लिए...

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

... इन 5 पंक्तियों को उलटने के बाद, "Waitrose 756" को पहले आना चाहिए और "Moot" को अंतिम।


"ऐसा कोई स्तंभ नहीं है जिसे सॉर्ट करने के लिए उपयोग किया जा सके" क्यों न केवल एक कॉलम को आरोही मानों (1, 2, 3, ...) के साथ जोड़ा जाए, उस स्तंभ पर अवरोही को सॉर्ट करें, फिर निकालें?
पैट्रिक

यह एक बहुत ही सामान्य अनुरोध है, क्योंकि इतने सारे लोग प्रत्येक प्रविष्टि के लिए एक पंक्ति के साथ एक स्प्रेडशीट शुरू करते हैं, तल पर नई पंक्तियों को जोड़ते हैं, और फिर 100 पंक्तियों के बाद एहसास होता है कि वे शीर्ष पर पंक्तियों को जोड़ने के लिए इसे उलटना चाहते हैं, क्योंकि यह रास्ता लेता है हर बार जब आप डेटा का एक नया टुकड़ा जोड़ना चाहते हैं, तो सबसे अधिक गैर-रिक्त पंक्ति खोजने के लिए बहुत अधिक समय। दुर्भाग्य से AFAIK वहाँ ऐसा करने का कोई तरीका नहीं है, न कि यदि आप चाहते हैं कि आपके सूत्र और स्वरूपण उलटे होने के बाद भी बने रहें।
फिल गोएट्ज़

जवाबों:


24

चयनित सीमा के क्रम को उलटने के लिए (जैसा कि किसी विशिष्ट स्तंभ द्वारा छंटाई के विपरीत), आप निम्नलिखित स्क्रिप्ट का उपयोग कर सकते हैं:

function reverseOrder()
{
  var range = SpreadsheetApp.getActiveRange();
  var values = range.getValues();
  range.setValues(values.reverse());
}

इस ऑनऑन स्क्रिप्ट को जोड़ने से अतिरिक्त नामक एक मेनू आइटम बन जाएगा , जिसमें रिवर्स नामक आइटम होगा :

function onOpen ()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menu = [{name: "Reverse", functionName: "reverseOrder"}];
  ss.addMenu("Extra", menu);
}

3
धन्यवाद। मुझे यह पता लगाने में एक पल लगा कि इन्हें कैसे जोड़ा जाए ताकि मेनू आइटम दिखाई दे (उपकरण -> स्क्रिप्ट प्रबंधक ...), लेकिन एक बार जब मुझे यह मिल गया, तो यह काम करता है!
जोनीक

@ अदमल, बिना स्क्रिप्टिंग के हम यह कैसे कर सकते हैं?
पचेरियर

1
@AdamL: मूविंग टेक्स्ट के लिए बढ़िया, लेकिन यह सेल बैकग्राउंड कलर इत्यादि को ले जाने में विफल रहता है। इसे कैसे परफॉर्म करने के लिए स्क्रिप्ट को बढ़ाया जा सकता है?
ग्रबेर

1
@ स्पेसर: असाधारण रूप से देर से उत्तर के लिए माफी, लेकिन एक समाधान एक हेल्पर कॉलम के साथ आरोही क्रम में संख्याओं के साथ होगा, और उस कॉलम के अवरोही सीमा को श्रेणीबद्ध करें (और फिर आप सहायक मूल्यों को हटा सकते हैं)।
एडमएल

@ ग्लोब: पहला विकल्प स्क्रिप्ट के लिए एक समय में एक सेल को कॉपी / पेस्ट करना होगा; दूसरा विकल्प यह होगा कि सीमा के लिए सभी आवश्यक प्रारूप प्राप्त करें, उन्हें भी उल्टा कर दें और उन्हें सेट करें। मैं कहता हूं कि पहला विकल्प छोटी रेंज के लिए ठीक हो सकता है, लेकिन बड़ी रेंज के लिए भयानक है; दूसरा विकल्प सभी उपयोग मामलों को कवर करने के लिए सबसे अच्छा शर्त होगा।
एडमएल

21

लिपियों का उपयोग किए बिना इसे कैसे किया जाए, इसका उदाहरण यहां दिया गया है - कृपया ध्यान दें कि यह विधि मानती है कि आपका डेटा केवल डेटा है - यह अजीब चीजें कर सकता है यदि आपके पास एक ही रेंज में अन्य कोशिकाओं को संदर्भित करने वाले सूत्र हैं:

  1. एक नया कॉलम डालें (उदाहरण के लिए, हम इसे कॉलम A कहेंगे)।
  2. A1 में, मान [1] डालें। (आप A10 या A50 पर शुरू कर सकते हैं यदि आप केवल एक श्रेणी को क्रमबद्ध करना चाहते हैं)
  3. A2 में, सूत्र [= A1 + 1] डालें। (चरण 2 में A1 पर शुरू न होने पर समायोजित करें)
  4. आप जिस डेटा को रिवर्स करना चाहते हैं, उसके नीचे A2 में सूत्र को बढ़ाएं।

    अब आप जो कुछ छांट रहे हैं, उसमें सभी पंक्तियों की संख्या 1 से लेकर संख्या तक होनी चाहिए।

  5. आपके द्वारा सेट की गई रेंज में सभी पंक्तियों का चयन करें।
  6. डेटा मेनू पर क्लिक करें, और "कॉलम ए, जेड -> ए" के आधार पर क्रमबद्ध करें चुनें।

आपका डेटा अब उलटा क्रम होना चाहिए। जिस तरह से हम नंबरिंग फॉर्मूला सेट करते हैं, उसके कारण नंबर रीसेट हो जाएगा, और फिर भी शीर्ष पर 1 से शुरू होगा ... लेकिन अन्य कॉलम में वास्तविक डेटा सभी को उलट देना चाहिए।


2
यह इतना आसान है कि मुझे इसके बारे में न सोचने के लिए अपना माथा पीटना पड़ा। शानदार जवाब। +1।
ग्रोग्यओटर

2
चरण 2-4 के लिए, आपको फॉर्मूले की आवश्यकता नहीं है। बस ए 1 में 1 दर्ज करें, ए 2 में 2, दोनों का चयन करें और जहां तक ​​आवश्यक हो, नीचे खींचें।
पैट्रिक

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