dポイントプレゼントキャンペーン実施中!

Excel2003を使って学童スポーツクラブの出席簿を作成しています。

【目的】
文字列として入力した学年を更新したい。

【状況】
クラブの学年表記が
・年少から年長=01から03
・小学1年から6年=1から6
・中学1年から3年=J1からJ3
と規定されています。

01から03を入力するため、学年を入力する列はセルの書式設定を
文字列にしています。
しかし、年度末に学年を更新しなければいけません。

そこで伺いたいことは、
1.文字列として入力してある学年をどのように更新したらよいのか?
2.03⇒1 や 6⇒J1 への更新はどのように設定したらよいのか?

マクロはまだ使用できないので、可能であれば関数などのマクロ以外
の機能を使って問題を解決したいのですが、如何でしょうか?
よい方法をご教授いただければと思っております。
何卒宜しくお願い致します。

A 回答 (9件)

作業列を用意します


(一時的なので、学年列の右隣にでも挿入します)
変換表を用意します(これも一時的なものです)

G  H
01 02
02 03
.. ..
という具合に空いているセルに作ります
学年列=C
作業列=D とすると
D2 =VLOOKUP(C2,G$1:H$11,2)
以下、下にコピーします
完成した作業列をコピーして、学年列に「形式を選択して..」「値」で貼り付けます
変換が終わった後は、作業列、変換表は削除してもokです
    • good
    • 0
この回答へのお礼

御見それ致しました!
VLOOKUP関数でこんな事も可能なんですね!

現状に即していて尚且つシンプルな解決方法を
ご教授頂きました事にたいへん感謝致します。
ありがとうございました!

お礼日時:2008/11/01 22:13

> 1.文字列として入力してある学年をどのように更新したらよいのか?


学年を示す列を[文字列]にしないで、誕生日を元に学年を計算する式を
用意して現在の日付から計算させてはいかが。

> 2.03⇒1 や 6⇒J1 への更新はどのように設定したらよいのか?
リストを作って、そこに学年ごとの表記を用意して、[ VLOOKUP 関数]
で参照してはいかが。

具体的な方法は、こちら↓を参考にしてリストの学年を示すものを作成。
http://www2.odn.ne.jp/excel/waza/function.html#S …

これなら誕生日を参照元にしていますので、年度が替わると学年を更新
してくれます。
    • good
    • 0
この回答へのお礼

最初からこのような数式を利用していれば
よかったのですが・・・

新規に出席簿を作成する際には、教えていただいた関数を
利用したいと思います。
ご回答いただきましてありがとうございました。

お礼日時:2008/11/01 22:26

》 文字列として入力してある学年をどのように更新したらよいのか?



数値として入力してあるなら、その質問はなさらなかったと。
そういうことなら、学年を数値で入力して[ユーザー定義]で 00 に書式設定すれば好い。
    • good
    • 0
この回答へのお礼

本来ならいちからやり直したいところなのですが、
すでに一千名分の記録が入力済みでして・・・

教えていただいた方法で最初から入力していれば
こんなに悩まなかったことでしょう。
ご回答いただきありがとうございました。

お礼日時:2008/11/01 22:17

ANo.3、4、5,6です


はずかしながら 頭の整理ができていませんでした
ANo.6を取り消して下さい
さらに  =B1&(C1+1) を =IF(C1="",A1+1,B1&(C1+1))に修正

整理すると
A列右に作業列を3列挿入
B1 =LEFT(A1,1)      → A1セルの左の1文字を抜き出す
C1 =RIGHT(A1,LEN(A1)-1) → A1せるの文字列から左の1文字を除いて抜き出す。
D1 =IF(C1="",A1+1,B1&(C1+1)) → B1セルとC1セルに1を加えて表示する。
D列をコピー → 形式を選択して貼り付け → 値 → A、B、C列を削除
「04」を「1」、「7」を「J1」に置換及びJ4の行を削除してください
    • good
    • 0
この回答へのお礼

たしかに上手く変換することができました!
少し複雑ですが、この様な方法もあるんですね。

お手数をお掛けして申し訳ありませんでした。
ご協力に心から感謝いたします。

お礼日時:2008/11/01 22:40

ANo.3、4、5です



C1 =RIGHT(A1,LEN(A1)-1) を =RIGHT(A1,1)

 =RIGHT(A1,LEN(A1)-1) も間違いではないのですが 
 
学年は全て2桁なので敢えてLEN(A1)-(A1の文字数から引く)を入れなくても左から1文字を抜き出せばよいことに気がつきました。
    • good
    • 0

ANo.3、4です


>2.03⇒1 や 6⇒J1 への更新はどのように設定したらよいのか?
について解答してませんでした

「04」を「1」、「7」を「J1」に置換してください
    • good
    • 0

ANo.3です


「A列(左)に3列挿入」を「A列(右)に3列挿入」に訂正してください。
    • good
    • 0

A列に学年がある場合



A列左に3列挿入
B1 =LEFT(A1,1)      → A1セルの左の1文字を抜き出す
C1 =RIGHT(A1,LEN(A1)-1) → A1せるの文字列から左の1文字を除いて抜き出す。
D1 =B1&(C1+1)      → B1セルとC1セルに1を加えて表示する。
D列をコピー → 形式を選択して貼り付け → 値 → A、B、C列を削除
    • good
    • 0

学年表記の部分を削除して、


一からやり直したほうがいいと思います

たとえばA1セルに誕生日を設定したとして
小学校1年生(2001年4月2日~2002年4月1日生)とすると
(とりあえず該当しなければ_を表示します)
=IF(A1>=DATE(2001,4,2), IF(A1<=DATE(2002,4,1),1,"_"),"_")
あとは、表の形式でいいように改造してください
    • good
    • 0
この回答へのお礼

本来ならいちからやり直したいところなのですが、
すでに一千名分の記録が入力済みなので・・・

教えていただいた数式は今後の参考にさせていただきます。
ご回答ありがとうございました!

お礼日時:2008/11/01 21:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています