0

CompanyCode と EmployeeLevel の 2 つの列で構成される Table5 という名前の Excel テーブルがあります。私の質問は、EmployeeLevel 列の一意の値を取得したいということです。レコードの長さは不明であることに注意してください。Table5[EmployeeLevel] を範囲として使用して、Table5 のすべてのレコードを含めています。あなたが提供できる式はありますか?ActiveX オブジェクトを使用して各レコードをループできません。私はExcelの式でそれをしなければなりません。私が得た解決策は、レコードの長さが固定されている場合にのみ使用できます。しかし、私が取り組んでいるこのレコードは動的テーブルです。

前もって感謝します :)

4

2 に答える 2

0

データが次のようになっていると仮定します。

表5

これを行う最も簡単な方法は、Table5 に基づいてピボット テーブルを作成することです。行に、EmployeeLevel を追加します。データに、EmployeeLevel を追加します。

ここに画像の説明を入力

データ集計をCount合計ではなく変更します。このようなものが得られます。

ここに画像の説明を入力

Table5 に新しいアイテムを追加するときは、ピボットテーブルを更新するだけです (ピボットテーブルを右クリックし、[更新] をクリックします)。

数式を使用する必要がある場合は、次の回避策があります。

列 C に、次の数式を追加します (以下のデータが与えられたら、適合するように調整します)。

=--(COUNTIF($B$1:$B2,$B2)=1)

これ1により、テーブル内のすべての一意の値に対して が返されます。

シートのどこかに (私の場合は F2)、一意の値をカウントする次の式を追加しました。

=SUM(Table5[Unique Value])

私のサンプルデータでは、14 あります。

次に、次の式を F3 から 20 行下にコピーしました (一意の値がそれほど多くないため、20 を使用しました。テーブルは可変であると言うので、予想される一意の値の量よりも多い行数を選択してください)。未来):

{=IF(ROW(A1)<=F$2,SMALL(IF(Table5[Unique Value]=1,Table5[EmployeeLevel]),ROW(A1)),"")}

注 -- 中括弧は配列数式です -- 手で追加しないでください。中括弧なしで数式を入力し、ctrl+ shift+で確認してくださいenter

これにより、一意の値が昇順になります。

ここに画像の説明を入力

于 2013-08-23T04:15:24.723 に答える
0

EmployeeLevelソートされて いれば、テーブル自体からカウントを達成できる場合があります。

SO18393935 の例

于 2013-08-23T05:16:39.503 に答える