下記データがあります
K列 L列 M列 N列 O列 P列・・・
1行目 2018/12/2 2018/12/9 2018/12/16 2018/12/23 2018/12/30・・・
2行目 20000 10000 5000 10 -100・・・
3行目 100 -2300 -5000 -5100 -10000・・・
・
・
L列目以降の数値は昇順です。(例:M列目とN列目だと、M列目の方が数値が大きい)
数値がマイナスになった時の1行目の日付-※日をK列に表示したいですが、方法をご教示お願い致します。
上記※日の数値はどこかのセルに整数として入力してあるのを使いたいです。
例えば、※日=5日とした場合、2行目の場合はセルK2に2018/12/25、3行目の場合はセルK3に2018/12/4を表示。
(ただし、日付の結果が本日より前の日付になる場合は本日の日付、L列目でいきなりマイナスの場合も本日の日付、マイナスが無い行の場合は"-"を表示)
途中に空白行は存在しません。
可能であれば、数値データが変わったらリアルタイムでK列のデータも変わるようなのが良いです。
(関数で出来るでしょうか?出来なければVBAでお願いします)
No.1ベストアンサー
- 回答日時:
スタートは「最初に負の値になった列の1行目を返せ」ですね。
L列から必要範囲の値をsign関数にぶち込んだ配列を生成し、match関数で-1を見つければいいんです。K2には、=index($L$1:$AA$1, match(-1, index(sign($L2:$AA2),0), 0))
あとはどこかのセルの日数を引き算し、今日より過去にならないようmax関数で今日を下限とし、負の値がなくてN/Aエラーになってたらiferror関数で"—"を返すと。
=iferror(max(today(), 上記の数式-どこかのセル), "—")
ありがとうございます。
MAX関数だと本日の日付しか表示されなかったので、下記で意図した日付が表示されるようになりました。
=IFERROR(IF(INDEX($L$1:$AA$1, MATCH(-1, INDEX(SIGN($L2:$AA2),0), 0))-$J$1>TODAY(),INDEX($L$1:$AA$1, MATCH(-1, INDEX(SIGN($L2:$AA2),0), 0))-$J$1,TODAY()),"-")
No.5
- 回答日時:
No.2・3です。
>セルK2には2019/1/2←意図通り
>セルK3には2018/12/29←過去の日付なので2019/1/2と表示されて欲しい
>セルK4には2019/1/4←意図通り
K2セルの数式を
=IF(COUNTIF(L2:IV2,"<0"),MAX(TODAY(),MIN(IF(L2:IV2<0,L$1:IV$1))-$J$1),"-")
前回同様、配列数式なのでCtrl+Shift+Enterで確定してください。
ではどうでしょうか?m(_ _)m
No.4
- 回答日時:
No.3です。
投稿後ふと思ったのですが・・・
>ただし、日付の結果が本日より前の日付になる場合は本日の日付
の「日付の結果」とはマイナス※日した日付のコトでしょうか?
それとも1行目に表示されている日付のコトでしょうか?
前回の数式は該当する1行目の日付が「本日」以降の場合に、マイナス※日(J1セルの数値)としています。
もし、本日または該当する1行目の日付のマイナス※日というのであれば
=IF(COUNTIF(L2:IV2,"<0"),MAX(TODAY(),MIN(IF(L2:IV2<0,L$1:IV$1)))-5,"-")
(前回同様配列数式です。)
としてみてください。
※ 上記数式の場合は必ず1行目の日付または本日より
マイナス※日(J1セルの数値)が表示されます。m(_ _)m
ありがとうございます。
日付の結果と言うのはマイナス*日した日付の事になります。
例えば、最初のマイナス数値がM列目⇒2019/1/6となっておりマイナス日付を5日とした場合、日付の結果的には
2019/1/1となりますが、本日の日付が2019/1/2の場合、2019/1/2と表示させたいです。
No.3
- 回答日時:
こんばんは!
>上記※日の数値はどこかのセルに整数として入力してあるのを使いたいです。
J1セルに単に「5」という数値だけを入れているという前提で・・・
K2セルに
=IF(COUNTIF(L2:IV2,"<0"),IF(MIN(IF(L2:IV2<0,L$1:IV$1))>=TODAY(),MIN(IF(L2:IV2<0,L$1:IV$1))-J$1,TODAY()),"-")
配列数式なのでCtrl+Shift+Enterで確定!(←必須★)し
フィルハンドルで下へコピーしてみてください。
※ エラー処理はしていません。
とりあえずIV列(256列目)まで対応できる数式にしています。m(_ _)m
ありがとうございます。
L列目の日付-*日が本日よりも過去の日付の場合は本日の日付が表示されるのですが、M列目以降の日付-*日が本日よりも過去の日付の場合、M列目以降の日付-*日が表示されてしまいました。
K列 L列 M列 N列 O列 P列・・・
1行目 2019/1/1 2019/1/3 2019/1/5 2019/1/7 2019/1/9・・・
2行目 -100 -100 -100 -100 -100・・・
3行目 100 -2300 -5000 -5100 -10000・・・
4行目 100 100 100 100 -10000・・・
上記で、本日が2019/1/2、J1セルに5と入力されている場合、
セルK2には2019/1/2←意図通り
セルK3には2018/12/29←過去の日付なので2019/1/2と表示されて欲しい
セルK4には2019/1/4←意図通り
No.2
- 回答日時:
これくらい条件が重なると作業行を使った方が良いかもしれません。
もし、それで良ければ、こんな感じです。添付画像のように、1行目を作業行として使います。非表示にしておけば、邪魔にならないですよ。蛇足ですが、「L列目以降の数値は昇順です」・・・降順ですよね?
【K1】=TODAY()
【L1】=IF(L2="","-",MAX($K1,L2-5)) ※Q1までオートフィル。
【K3】=OFFSET($L$1,0,IFERROR(MATCH(0,L3:P3,-1),-1)) ※必要な行までオートフィル。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelでASCを使って全角を半角...
-
今まで文字化けなく開けていたc...
-
Microsoft 365Excelの見開きペ...
-
Excel関数について教えてくださ...
-
マクロの処理が遅くなった
-
スプレッドシートで指定された...
-
エクセルの質問です。 F列からL...
-
Excel関数について教えてくださ...
-
エクセルのセル内に分数などの...
-
作成した数式を値として表示し...
-
ワークシートに出現したこの画...
-
条件付き書式設定で罫線を引き...
-
EXCELの散布図で日付が1900年に...
-
シートの情報を別のシートへま...
-
Excelでの文字色
-
【マクロ】VLOOKUPにて参照元に...
-
エクセルの文字が途中から消える
-
エクセルの数式バーのフォント...
-
エクセルでファイルの最終更新...
-
OFFSET関数を使用したいのです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報