Board logo

標題: 取三區的重複值 [打印本頁]

作者: papaya    時間: 2020-3-23 17:17     標題: 取三區的重複值

測試檔 : [attach]31810[/attach]
將$B7:$K8和$B10:$K11和$B13:$K14三個區域的重複值,
由小而大從B17往右填入。

請問 : B17的2003版函數公式要怎麼編寫 ?
謝謝 !
作者: hcm19522    時間: 2020-3-25 12:30

https://blog.xuite.net/hcm19522/twblog/589003673
作者: 准提部林    時間: 2020-3-25 12:56

若各區自己沒有重覆值,
陣列公式:
=TEXT(SMALL(--TEXT(SUMIF($B13:$K14,SUMIF($B7:$K8,$B10:$K11)),"0;;99"),COLUMN(A1)),"[<99]0;;")
右拉~~
作者: papaya    時間: 2020-3-25 13:09

回復 2# hcm19522
回復 3# 准提部林
感謝二位大大的幫忙和解答!
不知能否不用TEXT,因為文字形態,無法格式設定。
--TEXT(.........),是可以成為數值的形態,但多拉的儲存格(因為符合條件的數值個數不定)會顯示"#VALUE"
謝謝二位大大^^
作者: 准提部林    時間: 2020-3-25 14:23

=IF(COLUMN(A1)>SUM(N(COUNTIF($B7:$K14,ROW(1:39))=3)),"",SMALL(IF(COUNTIF($B7:$K14,ROW(1:39))=3,ROW(1:39)),COLUMN(A1)))
作者: papaya    時間: 2020-3-25 14:36

回復 5# 准提部林
版主大大 : 您好!
謝謝您的耐心幫忙!
OK了~感恩^^
作者: Andy2483    時間: 2023-12-14 09:32

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習方案如下,請各位前輩指教
執行前:
[attach]37126[/attach]

執行結果:
[attach]37127[/attach]


Option Explicit
Sub TEST()
Dim Brr, Crr(1 To 100), V&, Z, A, i&, N%, xA As Range
'↑宣告變數,Crr變數是一維陣列,索引號1~100
Set Z = CreateObject("Scripting.Dictionary")
'↑令Z變數是 字典
Set xA = [B7:K8]
'↑令xA變數是物件儲存格 [B7:K8]
For i = 0 To 2
'↑設順迴圈!令i從0 到2
   Brr = xA.Offset(i * 3)
   '↑令Brr變數是 帶入迴圈區域儲存格值的二維陣列
   For Each A In Brr
   '↑設逐項迴圈!令A變數是Brr陣列裡的陣列值
      If Trim(A) = "" Then GoTo A01 Else V = Val(A)
      '↑如果A變數去除頭尾空白字元後是 空字元!就跳到標示A01位置繼續執行,
      '否則就令V變數是 A變數轉成的數值

      If Z(V) = i Then Z(V) = i + 1
      '↑如果以V變數查Z字典回傳item值是同 i變數,就令其item值+1
      If Z(V) = 3 Then N = N + 1: Crr(N) = V: Z(V) = 0
      '↑如果以V變數查Z字典回傳item值是3 ,就令N變數累加1,
      '令第N變數個Crr陣列值是 變數,令Z字典裡V變數key對應的item值是0

A01: Next
Next
With [B18].Resize(, N)
'↑以下是關於[B18]儲存格擴展向右N變數個儲存格區域的程序
   .Value = Crr
   '↑令該區域儲存格值以Crr陣列值帶入
   .Sort KEY1:=.Item(1), Order1:=1, Header:=2, Orientation:=2
   '↑令該區域做無標題的橫向順排序
End With
End Sub
作者: hcm19522    時間: 2023-12-14 15:16

(輸入編號12138) google網址:https://hcm19522.blogspot.com/




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)