2016-10-10 8 views
1

TABLE + DESIRED RESULT これは私が得たものだが、作品:!Sheet2の中に入っ隣接するセルの値がある範囲内のすべての値をリストしたい:1)時間差が24時間未満、その他のセル2)特定のテキストに等しい2)特定のテキストに等しい

式A2 =

index($A$2:$A$100, match(0,if(OR(AND(now()-Sheet1!O2<1,D2="closed"),D2="Pending",""),0)) 

は私に次の使用例は、シート1のセルのリストを表示します!とき条件1:今すぐ - O2 < & D2は= "閉じた" 1日

それとも条件2における時間:D2 =ヘルプみんなのため

感謝を "保留"

答えて

0

は、[OK]を、私はそれを得たと思うが、これは配列数式ですそれをセルG2に入れ、CTRL + SHIFT + ENTERを押してから、すべての結果を保持するのに十分な数だけ式をドラッグします。私はそれが簡単G2用

式を読み取るために作るために、「24時間以上前に閉じられていない」ために、「最後の24時間以内に、待っているオープン、保留中または閉」から条件を変更している。

=IFERROR(INDEX(A$2:A$11, SMALL(IF(NOT((C$2:C$11="Closed")*(NOW()-D$2:D$11>1)), ROW(A$2:A$11)-ROW(A$2)+1), ROWS(A$2:A2))), "") 

SMALL関数はthis = SMALL(array、n)のようになり、配列のn番目に小さい要素を返します。私たちの場合、nは結果出力の現在の行の行番号を与えるROWS(A $ 2:A2)によって与えられます。つまり、結果の最初の行には1番目の最小番号が含まれ、2番目の行には2番目に小さい番号などが含まれます。トリックはidリストで最小の番号を与えませんが、次の行:

IF(NOT((C$2:C$11="Closed")*(NOW()-D$2:D$11>1)), ROW(A$2:A$11)-ROW(A$2)+1 

この部分は、すべての配列の論理式として少し複雑です。ここでの*は論理ANDを表しています。それをよりよく理解したい場合は、Excelの数式バーの数式のこの部分だけを強調表示し、F9キーを押すと、配列の値が表示されます。セルG2をクリックし、上記の行を強調表示すると、この与える:

{; FALSE; 3; 4; 5; FALSE; FALSE; 8; 9; 1 10}

あなたが得られた配列が含まれていることを見ることができます条件を満たす行の行番号、そうでない人の場合は偽です。 INDEX関数とSMALL関数は、1番目に小さい値の行のIDを表示し、2番目の値などを表示します。FALSEは、条件を満たす行を無視するために使用されます。

+0

男これは最高です。 "idリストに最小の数字を与えないが配列の中で最小の数字を与える"というのはロジックの大きな部分です https://drive.google.com/open?id=0B1ctDmcvK-DWd1YyQkVBcFJNeWM –

+0

驚くばかり。私はこれがあなたのために十分に挑戦していることを願っています:-) "idリストに最小の数字を与えず、配列内で最小の数字を与える"というのは、ロジックの大部分を説明しています。 1枚のシートに数式を複製することはできましたが、別のシートで使用するときはできませんでした。間違いがどこにあるか確認してもよろしいですか?私は式がうまくいくと確信しています、私は気づいていないsthgがないかもしれません。 https://drive.google.com/file/d/0B1ctDmcvK-DWd1YyQkVBcFJNeWM/view?usp=sharing –

+0

あなたは数式に誤字がありました。最後にはROWSを呼び出す必要があります行。ROW関数はセルの行番号を与えますが、ROWSは範囲内の行数を返します。この場合はほとんど同じですが、ROWでは2,3,4とカウントしています。開始位置数式をコピーしたら、Ctrl + Shift + Enterキーを押してください。それはあまりにも挑戦していた、いくつかの新しいことを学んだ:)それは非常に便利な公式であるので、私の答えを '受け入れる'自由に感じる – lllpratll

0

構文エラー あなたが持っている:罰金です

AND(now()-Sheet1!O2<1, D2="closed") 

、問題はあなたのOR文である:

OR(AND(now()-Sheet1!O2<1,D2="closed"),D2="Pending","") 

最後の括弧は、私が信じる最後のカンマの前にする必要があります。現在、3つの引数を持つORステートメントがあります。最後は ""です。これはあなたが望むものを与えるものではありません。私はあなたが「」IF文または文のない条件の結果であることを意図したと思いますが、これを試してください:あなたがコピーしたいので

if(OR(AND(now()-Sheet1!O2<1, D2="closed"), D2="Pending"),"",0) 
+0

これは私が持っているものですが、私は括弧を修正しましたが、まだ私のために働いていません '= index(DATA!DATA!D2 = "Pending"、DATA!D2 = "A $ 2:$ A $ 1000、一致(0(OR(AND(now() - DATA!O2 <1、DATA! DATA!D2 = "顧客待ち"、DATA!D2 = "Open"、 ""、0)))))) 何が欠けていますか? (時間枠が1日未満でセルが閉じている)、またはセルが保留中、またはセルが顧客を待っている、またはセルが第三者を待っている場合は、リストが必要です。 –

+0

括弧を修正していないため、OR文は次のようになります。 OR(条件1、条件2、条件3、...) ORステートメントの最初の条件はANDステートメントです。データ!D2 = "Pending"、3番目の条件はサードパーティでの待機などです。行の最後までかっこを閉じず、条件として0を使用しているので、私は あなたは、多くのビデオを見た後、D2 = "オープン"の前で、 – lllpratll

+0

の後に、私はそうかもしれないと思う。(私は思うが、それらはIFの結果であると推測されている。間違ったトラックで私は説明の中にテーブルのイメージを追加しました。列Fに希望する結果がありました。私は正しい機能を使用していますか? C2 = "保留"、C2 = "待っています(0、IF、OR(AND(NOW() - D2 <1、C2 ="閉鎖 ")。 –

関連する問題