Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
範囲内に数値が入っている列の見出しを返したい
投稿日時: 21/05/07 16:53:38
投稿者: ガイア

『範囲内に数値が入っている列の見出しを返したい』
    [A]    [B]    [C]    [D]    [E]    [F]
[ 1]    0001    0002    0003    0004    0005    
[ 2]     20
[ 3]     30    
[ 4]         50    
[ 5]     40
[ 6]         50   60
 
上のような表があります。
セルF2には0001(A1)、セルF3には0002(B1)、セルF4には0004(D1)という
ように、特定の範囲内に数値(若しくは文字)が入っている場合に、
その見出しを返してくれる関数をF列に作りたいのですが、
どうすればよいかご教授いただけ無いでしょうか。
尚、原則として表内の各行には1つのデータしか入らないのですが、
例外的に6行目のように、データが2つ入るような場合もあります。
この場合は、A列に近いD列に対応する0004(D1)のセルを返してほしいです。
以上、よろしくお願いいたします。
 
上記のような問いに対して、以下のような回答を得ましたが、この数式を理解できません。
=IF(COUNTA(A2:E2),INDEX($A$1:$E$1,MATCH(1,INDEX(1/(A2:E2<>""),),)),"")
 
特に、
MATCH(1,INDEX(1/(A2:E2<>""),),))
この部分が理解不足なので、有識者の方からご教授いただきたく存じます。
 
恐れ入りますがよろしくお願いいたします。
 

回答
投稿日時: 21/05/07 18:10:58
投稿者: んなっと

表がずれていてわかりにくいです。
こんな感じですか?
 
   A   B   C   D   E   F
1 0001 0002 0003 0004 0005   
2  20             0001
3     30          0002
4           50    0004
5        40       0003
6           50  60 0004
 
F2
=INDEX($1:$1,MATCH(TRUE,ISNUMBER(A2:E2),0))
とか
=INDEX($1:$1,MATCH(0,0*(A2:E2&""),0))
 
Excelのバージョンは?

回答
投稿日時: 21/05/08 08:21:35
投稿者: Mike

  A  B  C  D  E  F
1 0001 0002 0003 0004 0005
2  20           0001
3    30        0002
4         50   0004
5       40      0003
6         50  60 0004
 
次式を入力したセル F2 を下方にオートフィル
=INDEX(A$1:E$1,MIN(IF(A2:E2<>"",COLUMN(A2:E2))))
【お断わり】上式は必ず配列(CSE)数式として入力のこと

投稿日時: 21/05/08 09:28:36
投稿者: ガイア

んなっとさん、ご教授ありがとうございます。
 
表ズレ、大変失礼いたしました。
Excelのバージョンは2019です。
 
ご提示いただいた関数、とてもわかりやすくて助かります。
このような方法があるのですね。
早速利用させていただきます。
 
ありがとうございました。
 
 
 
Mikeさん、ご教授ありがとうございます。
 
配列関数をご教授いただきありがとうございます。
まだまだ配列に関して勉強不足ですので、これを機会に習得してみようと思います。
 
ありがとうございました。