重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

(A1:Z1)の1行の表に空白セルと数字入力セルがランダムに入力されています。 
最右セル(Z1)から見て、数字が入力されている最初のセルの値を取り出したいのです。
例えば、Y1=2, Z1=3 (他のセルは空白)ならば 3
B1=4 , K1=8 ,M1=5 (他のセルは空白)ならば 5
というように最右から最初に出て来るセルの数字を取り出したいのです
どんな計算式(関数)を入力すればいいのでしょうか?

A 回答 (7件)

=INDEX(A1:Z1,1,SUMPRODUCT(LARGE((A1:Z1<>"")*COLUMN(A1:Z1),1)))


でどうでしょう
    • good
    • 0
この回答へのお礼

SUMPRODUCT以下の意味が分かりませんができました。
ありがとうございました。

お礼日時:2006/11/30 21:45

次の方法は如何でしょうか。


=INDEX(1:1,MATCH(MAX(A1:Z1)+1,A1:Z1,1))
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2006/12/01 20:26

要するにA1:Z1で一番右のセルの値(数値)を求めるんですよね


=LOOKUP(10^10,A1:Z1)
    • good
    • 0
この回答へのお礼

こんなに簡単な数式でできるんですか!?
ありがとうございました

お礼日時:2006/12/01 20:26

{=INDEX(A1:Z1,1,MAX(COLUMN(A1:Z1)*ISNUMBER(A1:Z1)))} (配列数式)

    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2006/12/01 20:22

=MAX(IF(ISNUMBER(A1:Z1),COLUMN(A1:Z1),0)) と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。

これで最右の列番号(数字)が出ます。
(例)F1がa,J1が12、N1が1で14
セルの数値は
=INDEX(A1:Z1,1,MAX(IF(ISNUMBER(A1:Z1),COLUMN(A1:Z1),0)))
と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。
1が答えになりました。
これをABC・・・列記号に直すには
=CHAR(64+MAX(IF(ISNUMBER(A1:Z1),COLUMN(A1:Z1),0)))
と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。
Nになります。
    • good
    • 0
この回答へのお礼

解き方にもいろいろとあるんですね!
ありがとうございました。

お礼日時:2006/11/30 22:47

#01です。

少し説明しましょうか。
(A1:Z1<>"")は配列式ですがA1~Z1のそれぞれのセルが空白で無いとき1、空白の時0の値になります。(結果も26個の配列です)
またCOLUMN関数は列番号を取得する関数ですので、
 (A1:Z1<>"")*COLUMN(A1:Z1)
は「空白でない列のときその列番号の配列」を返します。

LARGE関数(またはMAX関数)で上記「列番号の配列」から最大値を求めると「空白でない最大列(=最右列)の列番号」が求まります。そしてINDEX関数で最右列の値を取り出しているのです。

なおSUMPRODUCT関数は元々は配列どうしのかけ算を行う関数なのですが、配列数式(Shift+Ctrl+Enterで確定)にしなくても配列を扱えるので便利です。色々と応用できる関数ですので、過去の質問をSUMPRODUCTで検索してみたらよいでしょう
    • good
    • 0
この回答へのお礼

ようやく分かりました!
列番号を使うという意味に納得しました
ありがとうございました

お礼日時:2006/11/30 22:42

配列数式を使って



=INDEX(A1:Z1,1,MAX(COLUMN(A1:Z1)*(A1:Z1<>"")))

式を確定するときは、Enter ではなくて、Shift+Ctrl+Enter で確定する
 
    • good
    • 0
この回答へのお礼

回答してくださった数式の意味がわかりませんができました
ありがとうございました
配列を使うということはNo.1の回答者さんと同じような
意味でしょうか?(A1:Z1<>"")が分かりません

お礼日時:2006/11/30 21:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!