セルには

    A        B     
1 2005年5月   修正あり 

と入力されています。
C1に、AとBに入っている文字をつなぎ合わせ、更に結合した部分を:で区切ろうと思い、C1セルに「A1&":"&B1」と入れました。
すると、C1に 36647:修正あり と出てしまいました。
日付が数値に切り替わっちゃったのですが、日付は日付で数値に切り替わらないようにする方法はありますか?
500行ぐらいあるので・・お願いします。

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

A 回答 (6件)

TEXT関数で日付を文字列に変換してください


なお、"" は " の "~" 内での記述方です。

=TEXT(A1,"yyyy""年""m""月""") & ":" & B1
    • good
    • 0
この回答へのお礼

ありがとうございました
簡単そうな関数で、すぐに出来ました。
解決できて良かったです。

お礼日時:2005/11/07 20:53

エクセルは(1)値と(2)シート上で表示形式で見えている文字とは全く別です。

特に日付について顕著です。
表示計数を細工すると、あるセルに0と入れると大阪、1と入れると京都と表示させることも可能です。
このことを判ってしまえば、この質問は発生しません。
また日付けの値は日付シリアル値という整数値です(1900年1月1日スタートのその日が何日目かの、順序数です。)
また「&」は「値」を結合するもので、表示形式で見えている見た目の文字を結合するものではありません。
文字列は表示形式らしいものはほとんどなく、値もそのもののケースが多いです。しかし、日付を表示形式で見えている形に関数などで変換して「値」にしないと見た目のように結合できません。その方法がTEXT関数やYEAR、MONTH、DAY関数を利用することです。
    • good
    • 0
この回答へのお礼

ありがとうございました
>日付を表示形式で見えている形に関数などで変換して「値」にしないと見た目のように結合できません。
すごく勉強になりました。Excelって奥深いですね。

お礼日時:2005/11/08 20:33

No.2です、訂正します。



誤)
=TEXT(A1,"yyyy年m月:"&B1)

正)
=TEXT(A1,"yyyy年m月:")&B1
    • good
    • 0
この回答へのお礼

わざわざありがとうございます。
出来ました♪
TEXTとは、思いつきませんでした。
いろんな関数があるんですねぇ

お礼日時:2005/11/08 20:31

EXCELは日付をシリアル値で格納しています。


表示だけフォーマットを変えているのです。

故に対処法法は”シリアル値を表示値に変える事”です

方法は二つ
=TEXT(A1,"yyyy""年""mm""月""dd""日") &・・・
とする(日が要らなければ適宜削除)

もう一つはyear、month、day其々の関数にシリアル値を与えてやること
=YEAR(A2)&"年"&MONTH(A2)&"月"&DAY(A2)&"日"&・・・
です。
前者は桁数を固定出来ます。後者は出来ません。

後は見た目の問題ですが
concatenateを使うとすっきりしますよ
concatenate(YEAR(A2),"年",MONTH(A2),"月",DAY(A2),"日"
    • good
    • 0
この回答へのお礼

ありがとうございました
>”シリアル値を表示値に変える事”
仕組みが分かると分かりやすくなります。

お礼日時:2005/11/07 20:54

こんにちは~



C1に
=TEXT(A1,"yyyy年m月:"&B1)

と入れてみてください。
    • good
    • 0

C1


=YEAR(A1)&"年"&MONTH(A1)&"月:"&B1
でいいんじゃないの?汎用性があまりないけど、楽だとおもう。
    • good
    • 0
この回答へのお礼

ありがとうございました
少し難しそうな関数ですが、試してみます。

お礼日時:2005/11/07 20:51

このQ&Aに関連する人気のQ&A

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

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

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

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

QEXILEのカウント関数について教えて下さい。 40行あるA列に同じ文字をセルに入力。B列には異なる

EXILEのカウント関数について教えて下さい。

40行あるA列に同じ文字をセルに入力。B列には異なる文字をセルに入力。C列にA行とB行を結合した文字を表示しています。
D列にC列の行ごとで同じセルの数をカウントしたいと思っていますが
C列は関数がある為、関数をカウントしてしまいます。D列は、40行全て40と表示してしまいます。表示されてない文字はカウントしない様に出来ないでしょうか。教えて下さい。

Aベストアンサー

No.1です。

数式は2行目に入れているのですね?
>何も表示されてない時に1048575と途方にもない・・・

Excel2007以降では最終行が1048576行目になります。
データがない場合は空白セル数(数式は入っているが空白に見えている)セル数が表示されているものと考えられます。

このような場合はエラー処理が必要になります。
一般的にはIF関数で対処できます。
(エラー処理は色々な場面で出てきます)

D2セルの数式を
=IF(C2="","",COUNTIF(C:C,C2))
としてフィルハンドルで下へコピーしてみてください。
数式の意味
C2セルが空白に見えている場合は何も表示しない、
そうでない場合はC列にあるC2セルの個数を表示
といった感じになります。

※ 厳密にいえば数式が入っているので「空白」ではないのですが
現段階ではこの程度でやめておきます。m(_ _)m

QSUMPRODUCT($A$1:$A$10,$B$1:$B$10)とSUMPRODUCT($A$1:$A$10*$B$1:$B$10)

エクセルのSUMPRODUCT関数についてお尋ねします。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)
の違いは何でしょうか?
両者とも同じ答えを返しますが、いろいろ試したところ、前者は範囲内に文字列があってもそれを無視して計算し、後者は文字列があればエラーになるようですが、その理解で正しいでしょうか?
正しいとすれば、なぜでしょうか?

Aベストアンサー

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算するように出来ています。最初、SUM関数に対し、そのように作られました。プログラムとしては、初歩的なものですが、そのアイデアは、今日まで、踏襲しているようです。このオリジナルの仕組みを考えたのは、VisiCalc の開発者、ブルックリン氏です。昔々、本で読んだことがあります。 PRODUCT関数とも共通です。3つの関数は、同じような仕様を持っています。

こちらが、本来の使い方です。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

つまり、
$A$1:$A$10 と $B$1:$B$10 の値を別々に取得しています。

では、
=SUMPRODUCT($A$1:$A$10,$B$1:$B$11)

とすると、なぜ、エラーが出るかというと、$B$11 に対応する数値が、NULL値(有効な値がない)だからです。それは、全体に反映させてしまいます。(理由は分かると思いますが、プログラムが途中で、エラーで止まってしまうからです)

ところが、こちらは、

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)

$A$1:$A$10*$B$1:$B$10 は、分割出来ません。したがって、この数式の中でのエラーは、そのまま、元の数式に反映されます。

ご自分で、ユーザー定義関数を作ってみれば分かります。VBAでも、同じように作ることが可能です。一度、試してみるとよいです。

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算...続きを読む

Qエクセルである文字の並びの入力があるセルのカウント

エクセルである文字の並びの指定された列にある何かが入力されたセル数のカウントについて
=SUMIF(B4:I300,L51,I4:I300)
現在上の数式を使って指定セルの数値の合計は出せるのですが
この数値の合計ではなく、数値が入力されているセルの数をカウントしたいのですが
ググってもヒントが出てきません。
上記の数式のまま簡単んな追加で出来るのか?
全く別の数式になってしまうのでしょうか?

OS7 エクセル2007です。

よろしくお願いします。

Aベストアンサー

間違い:
>文字の並びの指定された列にある何かが入力されたセル数のカウント

やりたいこと:
B列に所定の内容が記入されている行で、I列に何でもいいけど何かが「記入されている」セルの数

=COUNTIFS(B4:B300,L51,I4:I300,"<>")
ただしI列には、生数字など生データが記入してあるとして。



もしもI列に最初から全部「数式が記入されていて」数字とか””が計算されているみたいなのだと、それはまた別のお話なので注意してください。
=COUNTIFS(B4:B300,L51,I4:I300,"<="&MAX(I4:I300))

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

Q(Excel 2003) 日付が入力されているセルの個数をカウントしたい

Excel 2003 です。

2つ質問がありますが、2点とも稀なケースの問題ですので急いではおりません。
お時間のある時にでもアドバイスをいただければ幸いです。
よろしくお願いします。


【質問1】

日付が入力されているセルの個数をカウントしたいのですが

=COUNTIF(B2:B6,">=2006/04/01")

のように数式を記述すると期待通りの結果を求められます。
しかし、セル範囲の中に 38885 のような値を入力すると、そのセルも日付として
カウントしてしまいますよね。
そうなる理由は分かっているのですが、どういう数式を記述すればよいのかが
分かりません。


【質問2】

上記課題を解決できないのでユーザー定義関数を自作しました。

Public Function CountDate(範囲 As Range) As Long
  Dim MyCount As Long
  Dim MyRange As Range
  MyCount = 0
  For Each MyRange In 範囲
    If IsDate(MyRange.Value) Then
      MyCount = MyCount + 1
    End If
  Next
  CountDate = MyCount
End Function

最初は完璧と思えたのですが、1点問題がありました。
セルに 38885 と入力した後に表示形式を日付に変更するとカウントしてくれません。
根本的に記述が間違っているのでしょうか?

Excel 2003 です。

2つ質問がありますが、2点とも稀なケースの問題ですので急いではおりません。
お時間のある時にでもアドバイスをいただければ幸いです。
よろしくお願いします。


【質問1】

日付が入力されているセルの個数をカウントしたいのですが

=COUNTIF(B2:B6,">=2006/04/01")

のように数式を記述すると期待通りの結果を求められます。
しかし、セル範囲の中に 38885 のような値を入力すると、そのセルも日付として
カウントしてしまいますよね。
そうなる理由は分かっているの...続きを読む

Aベストアンサー

2についてですが書式変更時点では確かに計算しませんがそれはユーザー定義関数の仕様で範囲内に入力された時点で正しく計数されますからそんなに問題ではないのでは?例えば何かダミー入力するセルを範囲内に設けては?

Aベストアンサー

書式>条件付き書式

セルの値が 次の値より小さい を選択
値は$B1とし、書式を設定。
設定したセルをコピーすればできませんか?

Q特定のセル範囲で4文字以上入力されているセルの数をカウントしたい

特定のセル範囲で4文字以上入力されているセルの数をカウントしたいと思っています。
VBAで記述すれば簡単なことだと思いますが、これくらいなら関数でもできそうだと思い
チャレンジしてみましたが挫折しました…。

関数の引数に「A1:C5」などという感じで範囲を指定する記述で
できれば短くシンプルな記述を希望しています。

よろしくお願いします。

Aベストアンサー

=SUMPRODUCT((LEN(A1:C5)>3)*1)

=SUM(INDEX((LEN(A1:C5)>3)*1,))
でも可能です

Qエクセルについてなのですが、 例えば指定の範囲内に A B B C A B C A B B C D

エクセルについてなのですが、

例えば指定の範囲内に
A B B C A B C A B B C D B D
と並んだセルからAとDの合計を出したい時はどのようにすればいいのですか?

COUNTIFSだったら複数条件を満たした数を表示するので希望とは違います。
希望はA or Dの合計を出したいのです。

Aベストアンサー

こんにちは!

COUNTIFS関数はAND条件になりますので、今回の質問には適しません。

=COUNTIF(範囲,"A")+COUNTIF(範囲,"D")
のように「A」のセル数と「D」のセル数をコツコツと足し算するのが
間違いないと思います。m(_ _)m

Qエクセル 入力済セル数のカウント

とある範囲のセル内になにかしらの入力がある(blankでない)場合。
“入力があるセル”数を数値として別セルに引用する方法はありますでしょうか。

例:
A1 → [太郎]
A2 → [次郎]
A3 → [  ](空欄の意)

B1 → 2
 ※指定範囲内に、入力のあるセルが2つなので「2」

例:
A1 → [太郎]
A2 → [次郎]
A3 → [三郎]

B1 → 3
 ※指定範囲内に、入力のあるセルが3つなので「3」

Aベストアンサー

=COUNTA(A1:A3)
と計算します。

ただし「空欄」が「全く何も記入されていない」のが条件です。
たとえば数式で「""」が計算されていて、「空白に見える」ではダメです。

Qエクセルの質問です。例えばA1の数値が7.0%、B2の数値がA1の数値

エクセルの質問です。例えばA1の数値が7.0%、B2の数値がA1の数値+1.3%~-3.0%のにときには○をC1に表示、その数値条件+1.3%~-3.0%以外ならC1に×を表示させたいのです。
教えて下さい。
よろしくお願いします。

Aベストアンサー

C1=IF(AND(B2-A1<=1.3%,B2-A1>=-3%),"○1","×")


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

人気Q&Aランキング

おすすめ情報