EXCEL知識:數組運算是什麼?

2021-01-16 CDA數據分析師

對於Excel中的「數組」,我在最開始接觸的時候覺得很難,理解不了它的原理。雖然會用數組寫出來,但是很多時候完全不理解為什麼要那樣寫。後來我看了一些資料,然後重複聽老師講課,最後慢慢理解了。到現在也有幾個月的時間沒有再看,但是最近做了一些有關數組方面的例題,發現很多以前無法理解的問題,現在豁然開朗。可能是過了一段時間再去看,忽然就理解了很多以前無法理解的問題。下面我主要介紹一些我自己理解的數組運算。

什麼是數組

在Excel中,數組可以理解為多個單元格的集合。單行數據,單列數據(一維數組),多行多列數據(二維數組),都可以是一個數組。如下圖所示:

上圖中數組1和數組2為一維數組,數組4和數組5為二維數組。

數組的輸入形式

數組是要用花括號(即{})表示的,例如前面提到的數組2是{1,2,3,4},數組4是{1,4,7;2,5,8;3,6,9},在數組4的表示中,7和8後面跟的是分號,表示從下個值開始就要換行了。在Excel中,使用到的符號都要是英文格式下的。

數組的計算方式

數組分為一維數組和二維數組,另外,數組也可以進行加減乘除四種常見的運算。數組是一個比較常見而且好用的工具,在處理一些問題時,使用數組會更加方便快捷。所以我想用一種比較簡單的方法結合例子讓大家清晰地理解數組的計算方式以及數組的運算原理。

在數組中會提到維度和元素的概念,維度就是我們所說的行方向或是列方向,而元素即是我們數組中的每一個值。比如說在上面所說的數組1,它的維度為列,元素是1、2、3、4,元素的個數是4。

兩個數組經過計算,結果即為取兩個數組的行數最大值,列數最大值。例如,上面的數組1與數組2相乘,結果即為4行4列。

使用數組計算時,要按Ctrl+shift+enter出結果,而不是只按一個回車鍵結束。

一個值與數組相乘

一個值與數組相乘時,所得結果為數組的行數與列數,例如下面的兩個例子。它的運算原理即為數值自動填充為與數組相同的行數與列數,然後再一一對應相乘即可。

一個值和數組相乘

一維數組與一維數組相乘

同一維度

同一緯度計算時,要保證行數是相同的,或者列數是相同的。

一維數組相乘(同一維度)

不同維度

不同維度計算時,所得結果為兩個數組的行數最大值,列數最大值,例如下面的數組 a (3行1列)和數組 c (1行5列),結果即為3行5列。它的運算原理即為數組a自動填充為5列,把數組c自動填充為3行,自動填充後數組a和數組c均為3行5列,然後一一對應相乘即可。

一維數組相乘(不同維度)

一維數組與二維數組相乘

如下圖所示,一維數組與二維數組相乘,最終得到的結果與原始二維數組一樣都是2行3列的數據。它的運算原理為一維數組自動填充為2行,然後一一對應相乘。下面的例子是行方向的一維數組與二維數組均有3列,只有這樣,計算結果才是正確的。如果是列方向的一維數組與二維數組進行運算,那就要保證一維數組的行數與二維數組的行數相同,只有這樣使用數組進行運算,結果才是正確的,不會出現錯誤。

二維數組與二維數組相乘

二維數組與二維數組相乘時,要保證兩個數組的行數與列數均相等,這樣運行出來的結果才是正確的。

二維數組與二維數組相乘

數組運算的總結

總的來說,要進行數組之間運算。遵循以下幾點:

1.用花括號表示;

2.分號表示從下個數據開始要換行;

3.所有符號都要用英文格式下的;

4.用Ctrl+shift+enter結束出結果;

5.運行結果為兩個數組的行數最大值,列數最大值;

6.修改數組公式。選擇任意一個數組公式單元格,按F2進入編輯模式,然後修改公式後,按Ctrl+Shift+Enter結束編輯,得出結果。

7.刪除數組公式。選擇任意一個數組公式單元格,按F2進入編輯模式,然後刪除公式後,按Ctrl+Shift+Enter結束編輯。

數組就是單元的集合或是一組數據的值集合。可以寫一個以數組為參數的公式,即數組公式,就能通過這個單一的公式,執行多個輸入的操作並產生多個結果——每個結果顯示在單元中。數組公式可以認為是Excel對公式和數組的一種擴充,換一句話說,是Excel公式在以數組為參數時的一種應用。與單值公式的不同之處在於它可以產生一個以上的結果。一個數組公式可以佔用一個或多個單元。

Excel中數組公式非常有用,尤其在不能使用工作表函數直接得到結果時,數組公式顯得特別重要,它可建立產生多值或對一組值而不是單個值進行操作的公式。輸入數組公式首先必須選擇用來存放結果的單元格區域(可以是一個單元格),在編輯欄輸入公式,然後按Ctrl+Shift+Enter組合鍵鎖定數組公式,Excel將在公式兩邊自動加上花括號「{}」。注意:不要自己鍵入花括號,否則,Excel認為輸入的是一個正文標籤。

數組公式與Excel公式的對比

在如下表格中,怎樣找出平均分高於90的少數民族。想要找出,可以用如下兩種方法,一種是普通公式求解,然後另一種用數組公式求解。

法一 普通方法:

平均分高於90的少數民族,這是平均分高於90和是少數民族同時滿足的情況下,才算是符合要求的。這樣的話就要用到and函數,and函數是所有條件同時滿足的情況下,才是true。然後再用一個if函數,結果為true的符合,為false的不符合。即公式如下:

結果如下所示:

一般方法

法二 數組公式法

這一題要得到的結果是一列值,所以在開始做之前要先選中E2:E11這一列單元格。平均分高於90的少數民族,這是平均分高於90和是少數民族同時滿足的情況下,才算是符合要求的。在數組公式中,and用 * 來代替,or用 + 來代替,所以這一題就要先用到 * ,然後再用一個if函數,結果為true的符合,為false的不符合。即公式如下:

然後不要按回車鍵出結果,要按組合鍵Ctrl+shift+enter 出結果。

所得結果如下:

法二數組公式

數組公式的應用

舉個簡單的例子:求出王姓女職工的工資之和

這一題要求的是工資之和,及最後的結果是一個值,所以在開始做之前不需要要選中一列單元格。王姓女職工工資之和,這是要找出王姓的,並且是女職工的工資,然後相加就可以。即公式如下:

然後不要按回車鍵出結果,要按組合鍵Ctrl+shift+enter 出結果。

所得結果如下:

例子結果

逐步理解如下:

第一步,先用left函數取出姓名列中的姓,然後取出=」王「的,所得為」王「的結果為true,不是為false;第二步,在性別列中,找出女性,所得為女的結果為true,不是為false;第三步,取出每個人的工資;第四步,把前三步所得結果相乘,得出的是滿足王姓女職工的工資,不滿足的即為0;第五步,把第四步得出的結果相加,得出的就是王姓女職工的工資之和。

例子逐步理解

本文章為原創:技術文章—邏輯。

相關焦點

  • Excel函數large、與數組在實際案例中的聯合運用
    圖一在之前的四篇文章當中,我們先後了解了數組的相關概念,數組之間的簡單加法、乘法運算,數組的乘積求和運算,一維水平數組和一維縱向數組之間的運算,單個數值與一維數組之間的運算,一維數組與二維數組之間的運算以及二維數組之間的運算
  • excel數組和函數sumproduct在乘積求和運算中的實際運用
    Excel在上一篇文章當中,已經為大家簡單介紹了一下數組的概念,並且依次介紹了一維數組和二維數組,其中一維數組包括一維水平數組和一維縱向數組,最後為大家介紹了一維數組和二維數組的生成方法以及二維數組的加法計算,並且將數組計算與數值計算進行了對比
  • Excel中的高科技:數組公式之數組常量
    Excel中的高科技:數組公式之數組常量大家好,我是@愛玩電腦,不會IT高科技,只講電腦小知識。上次給大家講了辦公軟體Excel數組公式的一些基礎知識,見:Excel中的高科技:數組公式。今天接著給大家講講辦公軟體Excel中的數組公式相關的數組常量的基礎知識。好了,我們開始進入主題吧。演示的作業系統為Windows10,辦公軟體為Excel2007。一、創建數組常量在Excel中,數組並不是必須存儲在單元格中,也可以存儲在內存中。
  • 了解什麼是數組,如何應用數組,只需1分鐘就可以秒變數組大神!
    Hi,大家好,有很多的小夥伴在私信提問能不能說說什麼是Excel數組,因為不了解什麼是數組,因此對數組公式感覺非常神秘和陌生。由於大部分人都對數組公式很陌生,我一直都在思考如何和大家介紹這個,讓所有人都可以學會的入門資料,鑑於此情此景,本文應景而生,希望本文對你的Excel的水平提高有幫助。同時希望大家交流有錯漏的請給予斧正。
  • Excel VBA 數組基礎知識,初學者不可不學的關鍵知識
    今天和大家要說的是VBA數組的基本知識點,等你學到後面就會知道,數組和字典搭配起來真的是事半功倍的啦!所以學習好數組的基本知識點也是必不可少的,基礎知識有了,才能有後面的應用。數組的基本概念數組其實是一組擁有相同元素的的組合。我們可以使用數組名稱和他在數組中的位置來指定某些特定的值。可以擁有很多的值,他們在數組內部是通過引索號進行區分的。
  • Excel VBA Array數組Transpose方法給列單元格區域賦值
    需要Excel原始碼的網友請點擊關注和轉發,然後直接私信回覆:原始碼因為一維數組是以行來分配地址,如果把一維數組的值給單元格列賦值,則需要用Transpose方法進行行列轉換。#005 Range("A1:E10").Value = Application.Transpose(arr) '給A1:E10單元格區域賦數組值#006 Range("A1:E10").Select
  • excel隨機數函數是什麼?excel怎樣生成隨機數?
    本篇將介紹excel隨機數函數是什麼?excel怎樣生成隨機數?有興趣的朋友可以了解一下!一、前言excel是我們工作中很常用的一款表格製作工具,它不僅僅只是用來製作表格,它還能對表格中的數據進行處理(比如:運算、排序、篩選等)。excel為數據的處理提供了很多函數,今天小編要介紹的是excel隨機數函數,以及隨機數函數的用法,希望對大家有所幫助!
  • 數組公式是什麼?怎麼用?終於有人說清楚了
    要想批量運算,數組公式必須學。百度一下何為數組公式,「數組是單元的集合$#%@%$……」概念、分類、用法統統看不懂,今天就用最接地氣的方法聊聊數組。1.愛上數組公式相信很多人想學習數組公式,都會去問度娘「數組公式」是什麼。結果看了半天也不知所以然。現在把那些拗口的概念統統趕出腦海,以便重新認識數組公式。
  • 基於一維數組動態處理矩陣運算
    [代碼]基於一維數組動態處理矩陣運算     跳至 [1] [全屏預覽]
  • 細說NumPy數組的四種乘法,帶你走進向量運算的奇妙世界
    為了在寫作和閱讀時保持清晰的邏輯和清醒的頭腦,本文僅對四種最常見的數組乘法給出詳細說明,並用一道數學題來演示向量點乘和叉乘的用法。1. 星乘(*)先聲明一下:星乘這個說法,是我自己創造的,因為我實在不知道數組的這種乘法有沒有其他高大上的名字,只好用運算符來表示了。所謂數組星乘,就是數組的對應元素相乘,這也是初學NumPy的同學最早接觸到的數組乘法。
  • Excel函數公式大全之利用MMULT函數計算兩個數組矩陣的乘積
    今天我們依舊要學習的是Excel函數中的數學函數MMULT函數,計算兩個數組的矩陣乘積。今天這個例子也是非常的簡單,就是利用MMULT函數計算兩個不等數組的矩陣乘積。下面我們一起來認識一下MMULT函數,了解MMULT函數的功能、語法及參數解釋。
  • Excel VBA函數篇-3.19大數據時代必備查找技能 萬條數據能奈我何
    當然不可能的啦,excel畢竟還是現在的主流辦公軟體,不管技術上面發展的多麼的高級,畢竟全民都是程式設計師的時代還是非常的遙遠的,並且你也不可能要求領導一定要去學習各種大數據處理知識吧,現在領導更多還是依賴於excel,數據也是集中展示在excel中的,那麼在大數據的衝擊下,excel能夠提升處理速度呢?
  • excel函數公式:加與乘的混合運算 你會了嗎?
    在上一篇文章中介紹了,使用加法運算代替or函數,使用乘法運算代替and函數,在某些情況下操作會更加的簡單,不需要添加輔助列,直接一步到位就可以計算。其實加法和乘法還能混合的運算,功能就更加強大了,今天小編介紹的這個案例就是 "加" 與 "乘" 的混合運算。在下面的表格中,已知 「憑證號數」「部門」「科目劃分」「發生額」 這四項數據 。
  • EXCEL中數組的應用專題之一:數組公式是如何輸入的
    在EXCEL的應用中,數組是經常用到的一個知識點,在實際工作中,巧妙的利用數組可以在實際的工作中可以得心應手,配合必要的函數和公式,可以讓你的工作變得簡單高效。數組公式就是可以同時進行多重計算並返回一種或多種結果的公式。比一般的公式要複雜些,理解上要和普通的公式加以區別。必要時要藉助VBA的思想來來考慮問題,因為數組公式的應用在很多的時候和VBA是一樣的。
  • [代碼全屏查看]-基於一維數組動態處理矩陣運算
    [代碼] 基於一維數組動態處理矩陣運算 跳至 [1] [2] [3]
  • 如何獲取numpy數組的真實地址?如何與ctypes數組共享內存?
    那麼,如何使用ctypes庫定義一個與numpy共享內存空間的數組變量呢?仍以上面的例子,定義一個uint8類型的數組b,與a數組共享內存區域,可使用下面的代碼:b = (c_uint8*len(a)).from_address(a.
  • 記錄集賦值給數組後,利用轉置函數處理多維數組的方法
    大家好,今日繼續講解VBA資料庫解決方案,今日講解的是第76講,內容是:記錄集賦值給數組後,利用轉置函數處理多維數組的方法。我在第一冊的第43講中,我講了將記錄集存入數組的方案,並通過一個Index函數在工作表中恢復數組數據的方法。今日講的是利用轉置函數來完成同樣的功能。
  • excel標準差函數是什麼?怎麼計算?
    本篇將介紹excel標準差函數是什麼?怎麼計算?有興趣的朋友可以了解一下!一、前言excel是我們生活中很常用的表格製作工具,它不僅只是用來製作表格,還可以處理(如:運算、排序、篩選等)表格中的數據。今天小編要講的是excel標準差函數的用法,標準差是方差的算術平方根,它能反映一組數據的離散程度。
  • NumPy數組中的廣播機制及結構化數組
    廣播機制廣播機制這一操作實現了對兩個或以上數組進行運算或用函數處理,即使這些數組形狀並不完全相同。並不是所有的維度都要彼此兼容才符合廣播機制的要求,但它們必須要滿足一定的條件。前面講過,在NumPy中,如何通過用表示數組各個維度長度的元素(也就是數組的型)把數組轉換成多維數組。因此,若兩個數組的各維度兼容,也就是兩個數組的每一維等長,或其中一個數組為一維,那麼廣播機制就適用。如果這兩個條件都不能滿足,NumPy就會拋出異常,說這兩個數組不兼容。執行完代碼之後,我們就得到了兩個數組:4x4的數組以及一個一行四列的數組。
  • excel查重技巧:如何用組合函數快速統計重複數據(下)
    這個公式是數組公式,完成輸入後記得按CTRL+SHIFT+回車鍵,公式兩邊會自動出現大括號。公式=COUNT(1/(MATCH(B2:B23,B2:B23,0)=ROW(1:22)))用到了三個函數,COUNT、MATCH和ROW,不管操作還是原理,這個公式都要難於第一個公式。那麼為什麼還要介紹這個公式呢?