- ベストアンサー
エクセルの関数を複数組み合わせる方法
地名と時間を元に決まっている数字を書き入れるような関数をどうすれば作れるか教えていただけませんか?? 例えばA1列に地名(TOKYO,OSAKA,NAGOYAのどれかが入る)B列に時間(0~24H)が入力してあり、C列にAとBの条件が合う時に、それに対する数字をつけたく思います。 例) TOKYO:24H以上で50、10H以上24H未満で30、5H以上10H未満で20、5H未満で0 OSAKA:24以上で100、10H以上24H未満で50、5H以上10H未満で30、5H未満で0。 NAGOYA:24以上で80、10H以上24H未満で60、5H以上10H未満で350、5H未満で0。 のように地名と時間によって出てくる数字を変化させたいのですが、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Index関数とMatch関数の組み合わせがよろしいかと 条件を一覧表にして、表引きする 参考に 一覧表を“縦横”に調べ、該当するデータを取り出す http://pc.nikkeibp.co.jp/pc21/tech/excel36/26/index.shtml C列に式を入れ下段にコピーですね
その他の回答 (2)
既に正答が出ていますが・・・。 <A>_______<B>_________<C>__________<D><E><F><G> TOKYO__0:00:00______00:00:00 1__00__00__00__00 TOKYO__5:00:00______00:05:00 1__20__00__00__20 TOKYO__12:00:00____00:12:00 1__00__30__00__30 TOKYO__13:00:00____00:13:00 1__00__30__00__30 TOKYO__23:59:00____00:23:59 1__00__30__00__30 TOKYO__24:00:00____01:00:00 1__00__00__50__50 TOKYO__25:00:00____01:01:00 1__00__00__50__50 C=TEXT(DAY(B1),"00") & ":" & TEXT(HOUR(B1),"00") & ":" & TEXT(MINUTE(B1),"00") D=(A1="TOKYO")*1 E=(C1>="00:05:00") * (C1 < "00:10:00")*20 F=((C1>="00:10:00") * (C1 < "01:00:00"))*30 G=(C1>="01:00:00")*50 H=(E1+F1+G1)*D1 このように小学校3年生レベルの足し算、掛算でも出来ないことはありません。 しかし、これは非現実的です。 Hの式を展開すれば、ものすごーい長さになります。 もう15年も前になりますが、法人税申告書作成システムで掛かる式を組み込もうとした税理士がおられました。 そうして、式の長さ制限に引っかかって頓挫されてヘルプの電話。 そこで、私が採用したのが<表引き方式>です。 そして、<表引き方式>ゆえに法人税申告書作成システムは今でも現役で活躍しています。 No1、No2さんの<表引き方式>が一番だなーと思う理由です。
お礼
早速の回答ありがとうございます。 <表引き方式>という言葉は初めて聞きましたが、法人税申告書作成システムでこのやり方が活躍しているとは知りませんでした。 ありがとうございます。
A B C D E F G H I 1 場所 時間(H) 数値 0H 5H 10H 24H 2 TOKYO 19 30 TOKYO 0 20 30 50 3 OSAKA 31 100 OSAKA 0 30 50 100 4 TOKYO 7 20 NAGOYA 0 350 60 80 5 NAGOYA 26 80 6 OSAKA 1 0 7 NAGOYA 9 350 8 OSAKA 15 50 9 NAGOYA 22 60 10 TOKYO 33 50 11 TOKYO 3 0 12 NAGOYA 4 0 13 OSAKA 8 30 C2: =VLOOKUP(A2,E$2:I$4,MATCH(B2,E$1:I$1),FALSE)
お礼
わざわざ、式まで作成していただきありがとうございました。 今後の参考にさせていただきます。
お礼
Index関数とMatch関数なんて初めて知りましたし、参考ページを勉強し理解する事ができました。 ありがとうございました。