私は以下のようなExcelデータを持っています
JID Val
1001 22
1030 6
1031 14
1041 8
1001 3
2344 8
1030 8
2344 6
1041 8
式を使用して以下のような一意のJID値を取得するにはどうすればよいですか?
UJID
1001
1030
1031
1041
2344
重複削除機能を使用できます
列範囲を選択します
Data
タブに移動
Remove Duplicates
をクリックします
以下は、テーブルから一意のアイテムのリストを取得するソリューションです
このソリューションには2つの部分があります。
パート1)ユニークカウント
{= SUM(IF(FREQUENCY(IF($ A $ 2:$ A $ 10 <> ""、MATCH($ A $ 2:$ A $ 10、$ A $ 2:$ A $ 10,0))、ROW($ A $ 2: $ A $ 10)-ROW($ A $ 2)+1)、1))}
これにより、データテーブル内の一意のアイテムの数がカウントされ、空白は無視されます
*これは配列式であり、使用するには「Ctrl」+「Shift」+「Enter」を使用する必要があります
パート2)一意のリスト
この式は、テーブル内の一意のアイテムのリストを提供します
= {IF(ROWS($ E $ 5:E5)> $ E $ 2、 ""、INDEX($ A $ 2:$ A $ 10、SMALL(IF(FREQUENCY(IF($ A $ 2:$ A $ 10 <> ""、 MATCH($ A $ 2:$ A $ 10、$ A $ 2:$ A $ 10,0))、ROW($ A $ 2:$ A $ 10)-ROW($ A $ 2)+1)、ROW($ A $ 2:$ A $ 10)-ROW($ A $ 2)+1)、ROWS($ E $ 5:E5))))}
繰り返しますが、これは配列数式です。その後、この式を下にドラッグして、すべての一意のアイテムを取得できます。
この式は動的な式です。つまり、現在のデータ範囲を超えてデータ範囲を設定でき、新しい値を入力するとリストが更新されます。
*これをさらに理解するために見るべき素晴らしいビデオです
配列関数や組み込み関数を使用しない、よりエレガントな回避策を見つけたと思います。
1st 列(ID):
_this is the array from we'd like to select distinct values
_
2nd 列(基準):これが最初に発生するかどうかを確認します=IF((ROW()-1)=MATCH(A2,$A$2:$A$500,0),1,0)
3rd 列(累積):=SUM($B$2:B2)
4番目 列(カウント):
_this is constant 1
_
5番目 列(一意のID):=OFFSET($A$2,MATCH(ROW()-1,$C$2:$C$501,0)-1,)
6番目 列(カウント):=SUMIF(A2:A21,F2,D2:D21)