こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

どんな数式を入力すればいいのでしょう?

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

投稿日時 - 2006-11-30 20:44:18

QNo.2572501

困ってます

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

=INDEX(A1:Z1,1,SUMPRODUCT(LARGE((A1:Z1<>"")*COLUMN(A1:Z1),1)))
でどうでしょう

投稿日時 - 2006-11-30 20:54:08

お礼

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

投稿日時 - 2006-11-30 21:45:20

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

次の方法は如何でしょうか。
=INDEX(1:1,MATCH(MAX(A1:Z1)+1,A1:Z1,1))

投稿日時 - 2006-12-01 12:59:55

お礼

ありがとうございました

投稿日時 - 2006-12-01 20:26:51

ANo.6

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

投稿日時 - 2006-11-30 23:40:30

お礼

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

投稿日時 - 2006-12-01 20:26:04

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

投稿日時 - 2006-11-30 22:35:41

お礼

ありがとうございました

投稿日時 - 2006-12-01 20:22:56

ANo.4

=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になります。

投稿日時 - 2006-11-30 22:26:26

お礼

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

投稿日時 - 2006-11-30 22:47:39

ANo.3

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

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

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

投稿日時 - 2006-11-30 22:03:57

お礼

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

投稿日時 - 2006-11-30 22:42:04

ANo.2

配列数式を使って

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

式を確定するときは、Enter ではなくて、Shift+Ctrl+Enter で確定する
 

投稿日時 - 2006-11-30 21:04:28

お礼

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

投稿日時 - 2006-11-30 21:50:26

あなたにオススメの質問