• ベストアンサー

各数字の行列の表示について

画像のように各数字の列および行の名前をL列およびM列にそれぞれ出力する関数があれば教えていただけると幸いです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

L3: =IF(COUNTIF($C$4:$I$13,K3)=1,INDEX($3:$3,SUMPRODUCT(($C$4:$I$13=K3)*COLUMN($C$4:$I$13))),"") 以下コピー M3: =IF(L3="","",INDEX(B:B,SUMPRODUCT(($C$4:$I$13=K3)*ROW($C$4:$I$13)))) 以下コピー ご質問で掲示された画像の配置に合わせて数式が作成されています。まずはご自分もその通りの配置で作成し、正しく計算できることを確認してください。実は本番では違う場所で計算したかったときは、よく注意して作成してください。 表の中に1つだけ対象がある場合に限り計算するよう、検査しないといけません。

jugyou1
質問者

お礼

ありがとうございました。大変参考になりました。あらためて質問するときがありましたらご協力をいただけますと幸いです。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

添付図のような表の位置での解答です。 L5:=INDEX($A$3:$I$3,SUMPRODUCT(($C$4:$I$16=$K5)*COLUMN($C:$I))) M5:=INDEX($B$1:$B$16,SUMPRODUCT(($C$4:$I$16=$K5)*ROW($4:$16))) 行と列を分けています。双子のような算式です。

jugyou1
質問者

お礼

ありがとうございました。大変参考になりました。あらためて質問するときがありましたらご協力をいただけますと幸いです。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! ↓の画像で説明します。 画像ではL14セルに =IFERROR(INDEX(A$3:I$3,,SUMPRODUCT((A$1:I$16=K4)*COLUMN(A1:I1))),"") M14セルに =IFERROR(INDEX(B$1:B$16,SUMPRODUCT((A$1:I$16=K4)*ROW(A$1:A$16))),"") という数式を入れ、L14・M14セルを範囲指定 → M14セルのフィルハンドルで下へコピーしています。 ※ データ範囲内に重複はない!という前提条件です。 ※ セル配置(データ量)が違うと当然数式も違ってきます。m(_ _)m

jugyou1
質問者

お礼

ありがとうございました。大変参考になりました。あらためて質問するときがありましたらご協力をいただけますと幸いです。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>画像のように各数字の列および行の名前をL列およびM列にそれぞれ出力する関数があれば教えていただけると幸いです。 Excelの関数では目的のセルへ出力するものはありません。 目的のセルに数式をセットして結果を表示する関数はあります。 提示の画像のような結果を得るには次の数式が適当かと思います。 L6=INDEX($A$3:$I$3,1,INT(SUMPRODUCT(($C$4:$I$16=K6)*ROW(B$4:B$16)+($C$4:$I$16=K6)*COLUMN($C3:$I3)*1000)/1000)) M6=INDEX($B$1:$B$16,MOD(SUMPRODUCT(($C$4:$I$16=K6)*ROW(B$4:B$16)+($C$4:$I$16=K6)*COLUMN($C3:$I3)*1000),1000),1) L6とM6セルを下へ15行までコピーすれば質問に添付の画像に沿った結果が得られます。 元データは画像で提示された範囲を対象に数式を組み立てていますので実際のデータ範囲に合わせて修正してください。 貼付画像はExcel 2013で検証した結果ですがExcel 2003でも再現できると思います。

jugyou1
質問者

お礼

ありがとうございました。大変参考になりました。あらためて質問するときがありましたらご協力をいただけますと幸いです。

関連するQ&A

専門家に質問してみよう