• ベストアンサー

エクセル2007 関数

画像の添付ができていなかったため、、再投稿です。 よろしくお願いいたします。 添付の表の上の段のような表があるとしまして、下の表の赤字の部分に上の表のA列のどれかの数字を入れると下にずらっと上の表のデータを参照するようにしたいのですが、タオルの部分は他とセルと仕様が違うのでどのような関数を入れたらいいのか分かりません。 上の表はカラーが複数なければ空欄です。

  • p-ink
  • お礼率87% (130/149)

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.5

ありゃ、最大5色まであるんですね。 とすると添付画像のレイアウトで、下のような関数になります。 もはや、これらの計算式は、正気の領域を超えますね。 もし、VBAが扱えるなら、VBAの方がまだ 追いかけやすいコードになるだろうと思います。 B17 =INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0)),2,1) B18 =INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0)),2,1) B19 =TEXT(INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0)),4,1),"#") B20 =TEXT(IF(INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+1,1)="",INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+1,4,1),""),"#") B21 =TEXT(IF(AND(INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+1,1)="",INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+2,1)=""),INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+2,4,1),""),"#") B22 =TEXT(IF(AND(INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+1,1)="",INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+2,1)="",INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+3,1)=""),INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+3,4,1),""),"#") B23 =TEXT(IF(AND(INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+1,1)="",INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+2,1)="",INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+3,1)="",INDEX($A$1:$A$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+4,1)=""),INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0))+4,4,1),""),"#") B24 =TEXT(INDEX($A$1:$E$15,MATCH(1,INDEX(1/($A$1:$A$15=$B$16),0)),5,1),"#")

p-ink
質問者

お礼

うわー...本当におっしゃる通りですね。 詳しい方がそうおっしゃるなら、列がAAどころかB〇まであるので私には無理があると思いました。 こんなに考えていただいてとても感謝しています。

その他の回答 (5)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.6

作業列を使いましょう。 添付の図の例ではD列に1列挿入し、D2セルに↓ =A2*10+1 D3に↓を入れてD3を下にコピーします。 =IF(A3>0,A3*10+1,D2+1) 参照の欄をH1:I9にしました。 I1セルに番号を手入力 I2セルに =VLOOKUP(I1,A:F,2,FALSE) I3セルに =VLOOKUP(I1,A:F,3,FALSE) I4セルに =IFERROR(""&VLOOKUP(I$1*10+ROW(A1),D:E,2,FALSE),"") I4セルのコピーをI4:I8に貼り付け I9セルに =""&VLOOKUP(I1,A:F,6,FALSE) D列の作業列は非表示にします。

p-ink
質問者

お礼

ありがとうございます! 何度もやり直しておっしゃるようにコピペして入力してみたのですがカラー1~5とその下に表示されませんでした><

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.4

1行/1商品 と 2行/1商品 が混在したデータのため、 とても扱いにくいレイアウトです。 なにか事情があってそうしているのかもしれませんが 可能なら、カラー列を複数持ち、 1行/1商品のレイアウトにすることを強く推奨します。 もし、提示のレイアウトで表示するのであれば 下のような計算式になりましょう。 掲示しておきながらナンナンデスが、 今後のことを考えると、 このような計算式で対応するのは無理があるだろうと思います。 それでもよかったら、参考にしてみてください。 なお、品番と商品名は空欄になることを想定していません。 また、1商品にカラーは最大2つしかない前提です。 B8  =INDEX($A$1:$E$6,MATCH(1,INDEX(1/($A$1:$A$6=B7),0)),2,1) B9  =INDEX($A$1:$E$6,MATCH(1,INDEX(1/($A$1:$A$6=B7),0)),3,1) B10 =TEXT(INDEX($A$1:$E$6,MATCH(1,INDEX(1/($A$1:$A$6=B7),0)),4,1),"#") B11 =TEXT(IF(INDEX(A1:A6,MATCH(1,INDEX(1/($A$1:$A$6=B7),0))+1,1)="",INDEX($A$1:$E$6,MATCH(1,INDEX(1/($A$1:$A$6=B7),0))+1,4,1),""),"#") B12 =TEXT(INDEX($A$1:$E$6,MATCH(1,INDEX(1/($A$1:$A$6=B7),0)),5,1),"#")

p-ink
質問者

お礼

ありがとうございます!

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

[No.2補足]へのコメント、 》 …を分けなおす作業をなくしたい ヤッパリ。だから「参考」とした次第。 お示しのように結合セルを不規則チャンポンにするのは私の最も嫌悪する仕業です。 貴方の希望実現に意欲満々みたいな mt2015さんに期待しましょ! ※昨今稀な鮮明な添付図に敬意を表示します。

p-ink
質問者

お礼

考えていただいたのに使うことができなくて本当に申し訳ありません。 ありがとうございました!

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

ご参考 添付図参照 B7: =VLOOKUP(B$6,$2:$4,ROW(A2),FALSE)&""

p-ink
質問者

補足

申し訳ありません、上の段の表の形式で人から受け取って、下の表に自分で直してから仕事がしたいので、D,E列にカラーを分けなおす作業をなくしたいのです。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

補足願います。 ・参照したデータの品番が150になっていますが、151の間違いでしょうか。 ・カラーは最大何種類ですか。 ・色違いの物がある場合、E列の「カラー有り」は必ず入りますか?別な文言になったり入らない場合もありますか?

p-ink
質問者

お礼

補足の訂正の仕方が分からないのでお礼の欄で失礼します。 カラーは最大でも5つぐらいまでになると思います。

p-ink
質問者

補足

すみません、まだ自動でできなかったので手入力して間違えてしまいました。 おっしゃる通り151です。 E列はカラーありかブランクだけです。

関連するQ&A

  • エクセル2007

    よろしくお願いいたします。 添付の表の上の段のような表があるとしまして、下の表の赤字の部分に上の表のA列のどれかの数字を入れると下にずらっと上の表のデータを参照するようにしたいのですが、タオルの部分は他とセルと仕様が違うのでどのような関数を入れたらいいのか分かりません。 上の表はカラーが複数なければ空欄です。

  • エクセルの関数についての質問です。

    2つの行を比較して、ある列までは上の段を、それ以降の列は下の段を優先させる関数を教えてください。 例)画像参照ください、 1行目も2行目も数字が減っていきますが、2行目はある列から数字が一定になります。 画像の緑部分では1行目を、黄色部分からは2行目を優先させたいのです。 (数字が同じかそれより大きくなった時) 数字を打ち変えて活用したい表で、2行目の数字が一定になるタイミングは何列目になるかわかりません。 どなたかエクセルに詳しい方おりました、教えてください。 よろしくお願いいたします。

  • エクセルの関数、セルの参照について

    いつもお世話になっております。 添付ファイルのような表を作成しました。 やりたい事は、 (1)累計の欄に数字を直接記載する。 (2)単日の欄に当日と前日の数字の差を記載する(E10はD10-D5) という簡単な表なのですが、土曜日と日曜日は数字の変動がないため、見た目を考えて空欄にしたいと思ってます。 そうすると、4日のE20はD20-D5になるので、数式のコピーではうまく行きません。 今の私の知識だと、IF関数でダラダラと数式を作って行くしか思いつきません。 そこで、土日は金曜日の数字を記載して、条件付き書式で土日は白文字にして見た目だけ空欄にしようかなと考えました。  =weekday(B3)=1のときは白文字    =weekday(B3)=7のときは白文字 セル範囲はD5:E7  としたのですが、これだとD6とD7も白文字になってしまいます。 B3を絶対参照にすると、解決しますが、コピーした場合、また、セルの参照をするしかありません。 スミマセン分かりずらい文章をダラダラと書きましたが、要は、 (1)土曜日、日曜日は計算の対象から外したい場合は、どのような数式が最適でしょうか? (2)セルの参照方法として、B3が●●だったら、D5~D7を○○したい場合、B3セルを絶対参照すればいいわけですが、コピーした場合は、個別に参照しなおすしかないのでしょうか? どなたかご教示をお願いします。

  • エクセル2010 関数について

    例えばあるセルに1~100までの数字を入れた場合には「50」、101~200では「150」、201~300では「250」をそのセルに入力させるようにするには、どのような関数を使えばいいでしょうか? そのもととなる表を別のシートに作ろうと思っています。            1~100 は 50          101~200 は150          201~300 は250 参考となるURLなどあれば教えてください。

  • Excelで、IF関数を使用して空欄にしたところの数値を使用したいのですが

    Excel初心者です かなり特別なケースだと思うのですが IF関数を使って、{上と同じ数値なら空欄、そうでない場合は計算結果を表示} というのを、 E9 =IF(SUM(E8,C9)-D9=E8,"",SUM(E8,C9)-D9) という関数を使って作ってみました。 仮に、下のような数値の並びの場合 1 22 333 333 4444 4444 4444 55555 という場合 1 22 333 4444 55555 というように表示したいのですが この関数を見ていただくとわかるとおり 一つ上の数値を参照して計算するため 空欄であれば、そのセルの数値を”0”として認識してしまい 下の計算結果がハチャメチャなものになってしまいます。 空欄を表示しても、数値は参照したい というような場合、どのようにしたらいいのでしょうか もしくは、上の関数を使用した場合 E8が空欄の場合はE7の数値、E7も空欄の場合E6を参照する、というやり方はあるのでしょうか。 自分でも調べてみたのですが、同じようなケースの質問がなかったため質問させていただきました。 どうぞよろしくお願いいたします。

  • エクセルの関数について

    エクセルの関数について教えてください。 エクセルでセルを参照した関数を作る時、参照元が空欄の場合"#VALUE"と表示がでるのですが、出ないようにするにはIF文で条件を設定していますが、もっと簡単な方法はないでしょうか? 初歩的な質問ですみません。

  • Excel INDIRECT関数の使い方が分からない

    表という名前のSheetがあります。  A 4 1 5 2  : のように、表SheetのA4から下に連番で、    1~400まで数字がふってあります。 式という名前のSheetが式~式(399)まで、400Sheetあります。 400Sheetある式というSheetには表があり、入力されて文字は違いますが、表の配置は全く同じです。 式  のD6セルには 1。Q9セルには「あいうえお」と入力、 式(1)のD6セルには 2 Q9セルには「かきくけこ」と入力されています。 式Sheetが400枚あるので、D6セルには、400まで数字が連番で入力されています。 表SheetのA4セルが、もし空という前提で、1と入力した場合、式~式(399)までのSheetの中から一致した数字が合った場合、そのSheetのQ9のセルの値を返しなさい‥と関数を入れたいと思い、 「INDIRECT」関数を使用しました。 =INDIRECT("式(" & A4 & ")'!D6"  しかし、何度入力しても、REFと出てしまいます。 この関数を使用するのは初めてで、戸惑っています。 どうかご教授ください。

  • ExcelのIF関数を使って

    学校の成績一覧表を作っています。成績は◎、○、△の3段階でつけます。 一覧表の中に、◎と△だけをつければ、残りの空白セルには、マクロで○が入るようにしてあります。 Excelのバージョンは2003です。 しかし、クラスによって人数が違うので、自動的に○が入るようにしてあっても、どこまで入れたらいいのかは変わってきます。 そこで、氏名を入れるセルを参照し、「もし、このセルが空白だったら、その下のセルはすべて空白になる」というような関数を入れておけばいいのかなと考えました。が、その関数がわかりません。 どなたか、教えてもらえませんでしょうか?           C1  D1  E1  F1  G1・・・・・            伊   佐  鈴  山           藤   藤  木  田   B2   読む力    ○  ◎  △  ◎    B3   書く力     ◎  ○  ○  △ 分かりにくいでしょうが、上のような感じで作ってます。 上の場合、G1セルに名前が入っていないので、G2セルから下は、マクロでは○が入りますが、関数によって空白にしたいのです。 よろしくお願いします。

  • Excel 関数で困ってます

    携帯からの質問なのでわかりづらいかと思いますが まずA列からずっと例えばAQ列まで文字列での日付が続いておりその下のセルにはあるデータが下に続いており日別に縦割りにデータになっていますこの表を参照し違う表を作りたいのですが 入力規制で同じように日付を選択すれば下のセルに日別のデータが返るようにしたいのですが 関数はどのようにすればよいでしょうか? VLOOKとかだと表の作り上難しいかなと 急ぎの仕事なものでなんとか初心者にご教示いただければと

  • エクセルの関数を教えて下さい!

    エクセルで、セールスの成績表を作るのですが、今日はどのくらいの成績だったかというのを抽出したいので、その表の入力してあるセルの中で1番右のセルを参照するような関数があれば教えて頂きたいのです。もしかすると無いかもしれませんが、関数以外でも何か良い方法があれば教えて下さい! よろしくお願いします。

専門家に質問してみよう