[[20040612185505]] 『C列の値の0.9以下の値をB列から探したい。』(正) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『C列の値の0.9以下の値をB列から探したい。』(正)

毎度お世話になっています。
すみませんが、どなたか教えてください。

最初のC2はA2を入力
C3以降にはIF(D2="B",A3,0) がコピーされています。

C2の値の0.9以下の値をB列のB3以降から探し,D列にBと入力したい。

D列にBが入力されたらC列の次の行にはA列の値が入力されている。

D3以降にはどのような計算式を入力すればよろしいでしょうか。

よろしくお願いします。  (正)

	A	B	C	D
1	データー1	データー2	データー3答え
2	14100	13750	14100	
3	13210	13400	0	
4	13260	13990	0	
5	13700	13540	0	
6	13850	13700	0	
7	13300	12950	0	
8	12350	12090	0	B
9	11690	11800	11690	
10	11700	11480	0	
11	10880	10370	0	B
12	9770	10700	9770	
13	11000	11160	0	
14	10600	11880	0	
15	11280	10830	0	
16	11700	11280	0	
17	11080	11080	0	
18	10480	10200	0	
19	9800	9850	0	
20	10250	10100	0	
21	9890	10150	0	
22	9950	9990	0	
23	9900	10020	0	
24	10090	9710	0	
25	9510	9350	0	
26	8750	8670	0	
27	8570	8580	0	B
28	8300	8200	8300	
29	7950	8650	0	
30	9050	8500	0	

 こんばんは。

 >C2の値の0.9以下の値をB列のB3以降から探し...
 この、[0.9以下] というのは [90%以下] と解釈していいのでしょうか?

 D2 にも 14100 と入力して下さい。
 D3 に
=IF(A3<INDEX(D$2:D2,MATCH(10^17,D$2:D2))*0.9,B3,"")
 として下にコピー。
 セルの表示形式を、ユーザー定義で "B"  とします。

 C3 に
=IF(CELL("type",D2)="v",A3,0)
 として下にコピー。
 C3 にも数値が出ますが、じゃまなら IF を使って消して下さい。

 また、ご提示の例だと
 27	8570	8580	0	B
 と、27行目に B が出力 と書いてありますが、上の数式だと、
 26	8750	8670	0	B
 となります。
 この数式方法だと、ダメなのでしょうかね。  (jun53)


(jun53)さん。
早速のご教授ありがとうございました。

質問の不手際申し訳ありません。

90%以下そのとおりです。
C2の値×0.9とするところを間違いました。

また、27行目のB、28行目の8300も、26行目のB、27行目の8570にするところを間違いました。

この数式で結構です。たいへん喜んでおります。
長い間悩んでいたことが解決できました。

すみませんがもう少し教えてください。

>セルの表示形式を、ユーザー定義で "B" とします。

とありますが、D2:D30まで範囲指定、書式のセルのユーザー定義まではわかるのですが、
それからどうするのか解かりません。

また、なぜD2にも14100を入力するのかなと思いましたが、C3以下の式を変更するためですね。

おんぶにダッコで申し訳ありませんが、今後の勉強のために二つの式の解説をしていただけないでしょうか。

よろしくお願いします。  (正)


 うまく説明できるといいのですが、

 ユーザー定義で、右側の [種類] の窓に "B" と入力しOK します。
 自分用の表示形式を作る、ということなんです。
 D列に B 表示 というのに、もしも重要な意味が無いのでしたら、
 [標準]の形式で、数値表示になりますね。

 D2 に 14100 入力は、
 =IF(A3<INDEX(D$2:D2,MATCH(10^17,D$2:D2))*0.9,B3,"") の中の
 D$2 で、基本となる数値になります。
 これが無いと *0.9 で探す最初の値が出てきませんね。

 MATCH(10^17,D$2:D2) はこの学校で再三出てくる数式で、
 簡単に言えば、[数式入力以前] の時点での [最終(最新)]値を認識させる式です。
 先頭データの 14100*0.9 数値が [ A3<  ←下にコピーするので可変] になった時点で出力します。
 以下、次の A3<INDEX(D$2:D2,MATCH(10^17,D$2:D2))*0.9 を探します。

 詳しくは、
[[20031021160546]]『常時シート1の最右列の値をシート2に記す方法』(j)
[[20030806101456]]『一覧の中から最終データを取り出す』(あるふ)
 [kkk]さんの説明がわかりやすいと思います。

 =IF(CELL("type",D2)="v",A3,0)  は、
 =IF(D2="",0,A3)  でもいいようです。
 D列に B 表示 というのに固執して考えすぎてしまいました。
 CELL("type",D2) は、エクセルヘルプでも簡単に説明して有るようです。

 以上で、いかがでしょうか?  (jun53)


(jun53)さん。有難うございました。

ユーザー定義よく解りました。
INDEX,MATCH 関数は慣れていないのでこれを機会に勉強させていただきます。

今後とも宜しくお願いします。  (正)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.