2012-04-12 11 views
11

में लॉजिकल या किसी सरणी को कैसे लागू करें I Excel को दो एरे ऑरिंग करके मुझे सरणी बनाने की कोशिश कर रहा हूं। ए 3 होना 7, 8, -3 और बी 1: उदाहरण के लिए, दो सरणियों A1 जाने, बी 3 होना 4, -8 -8एक्सेल

यह काफी सरल होना चाहिए, लेकिन यह है कि

OR (A1:A3 > 0 ; B1:B3 > 0) 

रिटर्न प्रकट होता है सरणी के बजाय सही मैं उम्मीद कर रहा हूँ (सही, सही, गलत)।

बेशक मैं

(((A1:A3 > 0)*1 + (B1:B3 > 0)*1) >= 1) *1 

लेकिन जो की तरह एक गंदा चाल का उपयोग करने वाले को बनाए रखना चाहते हैं सकता है?

इसके अलावा, शायद "सीएसई (Ctrl-Shift-Enter) फॉर्मूला" (http://www.mrexcel.com/articles/CSE-array-formulas-excel.php) के आसपास खोजने के लिए कुछ है लेकिन यह वास्तव में है काले जादू की तरह दिखता है।

क्या मुझे कुछ आसान याद आया?

इसके बारे में उत्सुक लोगों के लिए, मैं जिस वास्तविक सूत्र का निर्माण करने की कोशिश कर रहा हूं वह निश्चित रूप से थोड़ा अधिक जटिल है। यह सभी पंक्तियों ("स्थिति == ए या स्थिति == बी) और दिनांक = कुछ सेल" (SUMPRODUCT के माध्यम से) गिनने की कोशिश कर रहा है। या मैं देख रहा हूं कि मेरे sumproduct की केवल एक सरणी है और कोशिकाओं में परिभाषित नहीं है (यह बहुत आसान होगा)

उत्तर

13

आप आम तौर पर OR या AND "सरणी सूत्रों" में उपयोग नहीं कर सकते हैं, क्योंकि आपके पास है यहां खोजा गया, वे केवल एक ही परिणाम लौटाते हैं (और केवल तभी सत्य है जब सभी स्थितियां सत्य हैं, या सही है कि कोई भी सत्य है, जैसा कि आप उम्मीद करेंगे, इसलिए आपके उदाहरण में आपको कम से कम एक तक सत्य मिलेगा 6 मान सकारात्मक है)।

मैं, अपने सुझाव के लिए कुछ इसी तरह का उपयोग करेंगे की या प्रभावी रूप से जगह में का उपयोग कर +, हालांकि आप पहले दो * 1 क्योंकि + सह erces की जरूरत नहीं है, तो यह पर्याप्त होगा

=((A1:A3 > 0) + (B1:B3 > 0) >0) *1

हालांकि अगर आप किसी एकल स्तंभ जो एक बात या किसी अन्य के तो हो सकता है कि पारस्परिक रूप से विशिष्ट, निश्चित रूप से, तो शायद यह सिर्फ

=(A1:A3="A")+(A1:A3="B")

+0

+1 अच्छी तरह से कवर बैरी – brettdj

+0

स्पष्टीकरण के लिए धन्यवाद। फिर भी एक "क्लीनर" सूत्र की उम्मीद है। – PPC

+0

शायद "क्लीनर" की आपकी परिभाषा पर निर्भर करता है .... लेकिन मुझे संदेह है कि कोई और सुरुचिपूर्ण तरीका नहीं है ..... शायद आईएफ फ़ंक्शंस का उपयोग करना अधिक पारदर्शी है, उदा। '= IF (ए 1: ए 3> 0,1, आईएफ (बी 1: बी 3> 0,1,0), 0)' ...... लेकिन आपको "सरणी डालना" होगा, यहां तक ​​कि SUMPRODUCT –

3

एक साफ और relativel की जरूरत है इस के आसपास y आसान तरीका नेस्ट का उपयोग करने के लिए है अगर बयान:

IF(A1:A3 > 0, TRUE, IF(B1:B3 > 0, TRUE, FALSE)) 

यह TRUE देता ए में संख्या 0 से अधिक है, तो, अगर नहीं, TRUE देता बी में संख्या 0 से अधिक है, लेकिन अन्यथा गलत लौटाता है।

मूल रूप से आप केवल अपना स्वयं का कार्य लिख रहे हैं। आप और साथ ही ऐसा कर सकते हैं। जब तक आपके पास सशर्त और न हो, तब तक आप उनमें से बाकी सब कुछ कर सकते हैं।

2

मैंने तालिका के भीतर कुछ डेटा के औसत के लिए एक ऐरे सूत्र बनाया था। उदाहरण के लिए, डेटा के भीतर समूह एक्स, वाई, और जेड थे। मैं दो प्रकार के डेटा, एक्स और वाई के लिए औसत प्राप्त करना चाहता था, इसलिए सरणी के भीतर या कथन का उपयोग नहीं कर सका।

मैंने जो किया वह मूल डेटा सेट में एक नया कॉलम बना था।यह कॉलम ए = एक्स या ए = वाई था, "1" प्रदर्शित करें, अगर प्रदर्शित नहीं होता "0"

मैंने फिर नए कॉलम के आधार पर ऐरे फॉर्मूला लिखा, क्योंकि सभी डेटा समूहों को इस कॉलम में पुन: वर्गीकृत किया गया था या तो 1 या 0 के रूप में, अब मुझे सरणी के भीतर या कथन की आवश्यकता नहीं है।

यह मेरे लिए काम करता है, और मैं आसानी से इस नए आईएफ स्टेटमेंट को गड़बड़ किए बिना मूल डेटा में कॉपी और पेस्ट कर सकता हूं ताकि अपडेट करना आसान हो।