dポイントがお得になるネット回線は?

エクセルもマクロも初心者です。

2008年8月29日  という日付を別シートに引用したいのですがうまくいきません。
情報として欲しいのは“2008年8月”の部分です。
調べてみたら文字の引用ができる関数があったので、実際に使ってみました。
LEFT(Sheet1!A1,9)
MID(Sheet1!A1,9)

どちらをやっても39689という数字が出てきます。
なぜこのようになるのでしょうか?

そして、どうすればうまく引用できるのでしょうか?

A 回答 (5件)

日付はデータは1900/1/1を1とするシリアル値で扱われます。

2008/8/29は、1900/1/1から数えて39689日目なので、シリアル値は39689になっています。

今回のように“2008年8月”と欲しいのでしたら、=Sheet1!A1 として、セルの書式設定で見た目上変えてやります。

または、シリアル値を文字列に変換しての表示になります。文字列に変換する際に、日は不要なので取ってしまいます。
=TEXT(Sheet1!A1,"YYYY年M月")
    • good
    • 4
この回答へのお礼

ご回答ありがとうございます。
関数で引用したセルはなぜか書式設定で変えられないのですが、
あいてるセルに=TEXT(Sheet1!A1,"YYYY年M月")
で作り変えて引用したらうまくいきました!

これをうまくマクロでできるようにしようと思います。

お礼日時:2008/10/14 17:13

ANo,2 です。


おそらく、すでに解決済みだと思いますが・・
39689 と表示されているセルを他の方がおっしゃるように =LEFT(A1, 9)とかではなく、=Sheet1!A1 にしてください。
    • good
    • 0

その引用したシートの「表示形式」は何になってますかね?



表示形式を「日付」にすればOKだと思いますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

それがなぜか表示形式をどのようにしても変わらなくて困っていました。
とりあえず違う方法で免れたものの・・・なぜこのようになってしまったのかよくわかりません。

お礼日時:2008/10/14 17:20

エクセルによる日付は「2008年8月29日」や「2008/8/29」「平成20年8月29日」などさまざまな表示ができますが、日付を数値化したものはどれも同じでありその数値がシリアル値というものです。

これによって日付の計算ができるのです。

ですので表示が2008年8月29日となっていても計算対象はシリアル値にということになります。

この場合、単純に
=Sheet1!A1
としセルの書式設定で表示形式をユーザー定義にし
yyyy"年"m"月"
とすることで解決できると思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

書式設定でユーザー定義にしてもシリアル値のままでした。
No1の方のところでも書きましたが、他のセルに書き換えて使うことでとりあえずしのぎましたが、もっと他の方法もありそうだなって思います。

お礼日時:2008/10/14 17:18

こんにちは、私も初心者ですが・・



単純に39689と表記されているセルを右クリックして「セルの書式設定」から表示形式タブで「日付」を選んで"2008年8月"の形にすればいいのではありませんか?
ちなみに39689となるのはシリアル値と言うそうです。

以下ヘルプから
(日付はシリアル値として連続番号で格納されて計算が行われます。既定では、1900 年 1 月 1 日がシリアル値 1 になります。2008 年 1 月 1 日は 1900 年 1 月 1 日から 39,448 日後に当たるので、シリアル値は 39,448 になります。)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

書式設定で日付にしようとしてもなかなかしぶとく・・・結局そのままシリアル値というもののままでした。
なぜこうなってしまったのかは未だ理由がわかりません。

それにしても・・・シリアル値ですか・・・勉強になりました。

お礼日時:2008/10/14 17:15

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

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

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

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

Qエクセルのシート間で連続した日付データを作りたい

オートフィル機能をシート間の串刺しでやりたいと考えています。
現在、日付ごとに1日から31日までの31枚のシートがあります。
1枚目のシートのA1セルに1月1日と入力すると、その後30枚のシートのセルA1にそれぞれ1月2日~31日までの日付が自動で表示できるようにしたいのですが、どのようにすれば楽に処理できるのでしょうか?
なお、A2セルには曜日も表示させる予定です。
ご存じの方がいらっしゃいましたら、ぜひお知恵を拝借させて下さい。

Aベストアンサー

マクロで対応するならこんな感じでできます。
Alt+F11でVBEを起動して、「挿入」「標準モジュール」でこのコードを貼り付けで、エクセルで「ツール」「マクロ」からこのコードを実行してください。

Sub sample()
Dim i As Integer
For i = 1 To 30
Sheets(i + 1).Range("a1").Value = Sheets(i).Range("a1").Value + 1
Next i
End Sub


ちなみに曜日のほうは、一番左のシートを選択し、Shiftキーを押しながら一番右のシートを選択して作業グループにしてB1セルに「=A1」と入力してセルの書式設定でユーザー定義で「aaaa」などとしてください。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセル指定日付の数値を別シートに反映させる方法

先ほど別の質問を立てましたが、わかりにくかったので、再度掲載させていただきます。

数式をつくっておいて、ある箇所にデータを貼り付けたら、別シートに指定した期間の
数値が反映できるような数式を作りたいと考えています。


A1に「10/1」  (スタート)
B1に「11/2」  (エンド)

と入力がしてあり、

F12~120に10/1からランダムに10月の日付
G12~120に11/1からランダムに11月の日付
N12~120に数値が入っています。

A12~120には=「F12~120」という数式を
B12~120には=「G12~120」という数式を
C12~120には=「N12~120」という数式を
いれて、反映をさせています。

普段触るところはF12~120・G12~120・N12~120の3つで
データを毎回貼り付けています。
A1・B1に入れている数値と一致をしていれば色が変わるように書式設定をしています。

この2~120の中で対象となる色の変わる場所の数値部分(C12~120)の合計の数値を
別のシート「集計」のD1に反映をさせたいです。


そのようなことはできますでしょうか。

説明が下手で申し訳ありませんが
どなたかご回答をよろしくお願いいたします。

先ほど別の質問を立てましたが、わかりにくかったので、再度掲載させていただきます。

数式をつくっておいて、ある箇所にデータを貼り付けたら、別シートに指定した期間の
数値が反映できるような数式を作りたいと考えています。


A1に「10/1」  (スタート)
B1に「11/2」  (エンド)

と入力がしてあり、

F12~120に10/1からランダムに10月の日付
G12~120に11/1からランダムに11月の日付
N12~120に数値が入っています。

A12~120には=「F12~120」という数式を
B12~120には=「G12~120」と...続きを読む

Aベストアンサー

こんばんは。

A列(=F列)とB列(=G列)に「ランダムに日付が入っている」のだけど、その中からたまたま「A1~B1」にぴったりマッチした行だけ合計したいと言いたかったのでしょうか。
それとも?A列はA列で色が付いてればOK、B列はB列で別の行に色が付いてても、とにかく色が付いた行は全部拾いたいと言いたかったのでしょうか。


とりあえず
=SUMPRODUCT((A12:A120=A1)*(B12:B120=B1),C12:C120)
と記入しておくだけで、計算できます。
一つも色が付く行が無ければ、当然ゼロが計算されます。



またご利用のエクセルのバージョンも不明のご相談ですが、エクセル2007以降を使っているならもっと簡単に
=SUMIFS(C12:C120,A12:A120,A1,B12:B120,B1)
と列記するだけで、さくっと計算できます。

#ご相談投稿では、ご利用のソフト名はもとより普段あなたが使うソフトのバージョンまで、きちんと明記する事を憶えて下さい。




>説明が下手で

丁寧に、具体的なデータのサンプルを挙げて「この例だとこういう理由でこういう計算結果が欲しいんです」と説明してみると、不自由な言葉で一生懸命説明するよりもはるかに判りやすくなりますよ。たとえば「間違ってました」と気持ちだけ伝えても、「だからどうだったんですか?」何一つ正しい情報がありません。

こんばんは。

A列(=F列)とB列(=G列)に「ランダムに日付が入っている」のだけど、その中からたまたま「A1~B1」にぴったりマッチした行だけ合計したいと言いたかったのでしょうか。
それとも?A列はA列で色が付いてればOK、B列はB列で別の行に色が付いてても、とにかく色が付いた行は全部拾いたいと言いたかったのでしょうか。


とりあえず
=SUMPRODUCT((A12:A120=A1)*(B12:B120=B1),C12:C120)
と記入しておくだけで、計算できます。
一つも色が付く行が無ければ、当然ゼロが計算されます。
...続きを読む

QExcelで入力したデータを他のシートにも反映したいです

Excelでシートに入力したデータだけを他のシートに表示させたいです・・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。

シート1
 Å列    B列 C列    
キャベツ     玉   1
りんご     個   2
オレンジ    個
バナナ     本   10
きゅうり    本
ニラ     Kg  20.5

シート2
 Å列    B列 C列
キャベツ     玉  1
りんご     個  2
バナナ     本  10
ニラ     Kg  20.5

↑のように。シート1に入力したデータを入力した行ごと表示させたいです。

Aベストアンサー

》 なにぶん初心者なもので…

関数を一切使用しない方法(フィルタオプションの設定)をご紹介します。

Sheet1
1   A    B   C
1 品名   単位 数量
2 キャベツ 玉    1
3 りんご  個    2
4 オレンジ 個
5 バナナ  本   10
6 きゅうり 本
7 ニラ   Kg  20.5
8

添付図は[フィルタオプションの設定]を開始する Sheet2 を示しています。
([データ]→[フィルタ]→[フィルタオプションの設定]の手順を実行します)

QEXCELのADDRESS関数で日付を別のシートに

sheet1のC10に2014/08/01と日付が入力されています。
R10セルに「=ADDRESS(10,5,1)」と入力すると、$E$10 と表示されます。
日付として表示したいのですが、方法がわかりません。

Aベストアンサー

>日付として表示したいのですが、方法がわかりません。

=INDIRECT(ADDRESS(10,3,,,"Sheet1"))

※日付書式は別途設定してください。

Qエクセルで特定の列にある日付データの中から、指定した日付範囲を抽出する方法を教えてください

例えばこんなデータなのですが、

2002/07/01 99 25 36
2002/07/05 55 33 25
2002/08/01 80 20 51

日付の入っている列を検索して、2002/07/01から2002/07/31
の範囲ならば、その行のデータを別のシートに抽出したいのですが、
日付の範囲は関数でどうすればよいのか分かりません。ACCESSなら
between 9999/99/99 and 9999/99/99って感じで簡単にできるの
ですが。。。エクセルの関数だとIF関数の論理式にAND関数を使って
>=2002/07/01
<=2002/07/31
と入力したので、2002/07/05ならば、いずれもTRUEなので、値を返して
くれると考えたのですが、なぜかダメでした。
(↓こういう入力をしました)
=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

Aベストアンサー

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

------------余談--------------------------
ご質問の条件例の場合特例で 2002/7でればOKなので

=IF(TEXT(Sheet2!A1,"yyyym")="20027",Sheet2!A1,"該当月ありません")

でも可能ですね!

こんばんは!

=IF(AND(Sheet2!A1>=2002/7/1,Sheet2!A1<=2002/7/31),Sheet2!A1,"該当月ありません")

おしいですね(^^;
日付をそのまま入力してしまうと数式上では
 2002/7/31 → 2002÷7÷31 になってしまいます。
ダブルクォーテーションで括って(文字列)入力して
それを数値化しましょう!

=IF(AND(Sheet2!A1>="2002/7/1"*1,Sheet2!A1<="2002/7/31"*1),Sheet2!A1,"該当月ありません")

文字列 ="10" に対して 乗算 *1 としても数式が
なり立ち文字列の数字が数値化されます。="10"*1

--...続きを読む

QEXCELで別のシートのデータを参照して返す方法

ちょっとしたことなのですが、うまく式が書けなくて悩んでいます。

作業用のシート1と参照用のシート2があり、
シート1のA列には
 あおき
 あべ
 いぐち
 いはら
などと文字列(名前)が入力されています。
こちらは今度の野球のスタメンだと思ってください。

シート2にはA列とB列があって、
わたなべ 55
いぐち  43
あおやま 67
いはら  41
などと、名前:背番号が羅列されています。こちらが参照用の全選手の背番号リストだと思ってください。

ここで、 シート1のB列に、A列の名前に対応した背番号を返したいのです。
なので、シート1のB列に
IF(シート1のA列の値=シート2のA列のいずれかの値)だったとき、
適合したシート2の行のB列の値を表示する
という式を入れたいのですが、どのように式を書けばよいでしょうか。

すみませんがどなたか教えてください。

Aベストアンサー

私もその場合はVLOOKUP関数を使用しています。

「B1」=VLOOKUP(A1,Sheet2!$A:$B,2,0)

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QEXCELで入力したものが違うシートにコピーされるようにするには・・

EXCELで、あるシートで入力した数値や文字が違うシートにそっくりコピーされるようにしたいのですが・・・
違うシートに同じ数値や文字をいちいち入力するのがめんどうだったので・・・(あと、入力間違えをすることもあると思ったので)
どなたか教えてください。宜しくお願い致します。

Aベストアンサー

同じブック間でも違うブック間でも、
リンク貼り付けという方法があります。

多分ご質問では、最初のページに「2006年」と入力したら
次からのページの同じ場所に「2006年」と表示させたい、と、こんな感じではないでしょうか?

あるシート(貼り付け元)の範囲を選択し、コピーします。
違うシート(貼り付け先)の1セルを右クリックし、形式を選択して貼り付けで出た窓の下に
「リンク貼り付け」ボタンがありますから、それを押して下さい。

あるシートに入力した文字が違うシートに表示されます。
ただし書式は、違うシートのセルの書式の通り表示されます。
また、あるシートのセルに何も入力されていなければ、
違うシートの該当セルには「0」と表示されます。
この「0を表示しない方法もありますので、
具体的にどのシートのセル番地からどのシートのセル番地、という風に書いてください。
1つのセルのみ貼り付ける場合と、2つ以上の範囲を貼り付ける場合で
貼り付けられ方が微妙に違います。

さて、上手に貼り付けられたら、違うシートに貼り付けられたそのセルを、
また別なシートに次々にコピーしていきます。
1回リンク貼り付けをしたら、このように使いまわすことができます。

あまりにも情報が少ない中回答させていただいたのですが、
上記の中で当てはまる部分があったでしょうか?

実際貼り付けてみて、その後を報告してください。

同じブック間でも違うブック間でも、
リンク貼り付けという方法があります。

多分ご質問では、最初のページに「2006年」と入力したら
次からのページの同じ場所に「2006年」と表示させたい、と、こんな感じではないでしょうか?

あるシート(貼り付け元)の範囲を選択し、コピーします。
違うシート(貼り付け先)の1セルを右クリックし、形式を選択して貼り付けで出た窓の下に
「リンク貼り付け」ボタンがありますから、それを押して下さい。

あるシートに入力した文字が違うシートに表示されます。...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報