- ベストアンサー
エクセル(関数)について、教えて下さい
先日、下記の質問をさせていただき、回答通り制作して、大変助かりました。 そこで、もう1列増やして、在庫数も表示できるようにしたいのですが、教えていただいたものを応用してるのですが、上手くいきませんので、またご教授をお願いします。 B列を入力した場合、必ずD列も入力します。 先日の質問内容&回答 http://oshiete1.goo.ne.jp/qa5059146.html よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 質問の表の通り、個数が入力されている行の在庫は必ず何か数値が入っているということですね? すなわち、日付・在庫のセルは行ごとに 両方とも必ず入力されているか、もしくは両方とも空白という事で 説明されて頂きます。 前回も回答させていただいているみたいです その方法とまったく同じになってしまいますが・・・ ↓の画像のように表を作成して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/17069)
VLOOKUPやINDEX関数の「列を指定をしている」第3引数があります。ここを2,3など具体的に指定せず、Column()-x(Xで調節)すればよいのです。 すると右方向に式を複写したとき連続項目を持ってくるとき 自動的に変わってくれるので、各列で式をいじくる必要がなくなります。 この質問以外にも応用する場合があります。 googleで「imogasi方式」で照会すれば、連番を作業列で振り、別シートで行と連番を関連付けて持ってくる手法で、たくさん回答してます。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
前回の回答#4です >>E1セルに =IF($D2="","",INDEX(A:A,$D2)) としましたがF2セルへの入力の間違いです m(_ _)m で1列増えても同じで、右へのオートフィルが一つ増えるだけです 回答のあった関数くらいは理解してほしいと思います
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No3です。 E2セルへ入力する式は次のようにしてください。 =IF(COUNTIF($D:$D,ROW(A1))=0,"",INDEX($A:$C,MATCH(ROW(A1),$D:$D,0),COLUMN(A1)))
- KURUMITO
- ベストアンサー率42% (1835/4283)
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)
関数を使わない方法です 「個数」セル(B1)にオートフィルターを設定します (データ -> フィルタ -> オートフィルタ) 「個数」のオートフィルタで「空白以外のセル」を選択(リストの一番下) 選択されたデータ(A1~)をドラッグしてコピーし、E1 に貼り付け 「個数」のオートフィルタで、「すべて」を選択します 関数使わないので、列や行が増えてもOKです