こんにちわ。

エクセル2000を利用しています。

今日は3/5なので
セルに3/5と入力すると自動的に”2002/03/05”と表示されます。
これを、”5”と入力して”2002/03/05”と表示されるような関数や、表示形式はありますか?

また、過去の日付
例えば去年の12/5を入力するには
”1/12/5”と入力しなければなりませんが、
これも”5”とにゅうりょくすると”2001/12/05”と表示されるような方法は無いでしょうか。

どなたか教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

下記をマクロにするとかすれば出きるのではないかと


思ってやって見ました。
A列に1から31までの数値を入れるとして
2002年3月を仮定すると
Sub test001()
n = 6 'テストとして6個を指定
For i = 1 To n
Cells(i, 2) = DateSerial(2002, 3, Cells(i, 1))
Next i
'-----------
For i = 1 To n
Cells(i, 1) = Cells(i, 2)
Next i
'----------
Range("A1").Select
Selection.NumberFormatLocal = "yyyy/m/d"
Selection.Copy
Range(Cells(2, 1), Cells(n, 1)).Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= False, Transpose:=False
End Sub
無理やり出来たといいましょうか。苦しいですね。
上記2002と3を変えれば、どの年の月でもOK。
    • good
    • 0
この回答へのお礼

あああ・・・本当にありがとうございます。

マクロまで作ってくださって。

しかし、年度は頻繁に変更するようなデータの作成をしているので
(しかも沢山の人間が・・・)
マクロを組むのは不可能なのです。
残念ながら。。。。

本当にありがとうございました。

お礼日時:2002/03/06 10:02

どのような表でこの入力を使いますか?


内容によってはできるかもしれません。
別に欄を作ってよければすぐにできます。

良かったら詳しく教えて下さい。

たぶんやりたいことが正確に伝わっていないだけだと
思いますよ。
だめかどうかはもうすこし
お話しを聞いてみないと分かりません。
まだ未解決でしたら、ぜひ補足下さい。
    • good
    • 0

>”5”と入力して”2002/03/05”と表示されるような



と質問には『表示』されればいいということなので、

入力範囲に、セルの書式設定→表示形式→ユーザー設定で

  "2002/03/"0#

と定義します。表示だけですが実現できます。当然、別の月の入力の時には表示形式を変更します。入力してみましたが結構便利ですね。


表示と共に内容も年月日の日付連番にするためには、入力範囲を決めて、Worksheet_Changeイベントで入力数値を書き換えれば可能です。ただ、年月はその都度指定する必要があるでしょう。
    • good
    • 0
この回答へのお礼

実は、私の質問の書き方が悪かったのです。
このセルを使って日付の計算をするのです。
したがって、「表示」とだけ書いた私のミスでした。
しかし、この方法は意外と色んなところで使えそうです。

ありがとうございました。

お礼日時:2002/03/06 09:58

 通常では上記ご質問のような入力で日付を指定することは不可能です。


なぜなら、例えセルを日付の表示形式に設定したとしましょう。5と入力しても、年、月のデータを入力してないので、エクセルは日付で計算しようとしても、1900年1月0日から順次数える設定なので、1900/1/5としてしか認識してくれません。
 どうしてもご質問のように、簡単な入力で日付を設定したい場合は、別の列(もしくは行)に、日付を表す数値を入力する覧を設定し、日付を表示する列(行)にその列(行)を参照する式を作っておく方法がありますが、結局手間がかかり、意味がありません。どうしてもということであれば、小数点で年、月、日を区分けして、小数点の位置で自動的に日付を判別するネスト(式の複合式)を作ってみてはいかがでしょう。とても複雑な式になるでしょうが。
 よって、ご面倒でも一々日付を入力した方がよろしいかと思います。
    • good
    • 0
この回答へのお礼

複雑な式になってしまうのですね。
んん・・・

頑張って一日一日入力した方が速いのかもしれませんね。

ありがとうございました。

お礼日時:2002/03/06 09:55

同じ5という数が入力されているのに、コンピューターが気をきかせて、この人は今日の日付を入力したいのだなとか、これは去年の12/5の事だなとか予測するなど不可能ではないでしょうか。

    • good
    • 0
この回答へのお礼

早速のご返答ありがとうございました。
数式や、何か設定が無いかと思い質問をしたんです。
私の質問の仕方が悪かったのでしょうね。

ありがとうございました。

お礼日時:2002/03/06 09:52

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelアルファベットを含む数値から文字に変換

Excelで質問です。
アルファベットを含む数値から文字に変換する方法
例えば、下記のような変換方法はありますでしょうか?
101 → りんご
1A2 → みかん
101,1A2 → りんご,みかん

Aベストアンサー

こんにちは!
横からお邪魔します。

↓の画像のようにSheet2に表があり、Sheet1のB列に表示するようにしてみました。
他の方々と同じようにVBAになってしまいます。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目からあるとします。

Sub Sample1() 'この行から
Dim i As Long, k As Long, n As Long, c As Range, buf As String, myArray
Dim wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")

wS1.Columns(2).ClearContents
For i = 1 To wS1.Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
buf = ""
If InStr(wS1.Cells(i, 1), ",") > 0 Then
myArray = Split(wS1.Cells(i, 1), ",")
For k = 0 To UBound(myArray)
Set c = wS2.Columns(1).Find(What:=myArray(k), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
buf = buf & wS2.Cells(n, 2) & ","
Next k
wS1.Cells(i, 2) = Left(buf, Len(buf) - 1)
Else
Set c = wS2.Columns(1).Find(What:=wS1.Cells(i, 1), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
wS1.Cells(i, 2) = wS2.Cells(n, 2)
End If
Next i
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m

こんにちは!
横からお邪魔します。

↓の画像のようにSheet2に表があり、Sheet1のB列に表示するようにしてみました。
他の方々と同じようにVBAになってしまいます。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目からあるとします。

Sub Sample1() 'この行から
Dim i As Long, k As Long, n As Long, c As Range, buf As Strin...続きを読む

QAccessで前に入力したフィールドのコピー/入力の簡略化で

具体的には商品名の入力で
同じような名前で最後の方が少しだけ違う品名が
続きます。
オートナンバーでキーは自動でつけて行きます
こんな時、前に入力した品名が、
新しく入力しようとするレコードの品名のところが
ブランクでなく、前レコードで入力した値が
コピーされていれば、違うところに(品名)の入力
だけですむのですが
こうしたロジックを組み込むのはどうすればいいでしょう
フォーム入力で考えています

Aベストアンサー

> こうしたロジックを組み込むのはどうすればいいでしょう

「更新後処理(AfterUpdate)」イベントで、「商品名」の既定値(DefaultValue)を
更新してやればよいのではないかと思います。

具体的には、

1)入力フォームをデザインビューで開く
2)画面の適当な部分をダブルクリックしてプロパティシートを開く
3)「商品名」コントロールをクリックし、プロパティシートに「商品名」のプロパティを
 表示させる
4)「イベント」タブをクリックしたら、「更新後処理」にカーソルを移動させる
5)右端に表示される「...」(ビルダ)をクリックし、「コードビルダ」を選択する
6)以下のコードを入力する
Private Sub 商品名_AfterUpdate()
商品名.DefaultValue = "'" & 商品名.Value & "'"
End Sub
7)フォームを保存して終了

といった感じです。
(もし、データ型が「数値型」のフィールドで同様のことを行う場合は、
 「商品名.Value」の前後の「&」と「"'"」は無用です)


これで、「商品名」を更新すると、新規レコードに同じ値が表示されるようになります。
なお、他のフィールドに入力するか、「商品名」の名前を編集しない限りは、
そのレコードは新規レコードのままです。
(→つまり、同じ商品名がその場で二重登録されるわけではないということ)

> こうしたロジックを組み込むのはどうすればいいでしょう

「更新後処理(AfterUpdate)」イベントで、「商品名」の既定値(DefaultValue)を
更新してやればよいのではないかと思います。

具体的には、

1)入力フォームをデザインビューで開く
2)画面の適当な部分をダブルクリックしてプロパティシートを開く
3)「商品名」コントロールをクリックし、プロパティシートに「商品名」のプロパティを
 表示させる
4)「イベント」タブをクリックしたら、「更新後処理」にカーソルを移動させる
5)右端に表示...続きを読む

Qactionscript アルファベットを数値に変換できる?

Flash Actionscriptの開発で困ってます。
テキストフィールド1とテキストフィールド2があります。それぞれのフィールドに入力されたアルファベットを数値に変換(例えばAと入力されたら1、Bなら2、Cなら3)して、A+B=3のように足し算して返すにはどうしたらよいでしょうか??
こういうのを覆面算?っていうんでしょうか。

Aベストアンサー

ご使用の Flash のバージョンや ActionScript のバージョンなどがわかりませんので,
何とも言えませんが...。
(何とも言えないというのは場合によって答えがありすぎて,つまり変わりすぎて回答のしようがないということです。)



普通考えるのは ASCIIコード で対象参照すれば良いのではないでしょうか。
しかし,
規則が不規則な場合は配列やハッシュ(ハッシュもどき:結合配列)を使うかもしれません。



ActionScript1.0 or 2.0 で ASCII コードを使う方法

新規ドキュメントを作成して
フレーム1 に次のスクリプトをコピペして
「制御」→「ムービープレビュー」

-------------------------------------------------
// 変数 my_str の値を "A" とする
my_str = "A";
// 変数 my_str の 1 番目の文字を ASCII コードで出力
trace(my_str.charCodeAt(0));
// ↑ココで 65 が返るので 64 を引いてやる
trace(my_str.charCodeAt(0)-64);

// ↓"B"に関してもやってみる
my_str = "B";
trace(my_str.charCodeAt(0)-64);
// ↑ちゃんと 2 が返る
-------------------------------------------------



ActionScript1.0 or 2.0 で ハッシュもどきを使う方法

新規ドキュメントを作成して
フレーム1 に次のスクリプトをコピペして
「制御」→「ムービープレビュー」

-------------------------------------------------
// 変数 STR という Object を作成
STR = new Object();
// "A"エレメントの値を1,"B"エレメントの値を2,"C"エレメントの値を1 とする
STR = {A:1, B:2, C:30};

// "A"エレメントの値を取り出してみる
trace(STR["A"]);
// "B"エレメントの値を取り出してみる
trace(STR["B"]);
// "C"エレメントの値を取り出してみる
trace(STR["C"]);
// ↑ ちゃんと 「1」 「2」 「30」 が返りますね

// ちなみに値の型は何?
trace(typeof (STR["A"]));
// ↑numuber(数値) です
-------------------------------------------------



※ ASCII や ハッシュ が使えないバージョンでも
  場合によっては if文 を使えば乗り切れます。

ご使用の Flash のバージョンや ActionScript のバージョンなどがわかりませんので,
何とも言えませんが...。
(何とも言えないというのは場合によって答えがありすぎて,つまり変わりすぎて回答のしようがないということです。)



普通考えるのは ASCIIコード で対象参照すれば良いのではないでしょうか。
しかし,
規則が不規則な場合は配列やハッシュ(ハッシュもどき:結合配列)を使うかもしれません。



ActionScript1.0 or 2.0 で ASCII コードを使う方法

新規ドキュメントを作成して
フ...続きを読む

QACCESS2000で日付を入力する時。’/’を入力しなくていいやり方?

ACCESS2000で日付を入力する時、02/08/13でなくて 020813って入力してENTERしたら 02/08/13にならないでしょうか。
お分かりに方 教えていただけないでしょうか。お願いします。

Aベストアンサー

(テーブルに直接データを入力するという前提で回答しますが)
テーブルのデザインビューで、該当のフィールドに定型入力を設定するのが簡単だと思います。定型フィールドウィザードを利用すると、より簡単です。

QPHPで、日本語からアルファベットに変換

PHP初心者です。
PHPプログラム上で、日本語からアルファベットに変換する書き方を探しています。
漢字仮名まじりの日本語を、アルファベットに変換できますか?

自分では、
$str = mb_convert_encoding($title,"ascii","UTF-8");
という風にやってみましたが、できませんでした。

どなたかお知恵をお貸しください。

Aベストアンサー

>> 日本語からアルファベットに変換する書き方を探しています。

ローマ字に変換する必要は無いのですよね?

英数字でもよいのなら
base64_encode("日本語");

アルファベットだけでなく数字や%などが混じっても良いのなら
urlencode("日本語")

いずれも逆の変換で元の日本語にも戻せます

QAccessのテーブルで日付を入力し、その隣の列に5日後を表示

タイトルの通りでございますが、

1列目は
 フィールド名:日付
 データ型  :日付/時刻型


2列目に1列目の5日後の日付を
自動で表示させたいのですが、
どのようにしたらよいのでしょうか。

どうぞ、宜しくお願い致します。

Aベストアンサー

テーブルでは出来ません。クエリーでなら
隣のフィールドの欄に 5日後:[日付] + 5 とすれば5日後の日付になりますが...
※書式は別途プロパティで設定が必要です。

Qかなで書かれた文字をアルファベットに変換できませんか?

エクセルででも、なんででもいいのですが、かなで書かれた文字をアルファベットに一度に変換できないでしょうか? たとえば、エクセルの関数phonetic を使えば、漢字を仮名に変換できますよね? それと同じように、仮名をアルファベットに変換する方法はないでしょうか? もし、そんな便利なことができたら、とってもうれしいのですが。。

よろしくお願いいたします。m(__)m

Aベストアンサー

以前、似た質問に回答しました。

No.806286 質問:Excelで五十音順に並べ替えたい
http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

No.8の手順3)で、

kakasi -Kj -Jj

を実行すると、

(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ

(kabu)aiueo
(kabu)inoue
(kabu)urashima
(kabu)abeshouten
(kabu)ishiishouten
(ari)aiueo

と変換できました。

参考URL:http://kakasi.namazu.org/, http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

QAccess2002 定型入力

Accessの定型入力について。
練習問題で、テーブルの〒フィールドを「***-****」と言う形式でデータを入力できるように設定しましょう。なのですが、回答では、最終的に定型入力プロパティには
「000¥-000,0 *」と表示されるようになります。この意味がわかりません。また、代替文字にはどんな役割があるのかもテキスト読んでも分からないので教えてください。

Aベストアンサー

ここが参考になるかと思います。

参考URL:http://www.accessclub.jp/property/data/InputMask.html

Q全角アルファベットを半角アルファベットに変換

Word 2003 で文書中の全角アルファベットを半角アルファベットに一括変換するにはどうすればよいでしょうか。一括が無理なら、個別でもかまいません。

Aベストアンサー

全角英字を半角に一括にするなら検索を使ってはいかが。
[検索]ダイアログで[ワイルドカード]にチェックを入れておきます。

検索する文字列 : [A-Z]  (AとZは全角英字にして記号は半角)

[見つかったすべての項目を強調表示する]へとチェックを入れます。
これで[すべて検索]ボタンを押します。

全角英字がすべて選択されたら、ANo.1の回答にもある[文字種の変換]
をします。

QAccess2002の入力について

Access初心者です。
Access2002の入力についてお尋ねします。
すでに作られたデータベースがあり、開いてデータを入力していくと、あるフィールドでは直接入力モードに自動でなり、日本語が入力できません。
データ型は「数値」になっています。
この場合数値しか入力できないようですが、強制的に日本語を入力する方法はないでしょうか?
テキスト型にするしか無理でしょうか?

Aベストアンサー

データ型が「数値」である以上、数値でないデータの「保存」はできませんが、「とにかくフォーム上では日本語を入力可能にしたい」ということであれば、方法はあります。
(例えば「1」を入力するのに、「いち」を入力してその変換で「1」を出したい、という方がおられない限り、意味がなさそうな動作ですが)

1)フォームをデザインビューで開く
2)メニューで「表示(V)」→「プロパティ(P)」をクリックし、プロパティシートを開く
3)対象となるコントロールをクリックする
4)プロパティシートの「その他」タブをクリックし、「漢字変換モード」を「ひらがな」に設定する

これで、フォーム上ではひらがな入力が可能になるはずです。
(但し、こちらはAccess97で確認しています。「保存不可である以上、意味のない設定」として、もしかしたらAccess2002では設定できなくなっているという可能性も否めませんが・・・)


人気Q&Aランキング

おすすめ情報