LARGE
の数値形式を維持するために1を掛けます。
第二ヘルパーカラム:
これは、配列数式であるとはCtrl + を用いて入力する必要があります、まだ数式バーにしながら、Shiftキー + はを入力します。
この1のための式は次のとおりです。この数式は、配列数式として何 =LARGE(IF(Company="A",Helper),ROW(1:1))
はLARGE
が使用できるIF
声明に基づいて結果のリストを生成しています。むしろ列全体が最小に最大位にランクされているよりも、私たちは今の会社「」そうなどを持つ行を選び出すことができます。
=LARGE({20000;20001;20002;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;15000;14000;30000;FALSE;FALSE;FALSE;FALSE},ROW(1:1))
LARGE
のみFALSESはどこの列Aを生成するように、数値で動作します一致しません "A"は無視されます。ここでヘルパー列を使用してユニークな値を排除し、上位5には影響しないことに注目してください。
ROW(1:1)
この配列の次の結果を生成するために数式をドラッグすると自動的に更新されます。
トップ5アレイ
のための主要な式はやはりこれがそうまだ数式バーにある間を入力Ctrlキー + シフト + を使用して入力する必要があります配列式であります。私が代わりに2 IF
年代を入れ子にしているので、ちょうど私のために動作しませんIF(AND())
いくつかの未知の理由のための配列数式で
=INDEX(Database,SMALL(IF(Company="A",IF(Helper=$O3,ROW(Company))),1)-1,COLUMN(A:A))
。
最初の列が "A"と一致するかどうか、そして最後の列が2番目の数式の結果と一致するかどうかを再度確認していることに注目してください。何が起こるかは、これらの条件の両方が配列内で一致する場合です(両方とも同じ行のTRUEを生成するため)。行番号が返されたかったのです。
IF({TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE},IF({FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE},{2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}))
それは私が知っている混乱のように見えますが、両方TRUEsを揃える位置は、結果として、私たちの行16を与えます。
{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;16;FALSE;FALSE;FALSE;FALSE}
私は、我々は、ヘッダーを考慮していないとして、私が行のINDEX
式で使用する最初の最小数を取得し、1を控除するSMALL
を使用し、このための可能つの一致が存在し得ることを知っているようにINDEX式では、実際には15番目の結果が必要です。
また、COLUMN(A:A)
は、数式をドラッグすると自動的に更新されるため、列番号が返されるために使用されています。あなたが知っていれば
あなたは私の説明に苦労し、私はより多くの明快さを提供したい、手を差し伸べること自由に感じ、私はより詳細に
これらの式は正しく動作しません。 'Amount 'の値が一意でない場合(例えば、あなたは「金額」に3倍の「2000」を持つ)。このジョブにピボット・テーブルを使用することを検討することもできます。 –
コードは一意のコードですか?それはちょっと簡単になるはずです(ShawnとChrisのコードが同じであるように見えますか?)。 –
これはシンプルだと思っていましたが、実際には頭がおかしくなりました。私は配列の式から罰金を引き出す金額を得ることができますが、複数の一致する金額があるので、インデックスの行番号を取得するのは面倒です。ここでヘルパーカラムを使用していますか?配列の式として[Ctrl + Shift + Enter]を押しても大丈夫ですが、私はIFを使用して 'LARGE'配列を作成します(例: –