2016-05-03 6 views
1

を処理しません しかし、私はデータをハードコードされた配列を交換するときに、範囲、すなわちExcelのmatch関数が正しくI Bは配列{ "A"、 "B"、 "C"、 "D"}の第2引数であるので、それは2を返すクエリ</p> <pre><code>=MATCH(TRUE, ISNUMBER(SEARCH({"a","b","c","d"}, "b")), 0) </code></pre> <p>以下作成した配列引数

=MATCH(TRUE, ISNUMBER(SEARCH(A1:A4, "b")), 0) 

クエリは、A2は、Bが含まれている、#N/AがさえA1が含まれていると思っ返しA3は、cが含まれており、A4は、Dが含まれています。

なぜ機能していないのですか、どのように修正するのですか?私は検索機能を使用しています。なぜなら、おそらくワイルドカードではなく「ファジーマッチ」を探しているからです(それから私はvlookupを使います)。

私はExcel 365をオンラインで使用しています。

編集: 実験のビットの後には、

=SEARCH(A1:A2, "a") 
すると#VALUEを返す

ことが判明!たとえ

= SEARCH({ "A"、 "B"}、 "A")1.どのように私は私が望む結果を得るためにそれを修正することができます

リターン?

+0

私の編集を参照してください.................... –

答えて

1

オフィスアプリはオンラインのみの式の最も基本的なすることができますので、何のCSEの配列数式:

別のアプローチは、使用することはありません。

なぜ、あなたの数式の1つのバージョンがCtrl-Shift-Enterを必要とし、もう1つがそうでないのかは、関数の設計です。ほとんどの人がSEARCH機能を設計していなかったので、なぜそれに答えるのは難しいです。

Ctrl-Shift-Enterを必要としない配列関数があります。

=AGGREGATE(15,6,ROW(1:4)/ (ISNUMBER(SEARCH(A1:A4, "b"))), 1) 

それとも、SUMPRODUCTを(使用することができます):あなたは集計()関数を使用したいと思うでしょう、オンライン版について

=SUMPRODUCT((ROW(A1:A4))*(ISNUMBER(SEARCH(A1:A4,"b")))) 

これが行を返します。

enter image description here

+0

私は同じ検索式を使用していますが、なぜsumproduct機能が機能するのか説明できますか? – Trismegistos

+0

非常に設計されたSumproductは、検索機能に範囲内の各セルを繰り返し実行させ、それらが真であるすべての行を返します。 1つだけが真であるため、1つの行の合計を返します。 A4に 'b'を入れると' 6'が返されます。 Aggregateは同じことを行いますが、最も低い行番号のみを返します。 –

+0

プログラマーとしては、外部機能(塊状物)が内部(検索)に何か違うことをさせることができるかどうかを理解することは難しいです。また、私は両方の機能のためのドキュメントを読んだことがあり、私はそのようなサンププロダクト機能の能力について何も見つかりませんでした。そのような動作を強制することができる他の機能がありますか?これについてはどこでもっと読むことができますか? – Trismegistos

0

あなたは配列数式を必要とする:Ctrlキー + Shiftキーを入力する必要があります

enter image description here

配列数式は、 + を入力だけではなく、キーを入力します。

=MATCH("b",A1:A4,0) 
+0

なぜarrが必要ですかay式?Matchは、2番目のパラメータである配列全体から単一の値を返します。また、最初のバージョンでは配列があっても配列式は必要ありません。 Excelのオンラインで最後のctrl-shift-enterは機能しません。 – Trismegistos

+0

@Trismegistos次に、より単純なものを使用してください:** = MATCH( "b"、A1:A4,0)**私の編集を参照 –

+0

私はA1からA4にワイルドカードが必要です。 – Trismegistos

関連する問題