2017-08-28 8 views
1

Excelで数式を試していて、複数の数式でこの問題が発生しました。私はうまくいくはずの式を入れましたが、間違った結果を呈します。関数ボタンをクリックして引数を見ると、ダイアログボックスに正しい値が表示されます。例えばExcel 2016で誤った数式結果が表示されますが、Functon Argumentsダイアログで正しい結果が表示されます

、セルA1 =「DE1」とA2は=MIN(FIND(ROW($1:$10)-{1},A1&56^7)) Excelがあり、セルA2で7が、私は機能を編集する場合、私は私の究極の目標は、にある2

の適切な値を参照してください持っている場合数式を使ってセルからすべての数値を取り除く(私はVBAコードを必要としない)私はいくつかの例をオンラインで見たことがあるが、すべて上記の例と同じ症状を示している。

答えて

1

式:

=MIN(FIND(ROW($1:$10)-{1},A1&56^7)) 

は、あなたの質問に答えるためにどの、配列数式です編集モードを終了するときはCtrl-Shiftキーを押しながら入力する代わりにEnterで確認される必要があります。正しく実行された場合、Excelは{}を数式の周りに入れます。

enter image description here


式が何をしているか:

A1&56^7 

は、それはまたのすべての桁を持つ数である56^7あるA1の値と1727094849536とテキスト文字列を作成します。その中の0-9。これにより、FINDがエラーを返さないようにします。

ROW($1:$10)-{1} 

すべて単一の数字の配列を返します:その順序で{0,1,2,3,4,5,6,7,8,9}

注:その周囲の{}は必要ありません。このインスタンスでは何も実行されず省略することができます。 ROW($1:$10)-1

「配列内で検索」フォームは、それらの数字のそれぞれの最初の文字位置の配列を返します。したがって、A1&56^7DE11727094849536の場合、配列は{8,3,6,15,10,14,16,5,11,9}となります。

これから、MINは3を返します。

Ctrl-Shift-Enterを使用しない場合、FINDは配列全体を反復せず、最初の番号、つまり8のみを返し、1つの番号のMINがその番号です。

+0

ありがとうございました。それはそれだった。 – LtlBear

+0

@Scott Craner、Awesome explination –

+0

私は以前に質問するつもりだったが、仕事中に中断した。それはすべての数字のための56^7のトリックですが、1つの既知のプログラマーのショートカットは1234567890より短いすべての数字ですか? –

関連する問題