痔になりやすい生活習慣とは?

いつもお世話になっております。

EXCELの関数について相談をさせてください。
選択範囲($AC11:$IV11)で入力されているセルの一番左のセル番地を返す関数はありますでしょうか。
一番右のセルは、以下の関数で取得できるのですが、一番左が取得できません。

=INDIRECT(ADDRESS(7,LARGE(INDEX(($AC11:$IV11<>"")*COLUMN($AC11:$IV11),),1)))

ご存じの方がおられましたら、ご教授いただけませんでしょうか。
以上、よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

なぜ、そのような回りくどい数式を考えるのだろう??



そのまま考えて一番右
=INDEX($7:$7,MAX(IF($AC11:$IV11<>"",COLUMN($AC11:$IV11))))
[Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる)

一番左
=INDEX($7:$7,MIN(IF($AC11:$IV11<>"",COLUMN($AC11:$IV11))))
[Ctrl]+[Shift] +[Enter] で確定

11行目 文字列なら
一番左
=INDEX($AC$7:$IV$7,MATCH("*",$AC11:$IV11,0))
一番右
=INDEX($AC$7:$IV$7,MATCH("ーー",$AC11:$IV11))

11行目 数値なら 一番右
=INDEX($AC$7:$IV$7,MATCH(8^3^8,$AC11:$IV11))

とすることも可能です
    • good
    • 1

ADDRESSを使った方法でしたら次のような式でどうでしょう。



=INDIRECT(ADDRESS(ROW(AC11),COLUMN($AC11)+INDEX(MATCH("*?",$AC11:$IV11&"",0),)-1))
    • good
    • 0

ちょっと修正と追加。


=INDEX($AC$7:$IV$7,MATCH("*?",$AC11:$IV11,0))
としておかないと、="" を拾ってしまいますね

11行目 数値の場合で一番左 (やや強引に)
=INDEX($AC$7:$IV$7,MATCH("*?",$AC11:$IV11&"",0))
[Ctrl]+[Shift] +[Enter] で確定
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q値が入っている一番右のセル位置を返す方法

たとえばA行に値(文字列)が横に並んでいるとして
値が入っている一番右のセルの位置を返すようにするにはどのようにすればいいでしょう?

Aベストアンサー

セルの位置を返したいのであれば
=CHAR(MATCH(MAX(1:1)+1,1:1,1)+64)&1
でどうでしょうか。

Q値の入っているセルのうち、一番右側の値を取得したい(エクセル)

現在、データを左から右へ順次追加しています。
一番右側が、最新データとなります。
やりたいことは、複数の行にある、最新データを拾って、グラフを作成したいと思ってます。
どうやったら、できるのでしょうか?


<イメージ?>
●:最新データ
×:古いデータ
○:空欄
●のみを拾って、グラフを作成したい。

×××××●○
××××●○○
×●○○○○○
××××●○○

Aベストアンサー

こんにちは。maruru01です。

データがB列から、順に右へ入力されていくとして、A列に最新データを表示する場合は、

A1を選択して数式バーに、

=INDIRECT(ADDRESS(ROW(),MAX(IF(LEN($B1:$M1),COLUMN($B1:$M1)))))

と入力し、まだカーソルが数式バーにある状態で[Ctrl]と[Shift]を押しながら[Enter]を押して決定します。
(数式の両端に「{}」が付いて配列数式になります。)
これを下の行へコピーします。
あとは、このA列の値でグラフを作成すればいいと思います。
なお、上記の数式ではデータ入力範囲をB~M列にしましたが、後ろの列は、データを入力する可能性のある最大の列にして下さい。
(何列まで入力するか分からない場合は、エクセルの最終列のIVにしましょう。)

各関数については、ヘルプなどを参照して下さい。
配列数式については、以下のページを参考にして下さい。

http://pc21.nikkeibp.co.jp/pc21/pc_10/hr_top.htm

参考URL:http://pc21.nikkeibp.co.jp/pc21/pc_10/hr_top.htm

こんにちは。maruru01です。

データがB列から、順に右へ入力されていくとして、A列に最新データを表示する場合は、

A1を選択して数式バーに、

=INDIRECT(ADDRESS(ROW(),MAX(IF(LEN($B1:$M1),COLUMN($B1:$M1)))))

と入力し、まだカーソルが数式バーにある状態で[Ctrl]と[Shift]を押しながら[Enter]を押して決定します。
(数式の両端に「{}」が付いて配列数式になります。)
これを下の行へコピーします。
あとは、このA列の値でグラフを作成すればいいと思います。
なお、上記の数式ではデータ入...続きを読む

QExcel 一番右のセルを参照する

Excelで、A1からZ1のセルの内で一番右の入力してあるセルの数字を参照したい場合はどうしたらいいのでしょうか。
例えば、A1,B1,C2,D1,E1にそれぞれ、5, (未入力), 10,7,(未入力)とかの場合は、入力されている中で一番右側にあるD1にある7がその答えになります。

Aベストアンサー

すいません、補足です。
=HLOOKUP(10,A1:Z1,1,1)
の最初のパラメーター"10"は入力される最大値より大きい数字にして下さい。

Qエクセルで左端のセル位置を取得するには

範囲内で空白を除いて一番左端のセルの位置を取得する方法というのはあるでしょうか?

たとえば以下のような表の場合にA1にはC1、A2にはD2、A3にはE3が入るようにしたいのです。
以下のような表の場合に
 A  B  C  D  E
1      1  2   3
2           2   3
3             3

わかりづらい質問で申し訳ありませんが、よろしくお願いします。

Aベストアンサー

No.5です。

MATCH(1,INDEX(SIGN(LEN(B1:E1)),0),0)
MATCH(検査値, 検査範囲, 照合の型)

検査範囲は INDEX関数でつくられた配列データ。
配列データの内容は LEN(B1:E1)で、B1:E1各セルの文字数( 桁数 )。

質問の例ではわかりにくいので
B1:空白、C1:1234、D1:空白、E1:56
のようにデータが入っていると思ってください。

SIGN関数を使わずに、INDEX(LEN(B1:E1),0) だとすると、
{0,4,0,2}
という配列データになります。
0、4、0、2 は LEN関数の戻り値、B1:E1のそれぞれの文字数( 桁数 )です。

SIGN関数は数値の正負を調べる関数。
引数が正の数なら( 何桁であっても )1を返します。
だから SIGN関数を使って、INDEX(SIGN(LEN(B1:E1)),0) なら
{0,4,0,2} という配列データは
{0,1,0,1}
というふうになります。
ここでは SIGN関数の引数は文字数なので、セルが空白なら 0、データが入っていれば 1。戻り値は 0 か 1 かのどちらかです。

なので、MATCH関数は↓な感じになります。
=MATCH(1,{0,1,0,1},0)

1が検査値。{0,1,0,1}が検査範囲。
何桁の数値( 文字列でも )が入っていても、検査値を 1にしておけば左端のデータ位置を求めることができるってことです。

もしかしてこの検査値の 1を見て、
>左端の値は1とは限らないのです。
と思いました? ちっ、ヴァカな回答よこしやがって! て感じでした?

このときの MATCH関数が返す位置は B列を1とするものなので、正しいセル番地を求めるために +1しています。
MATCH(1,INDEX(SIGN(LEN(B1:E1)),0),0)+1

検査範囲が C列から始まるなら +2、D列から始まるなら +3のように調整してください。

No.5です。

MATCH(1,INDEX(SIGN(LEN(B1:E1)),0),0)
MATCH(検査値, 検査範囲, 照合の型)

検査範囲は INDEX関数でつくられた配列データ。
配列データの内容は LEN(B1:E1)で、B1:E1各セルの文字数( 桁数 )。

質問の例ではわかりにくいので
B1:空白、C1:1234、D1:空白、E1:56
のようにデータが入っていると思ってください。

SIGN関数を使わずに、INDEX(LEN(B1:E1),0) だとすると、
{0,4,0,2}
という配列データになります。
0、4、0、2 は LEN関数の戻り値、B1:E1のそれぞれの文字数( 桁数...続きを読む

Qエクセル関数式、入力範囲の一番右端の値を返すには?

エクセル関数式質問です。
Sheet1のセルA1値、A2値、A3値、A4値を,Sheet2のセルA1に「=Sheet1!A1」,セルB1に
「=Sheet1!A2」,セルC1に「=Sheet1!A3」,セルD1に「=Sheet1!A4」という仕組みを作っ
ておいて、Sheet1のセルA1からA4に人の名前をそれぞれ入力したとします。
例えば、Sheet1のセルA1に「田中」、セルA2に「中村」、A3は空白、A4も空白としたと
き、Sheet2のセルA1には「田中」,セルB1には「中村」,セルC1に「空白」,セルD1に「空
白」(この場合、これらの空白は空白に見えても実際は、「Sheet1!A*」が隠されている
わけですが…)となります。
以上の条件において、Sheet2の別セルに、今、Sheet2のA1からA4の範囲に表示されてい
る名前のうち、常に右端の名前を表示させたい場合、この場合は「中村」です。その右
となりは空白ですので。仮にA3に「大山」と表示されたてA4は空白の場合は、もちろん
「大山」になります。この別セルに入力する関数式を教えてください。宜しくお願いし
ます。

エクセル関数式質問です。
Sheet1のセルA1値、A2値、A3値、A4値を,Sheet2のセルA1に「=Sheet1!A1」,セルB1に
「=Sheet1!A2」,セルC1に「=Sheet1!A3」,セルD1に「=Sheet1!A4」という仕組みを作っ
ておいて、Sheet1のセルA1からA4に人の名前をそれぞれ入力したとします。
例えば、Sheet1のセルA1に「田中」、セルA2に「中村」、A3は空白、A4も空白としたと
き、Sheet2のセルA1には「田中」,セルB1には「中村」,セルC1に「空白」,セルD1に「空
白」(この場合、これらの空白は空白に見えても実際は、「Sheet1!A*」が...続きを読む

Aベストアンサー

こんな感じでも良いかな

=LOOKUP(1,0/(A1:A4<>0),A1:A4)

Qエクセルにおいて、数値が入っている一番右端のセルの値を取得する方法

エクセルに、左から順にデータを追加しています。
よって、一番右端が最新版となります。
その一番右端のデータのみを取りだして、自動的に作表するようにしたいのですが、どうすればよいでしょうか。
よろしくお願いします。

Aベストアンサー

こんにちは。

一行目を検索するとして、

入力が文字列だけなら、
=INDEX(1:1,MATCH("ー",1:1))

数値だけなら、
=INDEX(1:1,MATCH(9E+307,1:1))
・・・9e307は、十分に大きな数字なら何でもよいです。

どちらか分からないなら、組み合わせて
=INDEX(1:1,MAX(MATCH({"ー",9E+307},1:1)))

1:1というのは、A1:M1と書き換えてもよいです。
A1:M1と書けば、A1:M1のなかで一番右端の値を
参照します。

Qセル番号を返す関数

エクセルで、セル番号を返す関数はありますか??
セルの内容ではなくて、番号です。(A1、B3など)
調べてみましたがなかなか見つからなかったので、
わかる方教えてください。
宜しくお願い致します。

Aベストアンサー

文字として"C4"を返す。
=ADDRESS(ROW(C4),COLUMN(C4),4)

式を入力したセルの位置を文字列で返す。
=ADDRESS(ROW(),COLUMN(),4)

ADDRESSの3つ目の引数を変えると
$C$4
$C4
C$4
C4
の4つの形に出来ます。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

QExcelで、条件と一致する最後のセルを検索したい

Excelで、条件と一致する最後のセルを検索したいのですが、どの関数をどのように使えばいいかわかりません。
どなたかお力をお貸し下さい。

問)
日付  社名  品名  個数
1/1   A    あ    1
1/1   C    い    2
1/2   B    う     3
1/2   A    え    4
1/3   C    お    5
1/3   A    あ    3

答)
A社の最終購入日は  1/3 あ 3
B社の最終購入日は  1/2 う  3
C社の最終購入日は  1/3 お 5

となるようお願いします。

Aベストアンサー

エクセルには「最後の該当」を検索する関数はありません。
無駄に複雑な数式を駆使すればもちろん「やればできます」が、添付図のようにちょっと工夫するだけで、普段使いの数式だけでやっつけるのがお勧めです。

A2:
=IF(OR(C2="",COUNTIF($C$2:C2,C2)<COUNTIF(C:C,C2)),"",C2)
以下コピー

答えは簡単なVLOOKUP関数を使うだけです。
H2:
=IF(COUNTIF($A:$A,$G2),VLOOKUP($G2,$A:$E,2,FALSE),"")




まぁ一応ご参考に作業列を使わない方法:
H2:
=IF(COUNTIF($C:$C,$G2),INDEX(B:B,MAX(IF($C$2:$C$999=$G2,ROW($C$2:$C$999)))))
と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力する

説明は省略しますので、ブラックボックスで使ってください。

Q【EXCEL】空白でないセルの位置を検索したい

初めまして。
EXCELの関数を利用して、
下記のようなことをしたいと思案中です。

 A B C D E F
1* 1   2   3
2* 1   2 3 3
3* 1   2   
4* 1   2 3 3

*が計算式を挿入したい箇所です。
各行の最初のブランク位置を検索したいです。
ブランクの個数は不定ですが、
B~Fのセルに入れるデータは全て数値です。

MATCH関数を使い、MATCH("",B3:F3)のようにしても、
#N/Aとなってしまいます。

何か良い方法はないでしょうか?
ご教授頂けますようよろしくお願い致します。

Aベストアンサー

配列数式を使ってようやく出来ました。
下は1行目のF列までの関数です。
{=MIN(IF(ISBLANK(B1:F1),COLUMN(B1:F1),""))}
入力する際に、コントロールキーとシフトキーを押しながらEnterキーを押してください。
指定した範囲に空白セルが無い場合は、0になります。それ以外は範囲中の最も左にある空白セルの列番号が数字で返されます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング