EXCELの条件式の質問です。


ある一つのリストがあり、
リスト1
4    5
5    9
8    23
10   34
30   43

他にデータがあるとします。
データ1






データの数字がリスト1の4以下であれば5を返す、5以下ならば
9を返す(対応した右のデータです)といった条件式をif文だけでつくるとすごく長くなってしまいました。
他に簡単な方法はありますでしょうか。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/10 17:41:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

ポイント50pt

VLOOKUP 関数を使うと、こんな感じになります。
f:id:a-kuma3:20121107143726p:image

関数を素直に使いたかったので、リスト1の方に細工をしています。
比較する数字を1大きくしたのと、返す値を一行ずらしてます。
31以上のときの100は、追加しました。



【追記】
補足を見ましたが、考え方は同じです。
f:id:a-kuma3:20121107145928p:image

補足にあった数字を使うのと、リスト1の細工を式でやるようにしてます。
「リスト1’」は、以下のように作ってます。

  • D列は、A列の行をひとつずらして、1足したもの
  • E列は、B列と同じ
他5件のコメントを見る
id:a-kuma3

迂闊系回答者なものですから、ドキドキしてました (^^;

2012/11/07 16:26:22
id:shiotaQ

迂闊系質問者を卒業するようがんばります^^

2012/11/07 16:35:46

その他の回答1件)

id:Silvanus No.1

回答回数180ベストアンサー獲得回数71

ポイント50pt


画像の黄色のセルを補って下さい。
A2には0を、B2にはB3と同じ値を入れて下さい。
緑色のセルE2に、数式バーに表示されている式
"=VLOOKUP(D2,$A$2:$B$7,2,TRUE)"を入力し
E3:E6へペイストして下さい。
-----ここまでの回答は間違い!-----
【改訂版】
無い頭絞って考えました!

E2の式"=SUMPRODUCT(($A$2:$A$14<D2)*($A$3:$A$15>=D2)*$B$3:$B$15)"
リストは、上に"0"を一つ付け加えるだけでOKです。
もしまた間違ってたらゴメンナサイ…orz。

他2件のコメントを見る
id:shiotaQ

すごいです。出来ていました。いろいろな方法があるので面白いですね。
ありがとうございます。

2012/11/07 19:31:57
id:Silvanus

よかったです!…ほっとしましたw。

2012/11/07 20:46:43
id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

ポイント50pt

VLOOKUP 関数を使うと、こんな感じになります。
f:id:a-kuma3:20121107143726p:image

関数を素直に使いたかったので、リスト1の方に細工をしています。
比較する数字を1大きくしたのと、返す値を一行ずらしてます。
31以上のときの100は、追加しました。



【追記】
補足を見ましたが、考え方は同じです。
f:id:a-kuma3:20121107145928p:image

補足にあった数字を使うのと、リスト1の細工を式でやるようにしてます。
「リスト1’」は、以下のように作ってます。

  • D列は、A列の行をひとつずらして、1足したもの
  • E列は、B列と同じ
他5件のコメントを見る
id:a-kuma3

迂闊系回答者なものですから、ドキドキしてました (^^;

2012/11/07 16:26:22
id:shiotaQ

迂闊系質問者を卒業するようがんばります^^

2012/11/07 16:35:46
id:shiotaQ

すみません。

リストの列1は徐々に大きい値になっている。

リストの中で使っている数字は例

という前提を説明するのが忘れていました。

具体的には、

リストが

432000 1296000

516000 1548000

600000 1800000

684000 2052000

768000 2304000

852000 2556000

936000 2808000

1020000 3060000

1104000 3312000

1188000 3564000

1272000 3816000

1356000 4068000

1440000 4320000

データが

3000

12000

15000

30000

115000

200000

400000

450000

500000

550000

600000

650000

455000

470000

485000

500000

515000

530000

545000

560000

575000

590000

605000

620000

635000

650000

665000

680000

695000

710000

725000

740000

755000

770000

785000

800000

815000

830000

845000

860000

875000

890000

905000

920000

935000

950000

965000

980000

995000

1010000

1025000

1040000

1055000

1070000

1085000

1100000

1115000

1130000

1145000

1160000

1175000

1190000

1205000

1220000

1235000

1250000

1265000

1280000

1295000

1310000

1325000

1340000

になります。

すみません。もうひとつ前提として、返ってくる値は近似ではなくデータの値がリストの列1以下ならば列2を返す

という式が欲しいです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません