こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの関数で数字の自動入力

A列に数字が入力されています。
B列に以下のような条件で、数字を入力します。

まずB1への入力は、
A1とA2からA31の差(A2-A1, A3-A1、・・・・A31-A1)をそれぞれ数字の若い順に計算し、
1)差の最大値が10以上のとき、B1に10と入力
2)差の最小値が-10以下のとき、B1に-10と入力
3)すべての差が、-10< <10のとき、B1には何も入力しない。
4)最大値が10以上、かつ最小値が-10以下の場合は、最初に確認されたほうを入力

B2への入力は、A3-A2、A4-A2、・・・A32-A2 を計算して上記と同じ用に入力します。
以下、同じようにB3, B4・・・に入力をしていきます。

関数を用いて、上記のような入力が可能でしょうか。

投稿日時 - 2007-08-21 17:01:56

QNo.3273899

暇なときに回答ください

質問者が選んだベストアンサー

4)の条件を実現するのが難しいですが、以下の式で多分できると思います。
B1に入力後、B2~B31にコピーしてお試しください

=IF(MAX($A$1:$A$31)-A1>=10,IF(MATCH(MAX($A$1:$A$31),$A$1:$A$31,0)<MATCH(MIN($A$1:$A$31),$A$1:$A$31,0),10,IF(MIN($A$1:$A$31)-A1<=-10,-10,10)),IF(MIN($A$1:$A$31)-A1<=-10,-10,""))

投稿日時 - 2007-08-21 17:41:54

お礼

ご回答ありがとうございます。
式の意味を理解するのに時間がかかりそうです。

投稿日時 - 2007-08-21 22:38:53

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

こういうのは、VBAでプログラムを組めば、書いてあるとおりの素直なロジックで組めるような気がする。
ーー
この問題は配列数式に適した問題のような気がする。
例データ
A1:A10 30は多すぎるので10にした
3
2
3
5
6
23
8
2
3
4

=$a$1-A2:A10
はA12:A20を範囲指定して
=$A$1-A2:A10と入れて、Shift,CTRL、ENTERを同時押しで
1
0
-2
-3
-20
-5
1
0
-1
となり
=MAX($A$1-A2:A10) S+C+Eで 1
=MIN($A$1-A2:A10) S;C;Eで ー20
が出る。
数直線で区間A,B,Cを考えると
ーーー|ーーーーー|ーーーー
ー(-10)--(+10)---
ーA-|---B--|----C--
最大を縦軸
最小を横軸
にとってマトリックスにすると(-のケースは考えなくて良い)
---A|B|C
A|X|Y|Z
B|-|U|V
C|-|-|W
このX-Wの組み合わせを考えればよい。
時間がかかるので、打ち切るが、後は興味があれば、質問者で考えてください。

投稿日時 - 2007-08-21 18:31:54

お礼

初心者の私にとって難易度の高い話ですが、理解できるように勉強してみたいと思います。ありがとうございました。

投稿日時 - 2007-08-21 22:54:42

ANo.4

#03です。先ほどの式を以下に訂正します

=IF(MAX(INDEX(A2:A31-A1,))>=10,10,IF(MIN(INDEX(A2:A31-A1,))<=-10,-10,""))

投稿日時 - 2007-08-21 17:34:42

お礼

ご回答ありがとうございました

投稿日時 - 2007-08-21 22:24:19

ANo.3

B1セルの式は以下になるでしょう。
=IF(MAX(INDEX(A2:A31-$A$1,))>=10,10,IF(MIN(INDEX(A2:A31-$A$1,))<=-10,-10,""))

下方向にコピーすれば範囲も変わります

投稿日時 - 2007-08-21 17:30:50

ANo.2

=if(max(A2-A1, A3-A1、・・・・A31-A1)>=10,10,if(min(A2-A1, A3-A1、・・・・A31-A1)<=-10,-10,""))
というところでしょうが・・・
これを30行やるのは結構めんどくさいですね。

もう少しなにかシンプルに出来そうなきはしますが・・・

投稿日時 - 2007-08-21 17:28:17

お礼

ご回答ありがとうございました

投稿日時 - 2007-08-21 22:16:57

ANo.1

IF関数で条件式を分岐させればいけそうな気がしますが。

投稿日時 - 2007-08-21 17:14:57

お礼

早速のご回答ありがとうございます

投稿日時 - 2007-08-21 22:11:37

あなたにオススメの質問