<code id="elhml"><ol id="elhml"><td id="elhml"></td></ol></code><code id="elhml"><ol id="elhml"></ol></code>

    1. 分享

      【煙花原創】VBA零基礎之第135篇 字典(十二)

      2022-06-22  xfzxlgs   |  轉藏
         
      四、實戰
      5.求兩個區域(數組)的交集,差集,并集,補集(上)

      假設現在有兩個數組,定義如下:
      數組A=array(“B”,1)
      數組B=array(“A”,”B”,”C”)

      交集:數組
      A與數組B的都有的元素的集合稱為交集,這里數組A與數組B的交集就是(“B”)
      并集:數組A與數組B的元素的集合,這里數組A與數組B的并集就是(“A”,”B”,”C”,”D”,1)
      差集:數組A中有但數組B沒有的元素的集合,這里數組A與數組B的差集是是(1)
      補集:數組A中沒有但數組B中有的元素的集合,這里數組A與數組B的補集是(“A”,”C”)
      這里幾個概念我也是百度上來找來,數學基礎好的人可能容易理解。
      幾個集合我會這么理解:
      交集:AB也有的。
      并集:A有的加上B有的。
      差集:AB沒有。
      補集:A沒有B有。
      差集與補集基本上是差不多,只是參照目標相反而已。
      思路:
      交集:先把數組A的元素放入字典1(去重復),然后再遍歷數組B,檢測數組B的元素在字典1中是否存在,存在的話就放入字典2。數組B遍歷完成后,字典2中存放的就是AB共有的元素。
      并集:先循環數組A,不重復值放入字典1,再循環數組B,還是放入字典1,這樣兩個數組都去除重復后放入字典1中。
      差集:先循環數組B,放入字典1中(去重復)。然后循環處理數組A,檢測元素是否在字典1中,如果不存在,放入字典2中,這樣就把數組A有但數組B沒有的都保存在字典2中。
      補集:先循環數組A,放入字典1中(去重復)。然后循環處理數組B,檢測元素是否在字典1中,如果不存在,放入字典2中,這樣就把數組B有但數組A沒有的都保存在字典2中。
      數據源:
                                    
      實際數據一共有10000行,這里截圖只是部分而已。


      代碼:
      示例1:交集,求產品12都有的產品型號


      示例
      2:并集,合并產品12(去除重復的)
      這里直接用一個數組來存儲2列產品內容,沒有用2個數組來分別存儲產品12的型號。

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
        轉藏 全屏 打印 分享 獻花(0

        0條評論

        發表

        請遵守用戶 評論公約

        類似文章 更多

        欲求不满の佐々木あきが?