プロが教えるわが家の防犯対策術!

1行目に年が、左から右に1年ごとに増えるように連続データを記載。
2行目に、その年ごとに、何かしたかどうかをメモする。

年は2000~2022まで記載したとして、2022年がRだったとします。
右隣のSに、一番新しい記入があるセルを見つけ、その年をSに書き出したいです。

S2に表示させたいので、感覚的には
S2から左を見て、最初に見つけたセルが○2と判定される。
1行○列に書かれた■年を判定する。
S2に■を表示する。

ですが、これをうまく行う方法があれば教えてください。できれば処理が軽く、
関数一つか二つでできれば助かります。

A 回答 (7件)

失礼しました。



ならば、
>この範囲に返る値をMAX関数を使って一番大きい値として拾うことを
> =MAX(A1:W1*NOT(ISBLANK(A2:W2)))
>と配列数式にしてまとめたという点です。
の部分だけでOK。

※ 配列数式ですので、Ctrl+Shift+Enter キーで入力を確定させ、数式バーに
{=MAX(A1:W1*NOT(ISBLANK(A2:W2)))}
と表示されるようにします。
「{」と「}」は手入力ではありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。これでバッチリです!

非常に助かりました!

お礼日時:2022/04/25 17:11

No2です。



>エクセル2019ですが、残念ながらこちらも処理が行われません。
当方も2019で確認をしていますが、ちゃんと表示できます。
多分、エクセルというのが名称は同じで異なるものなのか、想定している表の形式が違うのでしょう。

>関数一つか二つでできれば助かります。
というのを見落としていました。二つ迄なら
 =AGGREGATE(14,6,COLUMN(A2:W2)/(A2:W2<>""),1)+1999
とかかな。
    • good
    • 0
この回答へのお礼

お手数をお掛けして申し訳なかったです。ご協力ありがとうございました。

お礼日時:2022/04/25 17:12

ご質問の意味が理解できず困惑していたところ、他の回答者への“お礼”中で一部訂正されていたようですが、それには「R」や「S」のハナシはすっ飛んでおり、思わず懐メロ♪花はどこへ行った♪を思い出した次第。


最初に出された R、S はどうなったのですか?
h ttps://www.youtube.com/watch?v=bOTCa1F3F0c&list=RDbOTCa1F3F0c&start_radio=1
    • good
    • 1
この回答へのお礼

失礼しました。RやSは、年数を数えず、
おおざっぱに書いたものでした。

ですので、A1が2000、W1が2022、と置き換えてください。

お礼日時:2022/04/25 16:14

>これだと、2行目の右端のセルを表示することとなり、A1からW1までの年が出てこないです。



(´・ω・`)?
何か条件が間違ってませんか。

W列の2行目(W2セル)に見えない値が入力されていませんか?
例えば、数式で
 =””
と空白を返すような数式。
ISBLANK関数を使っているので空白を返す数式は未入力セルとはなりません。
「エクセルのセルの、そのセルから左に見てい」の回答画像4
    • good
    • 0
この回答へのお礼

X2にtが表示される部分に、2020が表示されてほしいです。

こちらでも、X2にはtが表示されています。

お礼日時:2022/04/25 16:12

自分ならAGGREGATE関数を使わず、


 =INDEX(A2:W2,1,MATCH(MAX(A1:W1*NOT(ISBLANK(A2:W2))),A1:W1))
を配列数式として使います。
AGGREGATE関数を使うと考え方が難しくなるんです。

・・・

ポイントは
例えばA3セルに
 =A1*NOT(ISBLANK(A2))
と入力してW3セルまで複製し
この範囲に返る値をMAX関数を使って一番大きい値として拾うことを
 =MAX(A1:W1*NOT(ISBLANK(A2:W2))
と配列数式にしてまとめたという点です。
(試しにA3セルからW3セルまで入力してみてください)

あとはよく見るMATCH関数とINDEX関数の組み合わせです。

※ 配列数式ですので、Ctrl+Shift+Enter キーで入力を確定させ、数式バーに
{=INDEX(A2:W2,1,MATCH(MAX(A1:W1*NOT(ISBLANK(A2:W2))),A1:W1))}
と表示されるようにします。
「{」と「}」は手入力ではありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

これだと、2行目の右端のセルを表示することとなり、A1からW1までの年が出てこないです。

目的は、右端と分かったセルのる年(A行)を呼び出したいので、もう一声お願いします!

お礼日時:2022/04/25 14:16

No1です。



>その関数は正しくありません。と返されて、使用できませんでした。
ご質問文に記載がないのでわかりませんが、365環境ではないのでしょう。
FILTER関数が使えないということと思われます。

A1:W1でX2セルに表示したいのなら、X2セルに
 =INDEX(1:1,AGGREGATE(14,6,COLUMN(A2:W2)/(A2:W2<>""),1))

ただし、上の式では、2行目に何も入力されていないとエラーになります。
それも回避したければ、
 =IFERROR(INDEX(1:1,AGGREGATE(14,6,COLUMN(A2:W2)/(A2:W2<>""),1)),"")
    • good
    • 0
この回答へのお礼

ありがとうございます。

エクセル2019ですが、残念ながらこちらも処理が行われません。

お手数をお掛けして申し訳ないです。

お礼日時:2022/04/25 14:09

こんにちは



>年は2000~2022まで記載したとして、2022年がRだったとします
A1セルからR1セルまで18個のセルがあります。
2000年から1年ずつ増加してゆくと2017年までしか記入できません。
適当に、飛ばしている年があるってことでしょうか?

>S2から左を見て、最初に見つけたセルが○2と判定される。
>1行○列に書かれた■年を判定する。
S2セルに
 =INDEX(FILTER(A1:R1,A2:R2<>"",""),COUNTA(A2:R2))
で可能と思います。

※ はっきりしないところがあるので、簡略に求められる、FILTER関数が使える環境を想定しています。
    • good
    • 0
この回答へのお礼

ありがとうございます。

2022だとW列ですね。大変失礼しました。

1行目は、西暦を2000~2022まで、A1~W1に左から右に昇順に記入。
2行目は、その年ごとに行われたことが、A2~W2テキストが書かれています。
ただし、2行目に記入されるのは毎年ではなく、飛び飛びなため、セルに空白があります。
2000~2022年の間で、一番右のセルが入力されていたところの年を、Wの右隣に記入したいです。

記入されているセルの列が「W」2と判定
W1に書かれた西暦を、X2に記入する

としたいです。

ちなみに、書いていただいた内容を使用しましたが、
その関数は正しくありません。
と返されて、使用できませんでした。

お礼日時:2022/04/25 10:16

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