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

下記のようなデータ(その日の在庫数)があります。(A〜Gは列を表します)

A B C D F G
10-Feb 11-Feb 12-Feb 13-Feb 14-Feb 15-Feb
 17    22    2    0    0    5

数値が最初に13を切った日(つまり12-Feb)をセルに表示したいです。
下記の2通りどちらか方法あれば教えてください。

1. 列数をセルに返す=3
2. 先頭行の値をセルに返す=12-Feb

を行いたいです。

1はMatch関数を使用するのかと思いましたが、”左から右へとデータを読んで、13を下回る最初の値”というのが定義できずに困っています。下に他の商品データが続くの降順にデータを並べ替えることができません。
2はなんの関数を使うのかも不明です。 Index関数であれば、1と同じ問題でつまづいてしまいます。

お手数ですがお知恵拝借できると大変助かります。
よろしくお願いします。

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

  • 早急にご回答いただきありがとうございました。
    お返事が遅くなりすみません。
    どの回答も甲乙付け難いのですが、勉強になりました。
    重ね重ねありがとうございました!

      補足日時:2020/03/19 18:20

A 回答 (6件)

($A$2:$F$2<=13)という論理値の配列を生成して、TRUEを探します。


=match(TRUE, index($A$2:$F$2<=13, 0), 0)
「エクセル数式: 基準値以下の最初の値の入」の回答画像6
    • good
    • 1

こんにちは



1.は列番号を条件で除して、エラーを除く最小値を取れば求められます
 =AGGREGATE(15,6,COLUMN(A1:F1)/((A2:F2)<13),1)
(該当するものが存在しない場合はエラーとなります。)

2.は上の結果を利用して、1行目の値から参照すれば良いので
 =INDEX(1:1,AGGREGATE(15,6,COLUMN(A1:F1)/((A2:F2)<13),1))
(エラー処理はしていません)

>2はなんの関数を使うのかも不明です。
※ Index以外の関数だと、Offset関数を利用しても求められますね
    • good
    • 1

添付図参照


A4: =INDEX(1:1,MATCH(0,2:2,0))
「エクセル数式: 基準値以下の最初の値の入」の回答画像4
    • good
    • 1

こんにちは!



列番号だけを取得したい場合は表示したいセル(2行目以外)に
=MIN(IF(2:2<13,COLUMN(2:2)))

配列数式なので、Ctrl+Shift+Enterで確定!(←必須★)

②の先頭行のデータを返したい場合は
1行目はシリアル値の場合、表示したいセル(セルの表示形式はユーザー定義から d-mmm とし)
=INDEX(1:1,MIN(IF(2:2<13,COLUMN(2:2))))

こちらも配列数式になります。

※ エラー処理はしていません。m(_ _)m
    • good
    • 1

=MIN(IF(A2:F2<13,1,1000)*COLUMN(A2:F2))



ctrl+enter

ですか
    • good
    • 1

=INDIRECT(ADDRESS(1,MIN(IF(A2:F2<13,1,1000)*COLUMN(A2:F2))))



ctrl+enter

ですか
    • good
    • 1

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