質問: excel-どのシートに番号が存在するかを見つける方法 excelファイルに10枚あります。 sheet2からsheet10は生データであり、すべてのシートa1には次のようなシート名が付いています。sheet2_ cola colb colc cold row1 sheet2 row2 489 154 785 row3 588 256 546 row4 758 654 945 _sheet3_ cola colb colc cold row1 sheet3 row2 758 95 245 row3 236 265 956 row4 879 486 785 _sheet1で、以下のようにすべてのシートで各セルの最大値を見つけました。それは私に価値を与えるだけであり、私はこの価値がどのシートからのものであるかも知りたいです。だから私はこの=index(sheet2:sheet10!a1,match(a1,sheet2:sheet10!b2,0))のようにしますが、_#value!_を返します。_ cola colb colc row1 =max(sheet2:sheet10!b2) =max(sheet2:sheet10!c2) ... row2 =max(sheet2:sheet10!b3) =max(sheet2:sheet10!c3) row3 ... _私が期待したものはこれが好きなはずです_ cola colb colc cold row1 758 sheet3 (mean a1 max value 758 is from sheet3) row2 588 ... sheet2 (mean a2 max value 588 is from sheet2) row3 879 _数式をどのように変更すればよいですか?
回答: 以下のソリューションがヘルパー列で機能するかどうかを確認してください。簡単にするために、sheet2、sheet3、sheet4の3つのシートを使用しています。 上記はsheet2、sheet3、sheet4のサンプルデータですメインシートの隅にあるsheet1で、ヘルパー列を作成し、そこにすべてのシートの名前を入力します(そのリストの最初のシート名を除外します)。以下のスクリーンショットを参照してください。 この例では、ヘルパー列kを作成しました。k1:k3は、生データとともにシート名を保持します。b2の式、あなたはすでに使用しています。=max(sheet2:sheet4!b2) 行と列にドラッグして、それぞれのmax値を取得します。今e2に次の数式を入力し、数式バー内からプレス ctrl + shift + enter 配列数式を作成します。中括弧は数式に自動的に追加され、配列数式になります。=index($k$1:$k$3,match(1,countif(indirect($k$1:$k$3&"!"&cell("address",b2)),b2),0)) 行と列のセルに沿って下にドラッグし、max値が配置されているシート名を取得します。これは重複するmax値を考慮に入れていないことに注意してください。それらが存在する場合は、最初のmatchシート名が返されます。シートの位置も重要です。ヘルパー列リストは生データシートと同じ順序(位置)である必要があり、後で実際の生データシートの位置を切り替えると、ソリューションはシート名を正しく報告しません。お役に立てれば。