配列関数は最初の値のみを返す


0

私はExcelで配列関数を使用しようとしている、式はフィルタリングされたテーブルの値を返すことです。 これが私の式です。

{= INDEX(A:A、MIN(IF(小計(3、OFFSET(A2、行(A2:A31) - 行(A2)、0))、行(A2:A31)))))}}

問題は、返された値が最初の結果にすぎないことです。つまり、フィルタの後で数式をドラッグしたときに最初のセルがA9の場合、すべてのセルでA9値のみが返されます。これは配列関数を使ってみる最初の試みなので、何をチェックすればよいのかわからないのですが、式自体は正しいと思いますが、これが私の最初の試みなので多分私は何かが恋しいです。検証のためにCtrl + Shift + Enterを押しました。

実際に私の目標は特定の基準を満たすセルの値を返すことです、私は別の関数を使用してみましたが、あまりにも複雑なので私はエクセル内蔵フィルターを使用してtフィルタ値を使用している私の他の数式を使用してください。あなたが私が使ったものと異なる解決策を持っているならば、それを提案してください、しかし私はあまりにも複雑でないかvbaを使っているものを好む。前もって感謝します。

回答:


1

私はしばらく前に同じ質問をしました。 ロンコーダー

彼は配列と非配列式の両方の解決策を提案しました。式は複雑です。私は、ヘルパー列を持つ単純な非配列式を使用する、非常に単純で直感的なアプローチを提供します。

列にデータがあるとします。 A そして B 。に C2 入る:

=SUBTOTAL(3,$A$2:$A2)

そして下にコピーする:

enter image description here

ヘルパー列は、単純な一連の値です。私達は今フィルターにかけます

enter image description here

ヘルパーは単純な順次シーケンスのままになるように調整しました。これは私達が標準を使用することを可能にします MATCH()/INDEX() 可視データを取得するためのアプローチ。に Sheet2 細胞 A1 入る:

=IFERROR(INDEX(Sheet1!A:A,MATCH(ROWS($1:1),Sheet1!C:C,0)),"")

そして下にコピーする:

enter image description here

ヘルパー列を使用できない場合は、いずれかのCoderre式を試してください。


私はあなたの式を試してみました、そしてそれは働きます、それは私の他の式を直すための参考としてさえ役立ちます。私の以前の式がうまくいかないのはわかりませんが、あなたはもっと簡単なので、私は今のところそれを使います。どうもありがとうございました。
Dizz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.