アプリ版:「スタンプのみでお礼する」機能のリリースについて

例えばですが、A1からM1までの間で、右側に数字がある場合は右側を優先(A1とB1ならB1を優先、B1とC1ならC1が優先)という表示をしたいのですが、最終的にM1に0が入力された場合は0を表示したいです。

「=IF(M1<0,M1,IF(L1<0,L1)・・・IF(A1<0,A1))))))))))))」という関数で右側の優先表示はできたのですが、最終的な数字は必ず0になるのですが、0の場合は数字が入っている方が優先されてしまいます。
※A1からM1まで1日毎に数字を入力し、どのタイミングで0になるかは不確定ですが、最後は必ず0になります。

説明が上手くできず申し訳ありませんが、何卒ご回答をお願い致します…。

質問者からの補足コメント

  • 回答頂いた内容を試したのですができなかったので、改めて補足説明させて頂きます。

    1日 2日 3日 4日 5日 6日
    4 6 5 6 7 8

    7日 8日 9日 10日 11日 12日
    8 7 8 6 4 0

    上記のように1日毎に数字を入力していき、
    毎日最新(6日入力時点では8、10日入力時点では6)の数字を任意のセルに表示されるようにしたいです。
    実際に数字を入力するセルはB14:M14、B27:M27です。(上記のように2行に別れてます。)
    M27が最優先、次にL27、K27…最後にB14となります。
    未入力(空白)は無視で、数字が何かしら(0含む)入力されたら反映するようにしたいです。
    本当に困っていますのでどうかご回答を頂けると助かります…

      補足日時:2021/01/07 10:01

A 回答 (3件)

こんにちは



ご説明を正しく理解できているのかどうかわからりませんけれど…

必ず、左側から順に値が入っていくことが保証されているなら、
算出したいセルに
 =OFFSET(A1,,COUNTA(A1:M1)-1)
の式を入れれば良いです。
上の式は、A1:M1が全て空白の場合にはエラーになりますが、それを避けたいなら、
 =IFERROR(OFFSET(A1,,COUNTA(A1:M1)-1),"")
としておけば良いでしょう。

もしも、A1:M1の値の途中に空白セルが存在し得るような場合は、式を
 =INDEX(1:1,AGGREGATE(14,6,COLUMN(A1:M1)/(A1:M1<>""),1))
とすることで対応可能です。
全部が空白の場合のエラー回避法は、最初の式と同様です。
    • good
    • 0

No1です



>回答頂いた内容を試したのですができなかったので、
質問文と違うことを期待しているのなら、当然、できるはずはありません。
質問文通り、A1:M1のセル範囲でお試しください。

似ていて、違う内容のことをなさりたいのであれば、応用することで可能ではありますが、そのままの式が違う働きをするなどと期待しているのであれば、それはまったくの間違いです。
    • good
    • 0
この回答へのお礼

うーん・・・

回答ありがとうございます。
質問文通り、「例えば」と書いたのでその通りのセルで使用するつもりはありませんでした。
2行に別れていることなど、もう少し詳細を始めから記載すれば良かったと反省しております。

お礼日時:2021/01/07 18:01

数値が入力されていない場合は無視しということです?


M1セルに「0」以外の値が入っていても問答無用でM1セルの値を優先していいんですね?

・・・本題・・・

自分なら配列数式にするけど、考え方が分かっていないと応用できないと思いますので、
作業用に行を設けて処理を行うようにすることを勧めます。
以下、2行目を作業用の行として説明します。

A2セルに
 =IF(ISBLANK(A1),0,COLUMN(A1))
と入力し、M2セルまでセルを複製します。
M2セルには
 =IF(ISBLANK(M1),0,COLUMN(M1))
と入力されるはずです。
これで、A2セルからM2セルまでの値は、
 同じ列の1行目に値が無ければ空白。
 同じ列の1行目に値があれば、列に相当する数値。(A列には「1」B列には「2」...)
が表示されるようになります。

あとは、A2セルからM2セルの範囲で最も大きい数値のある列の1行目の値を参照すればいい。
 MAX関数で2行目の一番大きい値を抽出し、
  =MAX(A2:M2)
 その値のある列をMATCH関数で見つけ、
  =MATCH(MAX(A2:M2),A2:M2)
 INDEX関数でその列の1行目の値を抽出。
  =INDEX(A1:M1,1,MATCH(MAX(A2:M2),A2:M2))

こんな感じになる。

冒頭で書いた「配列数式」にすると、作業用に行を設けることなく、一発で処理できます。

・・・その他アドバイス・・・

ISBLANK関数を使っているので、A1セルからM1セルの範囲への入力は数値以外の入力も対象となります。
数値以外を入力されたくない場合は、A1セルからM1セルまでの範囲に「入力規則」を設定して数値以外は受け付けないように設定すると良いでしょう。
    • good
    • 0

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