- ベストアンサー
入力済みなら自動でインデント
今、お小遣い帳みたいなのを作っています。 で、下図のように、支出セル(C2)に金額が入力された時だけ、 その行の項目セル(A2)に、自動でインデント(□)を設定する …みたいなことって可能でしょうか? ┏━┯━━┯━━┯━━ ┃ │ A │ B │ C ┠─╋━━┿━━┿━━ ┃1 ┃項目│収入│支出 ┠─╂──┼──┼── ┃2 ┃□~│ │1000 ┠─╂──┼──┼── ┃3 ┃~ │1000│ ┠─╂──┼──┼── もしかして条件付き書式で出来るかな? と思ったけどインデントは無かったです。 簡単に出来るなら、やりたいので教えてください。 難しかったら諦めます。よろしくお願いいたします☆
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
やっと分かりました。要するに支出した項目については、一見して分かるように項目名の左にインデントを付け加えたいということですね。 であればそのインデントの文字を仮に「□」だと仮定して、D列(D2)に次の式を入力して下方又は別シートのD列にコピーし、その結果をNo.2で説明したように各シートのA列に値のみコピーされたらいいと思います。 =IF(AND(C2<>0,C2<>""),"□"&A2,A2) これは、C2(支出金額欄)が0でも空白でもない、言いかえると何らかの数値が入っているときは、既にA2に入力されている文字列の左に「□」を付け加え、そうでない(空白または0)のときはそのままの文字列を持ってくる、という意味です。 で、過去の分はそれでよいとして、今後の分をどうするかというと、お薦めは、A列の左に1列挿入し、(列が右に1列ずれるので)A2に次の式を入力します。 =IF(AND(D2<>0,D2<>""),"□","") この方が多分見易いと思います。 別の方法は、別シートのA列に項目名(□を付け加えたものとそうでないもの)を縦に並べた項目一覧表を作り、A列を選択して、挿入→名前→定義をクリック、名前を例えば「項目」などと付け、参照範囲が「Sheet名!$A:$A」となっていること確認OKします。 元のシートに戻り、A列(項目列)を選択し、データ→入力規則→入力値の種類でリストを選択、元の値に「項目」と入力、空白を無視するにチェックし、OKします。 するとA列の右に▼が現れ、それをクリックすると項目名がドロップダウンリストとして現れるので、それを選択して項目名を入力する方法もあります。 以上の方法をいろいろと試されたらいかがでしょうか。
その他の回答 (3)
- ufufuehehe
- ベストアンサー率63% (51/80)
エクセルのバージョンが不明ですが、2002なら以下で可能です。 1.表のどこかのセルにカーソルがある状態で データ>フィルタ>オートフィルタをクリック 2.「支出」のところにできた▼をクリックして (空白以外のセル)を選択 3.「項目」列の文字が入っている部分を選択してインデント 4.データ>フィルタ>オートフィルタをもう一度クリックして元に戻す。 …でも、インデントよりフォントを太字にしたり文字の色やセルの色を変えるとかした方が見やすいような気がします。セルの幅も変えずに済みますし。
お礼
ありがとうございます♪ エクセルは2000を使って作りましたが、2002も入ってるし、出来ると思います^^ できれば「条件付き書式」で設定した時みたくリアルタイムで変化すればいいなーと思うので、どうしても無理だったらウフウフエヘエヘさんの方法にします。 >> フォントを太字にしたり文字の色やセルの色を >> 変えるとかした方が見やすいような気がします。 ですよね(^^;) けど今、銀行に預けたり引き出したりした時 そうなるようにしてるので、これ以上あると、かえって分かり辛くなりそうだったのですー
- zenjee
- ベストアンサー率47% (50/106)
>既に何ヶ月分か入力済みなので、その方法だと凄く手間がかかっちゃいそうです どうも意味が分かりかねますが、次の点で不明な点があるので差し支えなければ補足していただけませんか。 1、入力済みのA列には、「□~」、「~」以外に他の文字列も入っているのでしょうか。あるいは何も入ってないのでしょうか。 2、何ヶ月分というのはブック(ファイル)が何個かあるのか、又はSheetが何個かあるのか、若しくはSheetは1個だけど行がものすごくたくさんある、のどちらでしょうか。それぞれ個数又は行数はどれくらいでしょうか。 3、既に過去の分のA列に必要なデータ(「□~」、「~」)が入力済みだとするとそれを上書きする必要は別にないような気がしますが、いかがでしょうか。 以上の点が分からないと明確な回答は出来ませんが、とりあえず次のような条件だと仮定してお答えします。 お小遣い帳みたいなのもののブック(ファイル)は一つだが、Sheetは複数である。 過去の分のA列には「□~」、「~」が入っていたり入っていなかったり、あるいは空白のままだったりしている。 「□~」、「~」以外の文字列が入っていることもあり、それも生かしたい。 以上の条件でお答えします。 新たなセル、D1に次の計算式を入れます。 =IF(OR($A1="",$A1="□~",$A1="~"),IF($C2>0,"□~",IF($B2>0,"~","")),$A1) この式の意味を文章で説明すると、A1が空白、「□~」、「~」のいずれかに該当する場合は、(当初の式を使って)収入、支出、双方空白の区分にしたがい「□~」、「~」、空白のいずれかの答を出し、全く別の文字列が入っていてそれを残したい場合はそれをそのまま持ってくるという意味です。 次に、この式を右クリックでコピーを選択し、各Sheet毎に、D列の最終行(A~Cにデータが入っている行)まで選択、貼り付けをクリックします。 この作業は極めて簡単で凄く手間がかかるなんてことは全くありません。 次の作業はまた各Sheet毎にD1からD列最終行までを選択し、右クリックでコピー、A1を選択して「形式を選んで貼り付け」→「値」にチェック、OKをクリックであっという間に完了します。 以上は過去の分の作業ですので、これから使う分はNo.1回答の始期を直接A列に入力し、プルダウンコピー(右クリックしてセル右下に「+」を出し、下まで下げ る。)してください。 以上、全くの初心者に説明するようなくどい回答で、もしかしたら大変失礼ではないかとも思いましたが、質問や補足の文面から判断して、ご存知ない可能性もあるかと思い、書き加えさせていただきました。あしからずご容赦ください。
お礼
ありがとうございます(>_<) 1~3のご質問にお答えします。 【1】:お小遣い帳ですので項目には何十行目かまでイロイロ入ってます。 例えば「電気代」「ポ●リスエット」「給与」「台所用洗剤」「ハンガー」「花」「家賃」など、全てバラバラです。 ( 図の「~」は"文章"、「□」は"インデント"を表したつもりでした。 分かり易くなるかと思って図を作ったけど、かえって混乱させてしまったみたいで;ごめんなさい!) …だから多分、No.1のご回答で教えて頂いた式を使って、わたしの希望を実現しようとしたら…もしかして下記のように全ての行の式の一部を書き換えなければならなくなるのかなぁ?と思ったんです。 =IF(C2>0," 電気代",IF(B2>0,"電気代","電気代")) =IF(C3>0," 花",IF(B3>0,"花","花")) =IF(C4>0," ハンガー",IF(B3>0,"ハンガー","ハンガー")) 既に入力してる分まで全部↑こういうふうに直すんだったら手入力のほうが早いかもだし、これから入力する分も大変かと… って、何か見当違いなこと言ってたらスミマセン。確かにセル番地は自動的に変わってくれますよね♪ 【2】:ご想像通り「お小遣い帳.xls」というブックに「6月」「7月」「8月」…とシートが並んでいます。シートは今のところ5つで、行は それぞれのシートに40前後(※毎月異なる)です。それ以降は空行ですが、それ以前の項目セルに空白はありません。 【3】:ゴメンナサイ。やっぱり図は無かったほうが良かったみたいで…(汗) あの図は「既に出来上がった状態」を表してたんです。なので、今はまだインデント(□)は全く入っていない状態です。 「項目を見ただけで収入か支出かが一目瞭然だったら いいかも」って思ったんです。「支出の時だけ項目が引っ込んでたら分かり易い」って。 >> もしかしたら大変失礼ではないかとも思いましたが、 いえ。とんでもないです!!! 事実、全くの初心者ですし、失礼などということは ありえません。 ただ貴重な時間を割いて わたしなどのために、これほど沢山入力して頂いたこと…恐縮至極でございます(;-_-) 説明下手で大変ご迷惑をおかけしてしまって申し訳ありませんでした。
- zenjee
- ベストアンサー率47% (50/106)
肝腎なことが書いてないようですが、使用ソフトはエクセルですか? 文面から多分そうではないかという気がしますので、エクセルだと推測してお答えします。 A2に次の計算式を入力します。 =IF(C2>0,"□~",IF(B2>0,"~",""))
お礼
>> 使用ソフトはエクセルですか? ゴメンナサイ。仰る通り「エクセル」でした(>_<) 「Office系ソフト」カテゴリだから書かなくていいかなんて 思っちゃってたけど、「アクセス」と似てるんでしたね。 >> A2に次の計算式を入力します。 あー、そうか!!( 目から鱗 ) A列に式を入れることは一切念頭にありませんでした^^; なるほど。確かにそれだと可能だし、この質問の答えとしては正解ですね☆ …ただ、申し遅れましたが、もう既に何ヶ月分か入力済みなので、 その方法だと凄く手間がかかっちゃいそうです(ォィ) だから範囲で指定とかできたらといいと思うけど… そういうご回答が無いってことは、つまり無理なのでしょうね! ご回答ありがとうございました m(_ _)m
お礼
えー、凄いです☆ 項目に何が入っててもインデントを付けられる式があったなんて。 「うそー」と思い、早速やってみたら出来ました♪ とっても面白いですね☆ これで過去の分は解決だし、他にも色々と活用できそうな気がします。 あと、項目の左側にもう1列つくるっていうアイディア、素敵です! 罫線で1コのセルみたいにすれば印刷でも同じに見えるだろうし… 何より、自動で なってくれるし☆☆ この方法で やろうと思います♪ ( 他の列の式がズレて変にならないか少し心配だけど;) それから、項目名がプルダウンリストとして出るっていうのは、 項目じゃなく別の列ですが「そんなふうに選べればいいのに」 ってところがあるので、どうにかして そっちに利用します。 100%タメになる情報ばかりで、とても勉強になりました。 エクセルも凄いし、ゼンジー?さんも凄いです(*^^*) 辛抱強く最後までお付き合い頂き感謝しております。 本当にどうもありがとうございました m(_ _)m