- 締切済み
エクセル2010で空白セルを詰めるのは・・・
エクセルで金銭出納表を作成しております。 金銭出納帳シートに科目入力シートからドロップダウンリストで項目を選べるようにしました。 たとえば、金銭出納帳シート項目から、消耗品費を選びD6セルに「えんぴつ」と入力すると、 消耗品費シートのD6セルに自動で「えんぴつ」と入るようにしたつもりです。 同じように、金銭出納帳シート項目から情報・通信費などを選ぶと情報・通信費シート等に入るようには何とか出来たつもりです。 ですが、金銭出納帳シートから選ぶ項目はランダムであるため、各シートに入力される項目が飛び飛びになってしまいます。 その空白を上に詰めていくにはどうすれば良いですか? 「えんぴつ」や、収入及び支出欄は様々なものを入力するため、手打ちの状態にしたいです。 上手く説明出来ませんが、伝わりますでしょうか? 何とかドロップダウンリストで選ぶと各シートに反映させるところまでは出来たのですが、 ここからつまづいております。 詳しい方、ご教授よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- SakuraiMisato
- ベストアンサー率17% (42/235)
#4の訂正です。 "IF関数"の中に"OR関数"と"VLOOKUP関数"とを組み込んだネストでは、 如何なのでしょうか?
- SakuraiMisato
- ベストアンサー率17% (42/235)
"VLOOKUP関数"の検索値の箇所へ"OR関数"を盛り込んで、 其の懸賞を試されましたでしょうか?
- KURUMITO
- ベストアンサー率42% (1835/4283)
配列数式などでは金銭出納帳のデータが多くなりますと計算に負担がかかるようになって適した方法ではありません。 次のように作業列を使って対応することです。分かり易い式を使って対応することです。 金銭出納帳シートでは5行目からデータが入力されるとしてC列に消耗品費などの項目がD列にえんぴつなどの品名が入力されるとします。他の列はそれぞれ項目が有って種々のデータが入力されるとします。K列までが利用されるとします。そこで作業列としてL5セルには次の式を入力して下方にドラッグコピーします。 =IF(C5="","",C5&COUNTIF(C$5:C5,C5)) この作業列のデータをもとに例えば消耗品費シートにデータを表示させるためには次のようにします。 消耗品費のシートのA1セルには金銭出納帳のC列で使われる項目名、例えば消耗品費と入力します。 金銭出納帳シートでC列に消耗品費と入力されたデータが入力されれば5行目以降に、空白の行を作ることなく、その行を表示させるとしたらA5セルに次の式を入力してK5セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(COUNTIF(金銭出納帳!$L:$L,$A$1&ROW(A1))=0,"",IF(INDEX(金銭出納帳!$A:$K,MATCH($A$1&ROW(A1),金銭出納帳!$L:$L,0),COLUMN(A1))=0,"",INDEX(金銭出納帳!$A:$K,MATCH($A$1&ROW(A1),金銭出納帳!$L:$L,0),COLUMN(A1)))) 上記の式は他のシートでも同じように使うことができます。例えば情報・通信費シートではA1セルに情報通信費と入力し、A5セルに上の式を入力して同様にドラッグコピーすればよいでしょう。
- SakuraiMisato
- ベストアンサー率17% (42/235)
もし各勘定科目の後に個別の連番を振ったのでしたら、 VLOOKUP関数の中にROW関数をも盛り込んで頂きますと、…。
- keithin
- ベストアンサー率66% (5278/7941)
>各シートに入力される項目が飛び飛びになってしまいます。 飛び飛びにならないよう科目ごとに「番号」を計算させてその番号で参照させると、初級の関数だけで簡単に出来ます。 実施例: いま「D列に」科目を記入しているとすると A列に A2: =IF(D2="","",D2&TEXT(COUNTIF($D$2:D2,D2),"-0000")) 以下コピー のように埋めておくと、たとえばD2に「消耗品費」を記入すると、「消耗品費-0001」から始まる連番が、また「通信費」を記入すれば「通信費-0001」から始まる通信費の連番がそれぞれ現れます。 あとは簡単で、消耗品費のシートでは消耗品費の0001から0002,0003…を順繰りVLOOKUPしてくればいいですし、通信費のシートでもまた通信費の0001から順にとってくればOKです。 あなたの具体的なシートの配置(どこ列に何が記入されている)がさっぱり見えないので、仮に出納帳シートのD列に科目を記入しているとして、F列の値を消耗品費シートのF列に転記しようとしているとするなら A2:連番必要なだけ =IF(ROW(A1)>COUNTIF(出納帳シート!D:D,"消耗品費"),"",ROW(A1)) 以下コピー F2:その番号のF列の値 =IF(A2="","",VLOOKUP("消耗品費"&TEXT(A2,"-0000"),出納帳シート!$A:F,COLUMN(),FALSE)) 以下コピー #補足 作業列を使わずちょー意味不明な配列数式で一発で計算する事も出来ますが、実地には応用できないので使わない事をお勧めします。
補足
keithinさん早速ありがとうございます。 具体的なシートの配置を理解していただきたくて、精一杯エクセルのブックをUPしたのですが、見えませんよね。。。 初心者な者で。。。どこかブックをUPして具体的にkeithinさんにご教授していただける所は無いですか? 現状、科目は別シートに記載してリストにしております。 作業列を使わずちょー意味不明な配列数式で一発で計算する事も出来ますが・・・ これだとどのようになりますか? 勉強んため教えていただけると嬉しいです。