2017-09-23 6 views
-2

(最終)EDIT3の最大の最後の最大値/代替を探す:ARRAYFORMULA

=指数(ソート(フィルタ(A:D、A:< = DATEVALUE(A3)、B:B = B3、D :D <> 0)、3、F alse)、1,3)

  1. フィルタ現在の日付に開始日、運動名、担当者> 0 <。最高の最初の行である
  2. インデックス重量行

より速く動作するように思われるので、下降によって

  • ソート量は、依然としてフィルタはARRAYFORMULAに動作しないので、ドラッグしなければなりません。十分な1日の最大値を返すだけです。技術的には、最大値を設定したい場合(つまり、日付の値が細かく分/秒でフィルタリングできますが、元のデータにはその情報がない場合)私は、各行に比較のための順序を与えるために、順次番号の別の列を作ることができると思います。

    オリジナル質問:

    私は運動ロガーを構築し、各運動の最後のMAX重量値を見つけようとしています。私はほとんどの作品を持っているが、それはすべての演習と現在のセルの重量を比較し、シートは30000のエントリに近いのでかなり遅いです。

    インデックス/マッチ/ソートの方法があるので、Maxが配列で機能しないので、1つのセル配列形式で動作させることができますか?前回のエクササイズ(B:B)が見つかったようなものは、どちらか高い方の値(C:C)を保持してください。

    reps = 0(何らかのAND IF D:D <> 0)なら、現在の公式については、以前のMAXの重みを保持したいと思います。したがって、私が1人の担当者(別名rep = 0)を実行することができない場合、重み値は計算に引き継がれません。行動は赤で強調表示されます。これは、上記の前の最高値メソッドを見つけて、それを偽の条件として差し込むことに戻ります。

    サンプルシート

    仕事「最後の出現」の例を見つけることを試みる私の心を失って、ありがとうございます。

    編集:それは

    1. 運動Bの前のエントリを見つけるべきであるように私の脳内での式のためのロジックはそう:それが存在しない場合は、Bを、現在のweightCにMAXEを設定するには(最初に設定し、 MAX)
    2. 前exerciseBが存在しない場合、現在repDが大きいかまたは1に等しい場合、検索(すなわち、0でない)
    3. が前MAXE現在weightCを比較し、他
    4. (ときに大きいする方現在MAXEを設定します現在のrepDが1未満)、現在のMaxEを以前のMaxEに設定する

    EDIT 2:

    @anonymous、ご入力をお願いいたします。

    あなたの式(列F)上記

    enter image description here

    式の比較は、いくつかのエラー(黄色の強調表示)とで(D列と数式バーに)私が持っているものと非常によく似て動作します。全体として、私はD <> 0(赤を強調表示)を検出することができましたが、Googleスプレッド内のグループおよび隣接値の以前の発生を判断する方法を見つける方法を見つけることができません。しかし、私はエクセル(下の画像)で動作する "逆"関数を見つけましたが残念ながら "= LOOKUP(2,1 /"はトップダウンを処理するGoogleスプレッドシートでは機能しません。 、シートには、それは25

    enter image description here

    を正しい返しますExcelが機能している。それは、最後に出現を検索します。

    それが動作するので、私は今のエクセルに固執するつもりだ、とGoogleシートを取ります主に、1つの式で配列に互換性がないため、処理時間を短縮する方法やMAXを使用しない方法を見つけることを望んでいました。

  • +0

    複数の投稿:https://webapps.stackexchange.com/questions/110233/finding-last-occurrence-of-value-in-column – pnuts

    +0

    @diggyを、あなたのロジックでは、 ' = ARRAYFORMULA(MAX(IF(B2 = B1、IF(D2 <> 0、MAX(C2、E1)、E1)、C2))) 'を押してドラッグしますが、複数の演習があるのでランダムに配置される。 –

    +0

    @anonymous、努力ありがとう、進捗状況の編集をご覧ください。簡単に言えば、機能を実現するために必要な機能が見つかったと思いますが、Googleスプレッドシートではサポートされていません。 – diggy

    答えて

    0

    試してみてください。

    =QUERY(B:D,"Select B,max(C) where not D=0 and B is not null group by B") 
    
    +0

    入力していただきありがとうございます。私はmax(rep <> 0の場合)を検索しようとしていません。範囲全体のユニークなエクササイズですが、範囲の始めから各行のエクササイズの最大値(rep <> 0の場合)は、その特定の行までです 重量:1,2,3,4,1,6 、4、5 最大:1,2,3,4,4,6,6,6 – diggy