質問するログイン新規登録

回答編集履歴

3

追記

2021/11/20 01:31

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  VBAでユーザ定義関数を作る場合
3
3
  ```Excel
4
- =matching($A$2:$A$9,$E$2:$E$5,ROW()-1) 
4
+ [D2] =matching($A$2:$A$9,$E$2:$E$5,ROW()-1) 
5
5
  ```
6
6
  ```vba
7
7
  Function matching(a, b, c)
@@ -22,4 +22,8 @@
22
22
  [D2] =IFERROR(INDEX($A:$A,H2),"")
23
23
  ```
24
24
 
25
- ---
25
+ ---
26
+ 最新版のExcelでスピル関数が使える場合
27
+ ```Excel
28
+ [D2] =IFERROR(UNIQUE(INDEX($A:$A,SORT(IF(COUNTIF($E:$E,$A$2:$A$9)=0,ROW($A$2:$A$9),NA)))),"")
29
+ ```

2

追記

2021/11/20 01:31

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -1,5 +1,7 @@
1
+ ---
2
+ VBAでユーザ定義関数を作る場合
1
3
  ```Excel
2
- =matching($A$2:$A$9,$E$2:$E$5,ROW()-1)
4
+ =matching($A$2:$A$9,$E$2:$E$5,ROW()-1) 
3
5
  ```
4
6
  ```vba
5
7
  Function matching(a, b, c)
@@ -10,4 +12,14 @@
10
12
  Next
11
13
  matching = ""
12
14
  End Function
13
- ```
15
+ ```
16
+
17
+ ---
18
+ ワーク列を用いる場合
19
+ ```Excel
20
+ [G2] =IF(AND(COUNTIF($E:$E,$A2)=0,COUNTIF(OFFSET($A:$A,0,0,ROW($A2)-1),$A2)=0),ROW(),"")
21
+ [H2] =MIN(OFFSET($G:$G,N(H1),0,COUNTA($A:$A)-N(H1)))
22
+ [D2] =IFERROR(INDEX($A:$A,H2),"")
23
+ ```
24
+
25
+ ---

1

修正

2021/11/20 01:05

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -2,12 +2,12 @@
2
2
  =matching($A$2:$A$9,$E$2:$E$5,ROW()-1)
3
3
  ```
4
4
  ```vba
5
-
6
5
  Function matching(a, b, c)
7
6
  Dim i
8
7
  For Each matching In a.Value
9
8
  If WorksheetFunction.CountIf(b, matching) = 0 Then i = i + 1
10
9
  If i = c Then Exit Function
11
10
  Next
11
+ matching = ""
12
12
  End Function
13
13
  ```