2017-08-31 4 views
1

I Googleスプレッドシート上で動作します。この式を有する:はエクセルGoogleスプレッドシートと同じ値を返さない

=IF(ISERROR(
INDEX(Students!$A:$H,SMALL(IF(Students!$G:$G=$B$1,ROW(Students!$G:$G)),ROW(1:1)),C$1)),"DELETE", 
INDEX(Students!$A:$H,SMALL(IF(Students!$G:$G=$B$1,ROW(Students!$G:$G)),ROW(1:1)),C$1)) 

それは(C1は、列を選択)

しかしB1に基づいて生徒のドラッグ可能なリストを返します、 Googleスプレッドシートから.xlsxをダウンロードしてMS Excelで開くと、学生に返されません。 1行(ヘッダ)を返し、それ以外は返しません。 何が原因なのですか?

EDIT:追加のスナップショットが snapshot

enter image description here

+0

あなたのシートのスナップショットを見るのに役立ちます。あなたはあなたのシートの写真を投稿できますか? – Zac

+0

確かに、スナップショットを – japseow

+0

で編集してください。これは役立ちますが、あなたの「学生」シートのスナップショットはあなたのデータがどのようにレイアウトされているか見るのに役立ちます。あなたはそれを追加できますか? – Zac

答えて

2

Googleは、明示的に使用しないでARRAYFORMULAを認識することは賢明ですが、Excelはそうではありません。式をCTRL + SHIFT + ENTERで入力する必要があります。数式は自動的に花括弧で囲まれていなければなりません{}

+1

包括的な答えをありがとう、それは今働く:) – japseow

2

短い答えは、Excelで配列数式としてそれを配置する必要があります(一部のダミーデータとここに示した)ということである

enter image description here

しかし、あなたが最初の行を取得する理由は、はるかに明らかではありません(私にはどんなレートでも)

範囲があり、= G:Gのような数式で使用すると、Excelは数式をどこに配置するかによって範囲から異なるセルを選択します(このメカニズムが何であるか忘れています)。 B2は学生から6忠誠心を拾います!G2とIF文はTRUEを返し、(行)1の最小値で終わります。これは1だけなので、最初の行が得られます。 2番目に小さいものを取得しようとすると、エラーが発生します。

関連する問題