• 締切済み

データの引用の応用? (Excel2003)

こんばんわ。いつも大変お世話になります。 以前このサイトで、データの引用を教えて頂いたのですが、今回はその応用のような事をしたいのです。 自分でも色々錯誤してみましたが、どうしても上手くいかずまた皆様のお力添えを頂ければと思います。 まず、以下のようなマスタ2個がsheet1にあります。 (マスタ1)      (マスタ2)  ┌──┬──┬───┐┌──┬──┬──┐  │以上│以下│割合 ││以上│以下│割合│  ├──┼──┼───┤├──┼──┼──┤  │ 1│10│100││ 1│ 5│60│  ├──┼──┼───┤├──┼──┼──┤  │11│20│110││ 6│10│75│  ├──┼──┼───┤├──┼──┼──┤  │21│24│120││11│19│80│  └──┴──┴───┘└──┴──┴──┘ で、結果から言いますと以下のように表示させたいのです。  G1  H1   I1  J1   K1  N1 ┌──┬──┬───┬──┬───┬──┐ │15│10│100│ 5│110│80│ └──┴──┴───┴──┴───┴──┘ まず、 G1セルに"15"と数値を入力します。 H1セルにはマスタ1からG1に入力した数値"15"のうち"10"は含むので"10"を表示させる。 I1セルはその割合である"100"を表示させる。 J1セルは"15"からH1セルから引いた残り分を表示させる。 K1セルはその割合である"110"を表示させる。 N1セルは"15"の割合である"80"を表示させる。 例えば、G1セルが"22"の場合はH1,J1セルは"10"L1セルは"2"を表示させ、I1,K1,M1セルにはそれぞれの割合を表示。N1は"100"(マスタに書いてありませんが20以上は100です) 大変、分かりにくい質問かとは思いますが何とぞよろしくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

#1さんと同感。判り難い。 表にしてあるのは判りやすいのだが (1)Sheet1の2つの表マスタ1とマスタ2はどういう関係にあるのか。 機密のためか、抽象化されすぎていて、イメージが沸かない。回答候補者は初めてこの文章に接するのであることを お忘れなく。 (2)数値"15"のうち"10"は含むので"10"を表示させる。 はどう言うロジックから来るのか。 (3)N1セルは"15"の割合である"80"を表示さ 途端にマスタ2に移っているようだが、マスタ2を使うケースとマスタ1を使うケースの説明がない。 (4)エクセルの関数でやりたいと言うことですか それならVLOOKUP関数のTRUE型しか方法はないと思うが 「色々錯誤してみましたが」とあるが、やって見ましたか。VLOOKUPでは、どこで困りましたか。そこを書けば、問題が絞れる。 簡略に書くと下記ですか? G1は入力 H1は表引き?? I1は表引き(マスタ1) J1は演算(引き算) K1は表引き(マスタ1) N1は表引き(マスタ2?) 「こんばんわ・・・のお力添えを頂ければと思います。」は不要。本質問と関係なく、長いなと言う印象を与えるだけ。

Lemmings
質問者

補足

大変説明不足な点が多々あり申し訳有りません。 今一度、質問要点を見直し、再度質問させて頂くことに致しました。 回答を下さった皆様には、大変感謝しております。 この場をお借りして御礼申し上げます。今後もよろしくお願い致します。

  • hakone
  • ベストアンサー率54% (40/73)
回答No.2

こんにちは。 よく分からないですけど、 H1 =MIN(G1,10) I1 =VLOOKUP(H1,A2:C4,3,TRUE) J1 =IF(G1>10,MIN(G1-H1,10),"") K1 =IF(J1="","",VLOOKUP(H1+J1,A2:C4,3,TRUE)) L1 =IF(G1>20,MIN(G1-H1-J1,10),"") M1 =IF(L1="","",VLOOKUP(H1+J1+L1,A2:C4,3,TRUE)) N1 =IF(G1>=20,100,VLOOKUP(G1,D2:F4,3,TRUE)) でどうでしょうか?

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

補足御願いします。 G1セルに"15"と数値を入力します。 H1セルにはマスタ1からG1に入力した数値"15"のうち"10"は含むので"10"を表示させる。・・・(1) I1セルはその割合である"100"を表示させる。・・・(2) J1セルは"15"からH1セルから引いた残り分を表示させる。 K1セルはその割合である"110"を表示させる。・・・(3) N1セルは"15"の割合である"80"を表示させる。・・・(4) 例えば、G1セルが"22"の場合はH1,J1セルは"10"L1セルは"2"を表示させ・・・(5) (1)と(5)が整合しません。「22」の場合は、J1は20にならないのですか? (2)はマスタ1からですか? (3)の「その割合」とはどのセルに対するどちらのマスタを言っています? (4)はマスタ2からですか?

Lemmings
質問者

補足

説明不足なところがあり申し訳有りませんでした。 (1)と(5)についてですが 簡素のため省略してましたが本来は以下のような感じです。 マスタ1は 1年~10年で期間は10年      11年~20年で期間は10年      21年~24年で期間は4年 ですので、G1セルが15の場合は10+5=15 G1セルが22の場合ですと10+10+2=22となるようにしたいのです。 (2)の割合100というのは、マスタ1に対応する割合です。 (3)についてですが、上記でも説明いたしましたが、10年の期間に対して割合100,残り5年の期間に対して割合110という意味です。 (4)はマスタ1のように15年を分けて考えないので割合はマスタ2の割合80を表示させたいのです。 要点を得ていない、質問でご迷惑をお掛けしました。この補足で大丈夫でしょうか。よろしくお願い致します。 

関連するQ&A

  • お判りになる方、是非ともお助け下さい(Excel)

    Excel関数で、以下の関数を使用したいのですが、どうしてもうまくいきません。どうすればよいでしょうか =IF(M5="",L5,IF(AND(M5="",L5=""),K5,IF(AND(M5="",L5="",K5=""),J5,IF(AND(M5="",L5="",K5="",J5=""),I5,IF(AND(M5="",L5="",K5="",J5="",I5=""),H5,IF(AND(M5="",L5="",K5="",J5="",I5="",H5=""),G5,IF(AND(M5="",L5="",K5="",J5="",I5="",H5="",G5=""),F5,IF(AND(M5="",L5="",K5="",J5="",I5="",H5="",G5="",F5=""),E5,IF(AND(M5="",L5="",K5="",J5="",I5="",H5="",G5="",F5="",E5=""),D5,IF(AND(M5="",L5="",K5="",J5="",I5="",H5="",G5="",F5="",E5="",D5=""),C5,IF(AND(M5="",L5="",K5="",J5="",I5="",H5="",G5="",F5="",E5="",D5="",C5=""),B5,IF(B5="",B5,M5)))))))))))) 左から右に4月から3月までの行方向の表があり、入力されたら数値を反映させたいのですが、3月と2月は問題ないものの1月からは反映されません

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

  • エクセル データ抽出

    よろしくお願いします。 セルA3:E13にこのようなデータが入っています。 G4:H4にデータを入力すると、G8:K12に自動的にデータを抽出したいのですがよい方法はありませんでしょうか。 セルG4:H4のデータを入力しなおすたびに、条件に合うデータをG8:K12に抽出したいです。 実際にはもっと膨大なデータが入り、増え続けます。 エクセルに弱いのでどなたかお力添えください。 よろしくお願いいたします。

  • <Excel> 特殊なデータ形式に加算した関数

    以下の形式のデータに1を加算する関数を作りたいのですが、    H000000←6桁の数値(000000~999998)    ↑  アルファベット1文字(A~Z) 例えばA1がデータ、B1に計算結果を表示させるのに    A1        B1 H000000 → H000001 H000002 → H000003 J001004 → J001005 K099999 → K100000 LEFT、RIGHT関数を使って試みたのですが、頭の0が消えてしまいます(J1005みたいに)。ご指導お願いします。なお数値は全角でなくてもかまいません。

  • HLOOKUPで複数の結果を取得する方法

    元データ 1  2  4  2  2  2  3  3  3  2  1 A B  C D E  F  G  H  I  J  K から、以下のように、 1を入力すると、A と K が、 3を入力すると、G と H と I が右のセルに表示される、といったものを 作成しているのですが、なかなかうまくいきません・・・。 ↓入力データ 1  A   K 2  B   D   E   F   J 3  G   H   I 4  C   ↑   ↑ここから右、HLOOKUPで引っ張れないデータ   ↑HLOOKUPで引っ張れるデータ HLOOKUP関数を駆使すれば、なんとかなりそうな気もするのですが・・・ どなたかご教授願えないでしょうか??

  • excel2000  vlookupの逆?

      A B C D (1) 1 h s g (2) 2 f y k (3) 3 d t i (4)□ □ 以上のような表があって、 「A4」に文字を入力すると,その文字に対応した行の一番左端の数値(A列)が「B4」に返されるようにしたいのですが B4にどのような関数を使えば良いでしょうか? たとえばA4に「f」と入力するとB4が「2」となるようにしたいのですす。 以下同様にt→3,g→1,i→3,y→2,h→1 といった具合です。 何卒よろしくお願いいたします。

  • 入力されたときのみ有効になる、excel関数教えてください!

    入力されたときのみ有効になる、excel関数教えてください! たとえば、以下のような関数を入れた場合、 =(J3*0.25-250)-(800-K3) セルが空白のときは、常に-1050と表記されてしまいます。 結果、したの合計金額に反映されてしまいます。 それを防ぐために、 特定のセルJ3とK3に値が入力されたときのみ、セルが有効になる方法はありますでしょうか。 J3とK3になにかしらの数値が入っていない場合はゼロにしたいのですが。 初歩的な質問でもうしわけございませんが、よろしくお願いします。 よろしくお願いします!

  • 1つのセルの数字を複数のセルに1文字づつ表示したい

    こんばんは。 いつも勉強させていただいています。 下記について、ご教示いただければ幸いです。 K1セルには、最小で1桁から最大で9桁までの数値が入力されます。 それを A1からI1までに1つづつ表示させたいのです。 例1) K1 に 10105 と入力した場合 A1からD1まではブランク E1に1、F1に0、G1に1、H1に0、I1に5 例2) K1 に 101050235 と入力した場合 A1に1、B1に0、C1に1、D1に0、E1に5、F1に0、G1に2、H1に3、I1に5 なお、同じシートの他のセルには0を入力する場合があるため、「ゼロ値のセルにゼロを表示する」のチェックを外すことはできません。 私なりに考えたのは、K1セルの数値をL1に =TEXT(K1,"000000000")として文字にし、M1から右のセルに =MID($K$1,1,1) というように各桁を抜き出す方法だったのですが、10000 のように丸い数字をK1に入力すると 1 は表示できても 0 がブランクになってしまいます。 いい方法がありましたら、ぜひご教示下さい。 よろしくお願いいたします。

  • エクセルのマクロ記述について

    下記の処理をエクセルのマクロで行いたいのですが、どのように記述したよいか教えてください。 4行目から入力されている行まで下記の処理をマクロで行う。 1.J列のセル入力がCIRCLEの行で、B~E列の数値が同じセル間を結合する。 2.K列のセル入力がCIRCLEの行で、F~I列の数値が同じセル間を結合する。 3.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じ場合、B列をB列の数値XC列の数値とし、B~E列のセルを結合する。 4.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じ場合、F列をF列の数値XG列の数値とし、F~I列のセルを結合する。 5.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じでない場合、B列をB列の数値XC列の数値とし、B,C列のセルを結合する。又、D列をD列の数値XE列の数値とし、D,E列のセルを結合する。 6.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じでない場合、F列をF列の数値XG列の数値とし、F,G列のセルを結合する。又、H列をH列の数値XI列の数値とし、H,I列のセルを結合する。 7.J列のセル入力がSHAPEの行で、B~E列は何もしない 8.K列のセル入力がSHAPEの行で、F~I列は何もしない

  • エクセルでD11.G11.J11.M11のセル中一番小さい数値を赤字で

    エクセルでD11.G11.J11.M11のセル中一番小さい数値を赤字で表示させたい 添付した表でリースの単価を比較しています D11.G11.J11.M11は月極で E11.H11.K11.N11は日極です 上の薄緑部分の日数や月数を任意で入力出来るようにしてあってD11~N11の数値が変動します 業者も増やしたいと思っていますが目視で安い業者を探すのは間違いのもとなので赤字で目立つようにしたいのです

専門家に質問してみよう