• ベストアンサー

エクセル(関数)について、教えて下さい

先日、下記の質問をさせていただき、回答通り制作して、大変助かりました。 そこで、もう1列増やして、在庫数も表示できるようにしたいのですが、教えていただいたものを応用してるのですが、上手くいきませんので、またご教授をお願いします。 B列を入力した場合、必ずD列も入力します。 先日の質問内容&回答 http://oshiete1.goo.ne.jp/qa5059146.html よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 質問の表の通り、個数が入力されている行の在庫は必ず何か数値が入っているということですね? すなわち、日付・在庫のセルは行ごとに 両方とも必ず入力されているか、もしくは両方とも空白という事で 説明されて頂きます。 前回も回答させていただいているみたいです その方法とまったく同じになってしまいますが・・・ ↓の画像のように表を作成してD列を作業列とさせてもらっています。 D2セル =IF(COUNTBLANK(B2:C2)=2,"",ROW()-1) として下へオートフィルでコピー F2セル =IF(COUNT($D$2:$D$17)>=ROW()-1,INDEX($A$2:$A$17,SMALL($D$2:$D$17,ROW()-1)),"") G2セル =IF(F2="","",VLOOKUP(F2,$A$2:$C$17,2,0)) H2セル =IF(F2="","",VLOOKUP(F2,$A$2:$C$17,3,0)) そして、F2~H2セルを範囲指定した後にこれらをオートフィルで下へコピーします。 尚、元の尿は6/16までしか作っていないので 行の方はアレンジしてみてください。 これで理解していただけたと思いますが、 結局、列が増えてもVLOOKUP関数の範囲と検査列番号が変わるだけで やり方は列が増えても問題ないと思います。 以上、参考になれば幸いです。m(__)m

その他の回答 (5)

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

VLOOKUPやINDEX関数の「列を指定をしている」第3引数があります。ここを2,3など具体的に指定せず、Column()-x(Xで調節)すればよいのです。 すると右方向に式を複写したとき連続項目を持ってくるとき 自動的に変わってくれるので、各列で式をいじくる必要がなくなります。 この質問以外にも応用する場合があります。 googleで「imogasi方式」で照会すれば、連番を作業列で振り、別シートで行と連番を関連付けて持ってくる手法で、たくさん回答してます。

回答No.5

前回の回答#4です >>E1セルに =IF($D2="","",INDEX(A:A,$D2)) としましたがF2セルへの入力の間違いです m(_ _)m で1列増えても同じで、右へのオートフィルが一つ増えるだけです 回答のあった関数くらいは理解してほしいと思います

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No3です。 E2セルへ入力する式は次のようにしてください。 =IF(COUNTIF($D:$D,ROW(A1))=0,"",INDEX($A:$C,MATCH(ROW(A1),$D:$D,0),COLUMN(A1)))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

D2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(OR(A2="",COUNT(B2:C2)<>2),"",MAX(D$1:D1)+1) E2セルには次の式を入力し、G2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(D:D,ROW(A1))=0,"",INDEX(A:C,MATCH(ROW(A1),D:D,0),COLUMN(A1)))

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

関数を使わない方法です 「個数」セル(B1)にオートフィルターを設定します (データ -> フィルタ -> オートフィルタ) 「個数」のオートフィルタで「空白以外のセル」を選択(リストの一番下) 選択されたデータ(A1~)をドラッグしてコピーし、E1 に貼り付け 「個数」のオートフィルタで、「すべて」を選択します 関数使わないので、列や行が増えてもOKです

関連するQ&A

  • エクセル関数を向教えてください!!!

    (1)売上表があります。 ちがうシートに(2)在庫表があります。 (2)在庫シート D列商品コード L列入出庫数 の表があります。 (1)売上シートのE列に商品番号を入力すると入力に応じて (2)在庫シート のL列入出庫数を減らすようにしたいです。 どのようにしたらできるのでしょうか?? 関数は無知で見よう見まねでやっています。 詳しい方、教えてください。よろしくお願いいたします。

  • エクセル 条件にあったセル移動

    表題の質問をさせていただきます。 以下の表があります。 A列…商品コード(都度入力) B列…商品名(別シートから個々の名称をVLOOKUPで表示) C列…条件(別シートから「買取」「委託」のどちらかがVLOOKUPで表示) D列…買取在庫数(都度入力) E列…委託在庫数(都度入力) 現在はA列に商品コード入力後にC列の条件(買取か委託)を確認し、D列の買取在庫数かE列の委託在庫数の どちらかに在庫数を入力しています。 セルの移動は矢印キーかマウスを利用しています。 これを、商品コード入力→Enter後に 条件を加味して 買取在庫数か委託在庫数のセルに自動で移動して 在庫数入力→Enter後に 次行の商品コード入力セルに自動で移動するようなことが出来ないかうかがいたいのです。 在庫の条件が無ければ↓のかたの http://okwave.jp/qa3080856.html  やりかたで可能だったのですが、条件が ある場合の回答を見つけることが出来ずに質問させていただきました。 エクセル2003です、よろしくお願いいたします。

  • エクセル2007 関数を教えてください

    以前ここで質問をさせていただきました(下記アドレス参照) http://okwave.jp/qa/q8033425.html それでデータシートD列に数字を入力し、それを表示させるようにと質問をしてそれは解決したのですが、今度は数字ではなく文字(名詞)を表示をさせたいと思うのですが、単純に今まで数字を入力していたセル(D列)に名称を入れたところ「0」が表示されてしまいます。 文字(名詞)を表示させるためにはどのようにすればいいのでしょうか?

  • エクセル アンケート集計 (除く)関数を教えてください。

    いつもお世話になっております。 以前に http://oshiete1.goo.ne.jp/qa2998923.html この質問をさせていただきアンケート集計をすることができたのですが、今回は複数回答が1~11まであります。 教えていただいた B1:=IF(ISERROR(FIND("1",A1)),0,1) この数式ですと、10、11もカウントされてしまいます。 A列に複数回答の数字が1~11まで一つのセルに入っていて それをセルを11個用意して、B列=1、C列=2というようにわけたい 場合はどのようにしたら良いでしょうか? (例)   A    B   C   D 1 1,2,11  1   2 2 2,10       2 3 3,4,5          3 4 1,5,11  1 5 10,11 宜しくお願い致します。

  • エクセル関数について

    いつもお世話になっております。 今回は下記についてご教授頂きたくてご質問させて頂きます。 下記の数式を作成しました。 ='フォームの回答 1'!D2 D2の「2」の部分を変更したいので、AN1に入力した数値で 変動する式を作ろうと思い下記に変更しましたが、うまく行きません。 ='フォームの回答 1'!D & "'" & AN1 & "'" どう書けば良いのかご教授下さい。 宜しくお願い致します。

  • エクセルで表示上だけ空白にしたい。

    エクセルで、A列は日付、B列は受入数、C列は払出数、D列は在庫数という表を作っています。 日付は入っていても、受入か払出に入力があるときだけ在庫数を表示し、 受入、払出ともに入力がない日は、在庫も空白の表示にしたいです。 考えぬいて、 IF(AND(B2="",C2=""),"",D1+B2-C2) で、成功したかに思えましたが、 空白セルの次の行になると、 在庫数が空白なっているため、エラーになってしまいます。 在庫数を表示上だけ空欄にしたいのですが、 考え方から違っているのでしょうか。 どうかご教授お願いいたします。

  • エクセル2007 IF関数について教えてください

    お世話になります。 どうしてもIF関数がうまくできず困りはてています。 下記のような項目を含むデータを2万件くらい抽出しています。 A列     B列  C列      D列 E列 状況    拒否理由       注文数   確認数 (1) 在庫不足   入力ミス  1     0 → キャンセル (2) 在庫不足       1      0 → 未処理 (3)                 5        0 → 未処理 (4)                 1       1 → 処理済 (5)   お客様キャンセル      10    0     →     キャンセル 未処理の件数を管理したいのですが、キャンセル扱いとなる条件を除く IF関数をうまく作成できません。 =IF(AND(D2>0,E5>0),"完了","未処理") といったように1個の条件についてはなんとかできるのですが、 B列が空欄or文字の入力有、C列が空欄、E列が0の数字の場合、D列の 数字を表示しなさい、といったようにまとめて、条件式をつくることができません。 何個かつなげると、TRUE、FALSEと表示され指定する列の(この場合D列)数字が表示 できません。 IF関数でなくてもよいのですが、未処理(キャンセル扱い除く)条件のみの数字を表示させる 方法をご教示お願いいたします。

  • Excelの関数式を教えてください。

    下記の場合、空欄セルにどのようなExcel関数式を入力すれば良いか教えてください。 また、その式の考え方(読み取り方)も解説していただけると助かります。      A        B        C     D     E      F   最小発注数 まるめ発注数 現在在庫 使用数 発注数 設定在庫 1   1000       100      1500   1200         1500 目的:E列の発注数を決定したい 条件:(1)設定在庫を満たすようにしたい     (2)最初は最小発注数で注文し、それでも設定在庫に      満たない場合は、まるめ発注数の倍数で発注する     (3)設定在庫以上の場合は、注文数は0 今回の例では、2月使用後の在庫が1500-1200=300になるので 1000+100×2=1200を注文したい。 CEILING関数を使うと考えますが、どのように表現するかわかりません。 

  • 続:123,156,789.012345を3けたずつにわけて、違うセルに飛ばす関数

    昨日上記質問をし、下記にて回答を頂いたものです。(ありがとうございました。) http://oshiete1.goo.ne.jp/kotaeru.php3?q=1696559 =TRIM(MID(TEXT($A1*10^6,"???????????????"),(COLUMN()-2)*3+1,3)) との回答を頂き応用をしてみたのでが、未熟なもので上手く行きません。恥ずかしいです。。。 私は応用として、仮に「123,156,789.012345」等・・、と飛ばしたい数字をG列に入れ、関数を =TRIM(MID(TEXT($G1*10^6,"???????????????"),(COLUMN()-2)*3+1,3)) とG列絶対参照に設定して、H列~コピーすれば良いのだなと思い込んだのですが、上手く行かないんです。 やり方がまずい可能性はかなり大きいのですが(´;ェ;`)、元となる数字がどの列に来ても、3桁ずつに分割して表示するには、教えて頂いた関数の、どことどこを変えれば良いのでしょうか?もしくは、他の関数を使わないといけないのでしょうか? 説明が下手ですみません。宜しくお願いいたします。

  • Excel関数

    Excelで適切な関数を探しています。 在庫の管理で複数ある在庫の指定した商品の過不足がわかるような在庫表を作成しようとしてます。 会社の基幹システムからExcelに落とした在庫表が下記のようにあります。 A列    B列     C列     品番    倉庫名  保有在庫数 111111   東京     10 111111   大阪     20 222222   東京     50 333333   大阪     10 333333   札幌     10 444444   札幌     30 続く・・・ 他に各倉庫各品番の必要在庫の別シートのマスターがあります。 A列    B列   C列 品番   在庫名  必要在庫数 1111111  東京    50 1111111  大阪    10 2222222  東京    100 2222222  大阪    20 最初の在庫表にD列を設け、そこに上記のマスターの必要在庫数を表示させて下記のようにしたいのですが・・・ A列    B列     C列    D列    E 品番    倉庫名  保有在庫数  必要在庫数 過不足数 111111   東京     10      50    -40 111111   大阪     20      10    10 222222   東京     50      100   -50 ・・・・・ がIFやVLOOKUPの関数で組み合わせで適切なものができませんでした。 他の関数で適切なものはありますでしょうか。 

専門家に質問してみよう