it-swarm-ja.com

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                     
_

数式をどのように変更すればよいですか?

2
May Wong

以下のソリューションがヘルパー列で機能するかどうかを確認してください。簡単にするために、Sheet2、Sheet3、Sheet4の3つのシートを使用しています。

enter image description here

上記はSheet2、Sheet3、Sheet4のサンプルデータです

メインシートの隅にあるSheet1で、ヘルパー列を作成し、そこにすべてのシートの名前を入力します(そのリストの最初のシート名を除外します)。

以下のスクリーンショットを参照してください。

enter image description here

この例では、ヘルパー列Kを作成しました。K1:K3は、生データとともにシート名を保持します。

B2の式、あなたはすでに使用しています。

=MAX(Sheet2:Sheet4!B2)

行と列にドラッグして、それぞれのMAX値を取得します。

今E2に次の数式を入力し、数式バー内からプレス CTRLSHIFTENTER 配列数式を作成します。中括弧は数式に自動的に追加され、配列数式になります。

=INDEX($K$1:$K$3,MATCH(1,COUNTIF(INDIRECT($K$1:$K$3&"!"&CELL("address",B2)),B2),0))

行と列のセルに沿って下にドラッグし、MAX値が配置されているシート名を取得します。

これは重複するMAX値を考慮に入れていないことに注意してください。それらが存在する場合は、最初のMATCHシート名が返されます。

シートの位置も重要です。ヘルパー列リストは生データシートと同じ順序(位置)である必要があり、後で実際の生データシートの位置を切り替えると、ソリューションはシート名を正しく報告しません。

お役に立てれば。

1
patkim