- ベストアンサー
Excelのコピペで正体不明の文字列が現れるのですが?
- Excelのコピペで正体不明の文字列が現れる問題について解説します。
- コピペした表の一部が1900年1月の暦のような文字列になってしまう原因は、セル参照の数式にあります。
- Excelの値を貼り付ける際に「同じサイズの結合セル」の警告が出る場合、結合セルが正しく設定されていない可能性があります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No2 です。 補足確認しました。 質問3.セル[C4]=WEEKDAY($B$1,1) の計算結果ですが、 1.セル[$B$1]には、「カレンダーを表示したい年月」を表す基本数値(シリアル値)を入力してあります。 これは、前回も説明しましたが、1900年1月0日を[0]とし、それ以降1日=1づつ加算(減算)して、例えば、今日は1900/1/0から40,392日目と言う風に、日にちを表す数値です。 セル[B1]に 2010/7/1 と入力してください。 何も書式指定しないで日付を入力すると、これは日付だと自動的に判断し、2010/7/1 と表示されると思います。 次に、セル[B1]の書式を、[標準]に変更して見てください。 表示が変わり、「40360」と表示されると思います。 この、「40360」という数字が、日付を表し、1900/1/0 を「0」とし、+1づつ2010/7/1まで加算された「2010/7/1」の数値です。 2.関数WEEKDAY($B$1,1)の最後の[1]は、戻り値を「日曜=1~土曜=7」に指定する為のオプションです。 ちなみに、[2]は、戻り値「月曜=1~日曜=7」、[3]は、戻り値「月曜=0~土曜=6」です。 3.よって、セル[C4]=WEEKDAY($B$1,1)は、セル[$B$1]に入力された日付・曜日により、日曜=1~土曜=7までの数値が返ってきます。 常にその月の初日が日曜日であれば良いのですが、年月により何曜日からスタートするか分かりません。 それを、常に日曜日からスタートさせるために補正をします。 例えば、2010年7月1日の場合、木曜日なので、WEEKDAY関数は[5]を返してきますので、 セル[C4]=$B$1-WEEKDAY($B$1,1)+1= 2010/7/1 -5 +1= 2010/6/26 となり、2010年7月のカレンダーの1行目の初日は「2010/6/26」に補正できた訳です。 (もっと良い関数があるかもわかりません) 質問4.[条件式]=MONTH($B$1)<>MONTH(C4)について、 MONTH関数は、日付のシリアル値に対し、その「月」を返す関数です。 先程説明したように、セル[$B$1]には日付データ(つまりシリアル値)が入力されております。 同じように、セル[C4][D4][E4]・・・・・[C5][D5][E5]・・・・・・・・・・には、表示では[1日][2日]・・・・・と、日しか表示されていませんが、同じように日付データ(シリアル値)が入っている訳です。 「表示形式」で「日」表示になっているだけです。 よって、作成するカレンダーの「月」(いわゆるセル[$B$1]の「月」)と、セル[C4]の「月」を比較して、異なる時は、「条件付き書式設定」で「フォント」の「色」を「白」にして、見えない様にした訳です。 (見えなくする方法もいろいろあると思います) ・・・・・ 説明文書が下手で、分かりづらいと思いますが、御勘弁ください。 関数の本や、ウエブでも色々説明されていますので、勉強されると、「こんな事も出来るんだ」と目の前の鱗が取れた様になり、だんだん面白くなると思いますので、頑張って下さい。 参考URL http://kokoro.kir.jp/index.html ここには、「Word」や「Excel」等の便利な使い方や関数の説明がありますので、参考にして下さい。
その他の回答 (4)
- katusotuna
- ベストアンサー率0% (0/1)
質問1への回答 セルが変わり、入力値が0になったためです。セルは書式設定で日付表示になっており、数値を1900年1月1日=0、と認識しています。そこから何日たっているか、考えてみましょう。セルの書式設定をいじくり回すといいでしょう。 また、コピーしてもセルの入力値が変わってしまうのが嫌だったら、仮にセルが「=K9」となっていたらコピー元のセルに「=$K$9」とドルマークを挟んであげてください。コピペしても動かないはずです。 質問2への回答 「この操作には、同じサイズの結合セルが必要です」ですが、コピーしようとしているセルと、貼り付け先に、セル同士を結合した状態のセル、があるとこの警告が出たように思います。セル同士の結合を解除してからコピペすると言いと思います。 以上、自信あるんですが、もし、間違ってたらごめんなさい。
お礼
回答ありがとうございます。 コピーしようとしているセルと、貼り付け先のセルを双方ともセル結合を解除すると出来ました。 どうもありがとうございました。
- 黒田(@kuro-cyan)
- ベストアンサー率61% (114/184)
No2です 補足確認しました。 当方では、コピー先のセル結合を外せば、エラーが出なかったのですが、バージョンの違いかもわかりませんネ。 ご指摘があって、色々試してみましたが、コピー元の状態と、コピー先の状態で、色んな結果が出ました。 2007では、コピー先の結合を外しておけば、コピー元の状態に関係なくOKだったのですが、両方はずしておけば、間違いないでしょうね。(もう少し勉強します) ・・・・・ それと前回の回答で、1個所訂正もれがありました。 セル[C3]と[C4]の参照先を、[B1]→[$B$1]に訂正しましたが、[F8]も訂正してください。 ・・・・・ 私も余りわかりませんが、質問者さんに提案があります。 1.例えば[表1]から[表2]を参照する場合、複数個所で同一箇所を参照している場合、[表1]からの参照個所は1か所にして、[表1]の中で処理する方が変更する場合に分かりやすいと思います。 (今回の様に、訂正漏れが起こるリスクが大きい) 2.セル[B1]は、なぜ非表示になっているのですか?(フォントの色が白) セル[B1]は、この表では一番大事な箇所(カレンダーの年月を決定)なので、ここに何を入力すれば良いのかを強調する必要があります。 3.セル[F8:I8]に、その月の年月表示がありますが、月によって日数が違いますので、これは表外に出した方が良いと思います。 セル[D2:G2]あたりが良いと思います。 4.表などで、「MS Pゴシック」を使うと、数字により上下が揃いません。 表などでは、「MS ゴシック」の使用をお勧めします。 4.[表1]でセル[C3]と[C4]は、単純にセル[B1]を参照しておりますが、これでは、カレンダーの開始日が、日曜日になるとは限りません。 開始日を日曜日にするための工夫が必要です。 セル[C4]=$B$1-WEEKDAY($B$1,1)+1 とすれば、その月のカレンダーの開始日が決まります。 曜日の欄([C3]から[I3])は、「日」「月」・・・・・「土」と文字で入力して大丈夫です。 セル[D4]=[C4]+1・・・・・・ セル[C5]=[I4]+1、セル[D5]=[C5]+1・・・・・ ・・・・・ それと、1か月は5週とは限りません。最多の6週分を用意する必要があります。 こうすると、例えば2010年7月の場合、6月27日(日)から8月7日(土)迄表示されます。 後は、余計な月の日付は邪魔なので、 「条件付き書式設定」、「数式を使用して書式設定・・・」で、 [条件式]=MONTH($B$1)<>MONTH(C4) [書式]で、[フォント][色]を[白]に設定。 としておけば、当該月分だけの表示になります。 (凝れば色んな表示に出来ると思います) ・・・・・ 但し、上記のカレンダーはセル[B1]に各月の「1日」を入力してください。 入力日により、可笑しな表示になります。 (入力年月日のチェック・補正等しておりません) ・・・・・ 表の作られた主旨も分からず、勝手な事を書きましたが、質問に答える為にはどうすればよいか等、当方も試行錯誤しながら勉強しております。 表のデザイン等は、凝りだしたらきりが無いので、まず、何をしたいのか、どうすれば良いのか等、計算式等基本パターンを完成させ、それから見やすい様に表示方法を考えたらよいと思います。 人生、死ぬまで勉強。頑張って下さい。私も頑張ります。 (説明文が未熟で申し訳ありません。主旨に反していたら、読み流してください)
補足
問題の趣旨は、CS資格 3級相当のコピペの問題なんですが、関数なども色々出て来ました。 コピペの問題としては解決したものの、提出された事柄も遅かれ早かれ取り組むことになるので、この際質問させて頂きたいと思います。 WEEKDAY関数とMONTH関数ですが、先程にわか勉強して来ました。その上で、貴兄が書かれた次のことの意味が理解できません。 質問3.セル[C4]=$B$1-WEEKDAY($B$1,1)+1 WEEKDAY($B$1,1)は数字で出て来ているわけですね? $B$1の表示形式は何でもいいわけですか? 「-」とか「+1」の意味が分かりません。 この式が何故、「日」を表示できるのか、メカニズムが分かりません。 質問4.[条件式]=MONTH($B$1)<>MONTH(C4) 上記において $B$1とC4が何故比較対象になるのか?この式の中における$B$1とC4の意味がよく分からないんですね。 多分私が初心者なので、$B$1とかC4とかの意味をガッチリ把握していないから、こんがらがっているのだろうと思います。数学と違ってエクセルの関数というのは、どうも、すんなりと頭の中に入って来ないですね。(┬_┬) お手数をかけますが、今一度説明をお願い出来ますでしょうか?
- 黒田(@kuro-cyan)
- ベストアンサー率61% (114/184)
(当方、Excel2007ですが、基本機能なので変わらないと思います) 質問1について 元々あったものではありません。 質問者さんが、たった今コピーしたカレンダーです。 原因は、表1のセル[C3]と[C4]で、両方とも相対参照しているから、コピー先のセル[L3]と[L4]の参照地番が変更されてしまった為です。( =B1 → =K1 ) 当然、セル[K1]は空白なので、0(0は日付では、1900年1月0日です)を参照したのです。 コピーする方法は2通りあります。 1つは、No1さんが言われるように、セル[B1]を含めてコピーすれば良いのです。 そうすると、セル[L3]と[L4]はセル[K1]を参照しているが、セル[K1]=セル[B1]=2012/1/1の日付がコピーされて表1と同じ表示になると思います。 2つ目として、セル[C3]と[C4]を絶対参照にしておけばよいのです。 [C3]=B1 → [C3]=$B$1 [C4]=B1 → [C4]=$B$1 この様に、相対参照から絶対参照に訂正してからコピーすれば、どこへコピーしても、セル[B1]を参照するから大丈夫です。 質問2について 「値」をコピーする方法は2通りあります。 1つ目は、先程と同じくNo1さんが言われるように、セル[B1]を含めてコピーすれば良いのです。 だけど、黒枠内に収まりません。 2つ目は、黒枠内のセル[C3:I8]だけをコピーする場合、コピー先のセル[F15]が結合され、[F15:I15]となっている為、これが原因でエラーが出ます。 [F15:I15]の結合を解除してやりましょう。 こうすれば、黒枠内の「値」は無事コピーされるはずです。 但し、「形式を選択して貼り付け」で「値」だけコピーしても、罫線や色までコピーされないので、もういちど、「形式を選択して貼り付け」で「書式」をコピーしてやれば良いと思います。 如何でしょうか。原因は、 1.相対参照している為、参照先が変わってしまった、と、 2.中途半端に一部結合しているセルがあった為です。 分かりにくい説明で申し訳なかったですが、主旨が間違っていたら読み流してください。
補足
丁寧な回答ありがとうございます。答だけ書かれる回答者が結構多いので、大変助かります。 空白のセルが全て、1900年1月0日になるとは知りませんでした(゜-゜) 質問1.は大体理解出来ました。 質問2.ですが、言われた通り、結合を外してやってみましたが上手く行きません。 疑問ですが、大体、コピー元のF8:I8がセル結合されているからコピー先のセル結合は外す必要がないのではないかと思うのですが、間違いでしょうか? コピー元のF8:I8とコピー先のセル結合を、2つ共外してから形式を選択して貼り付けで、「値」→ OKとし、その後にセルを結合すると、上手く行きますね。コピー元とコピー先がセル結合した状態のままでは、なぜエラーになるのでしょうか? 宜しくお願い致します。
- akiomyau
- ベストアンサー率43% (555/1280)
B1のセルのは2012/1/1が入っていますが k1のセルには何も数値が入っていません。 そのためそのセルを0と扱い 1900年1月0日となってしまうため 和暦である明治33年が出ます。 表1のコピーの際にB1を含むようにコピーして貼り付けなかったためでしょう。
お礼
回答ありがとうございます。 何も数値が入っていないと、自動的に1900年1月0日となってしまうというのは気がつきませんでした。ありがとうございました。
お礼
お礼が遅くなってしまい申し訳ありません。パソコントラブルや社会問題の質問で時間をとってしまいました。 数学は大学の教養までやって苦手ではなかったのですが、関数というのはどうも分かりにくいですね。 数学だと分かると分からないがはっきりしていますが、関数は「分かったような気がする」としか言えません(^_^;) 表示されている文字列の裏に数式が隠されていることや、1つのセルに関して式を作ると、他のセルのことが気になって、全てのセルに関して式を作らねばならないと考えてしまいますが、実は、その必要が無くオートフィルを使用すればいいこととか、今までの数学的な常識に邪魔されて理解が難しいです。 紹介頂いたリンクは既に利用させて頂いています。初心者の気持ちに立った説明で大変分かりやすいですね。MONTH関数でも「こんな関数、一体どこで使うねん?」と初心者の気持ちを代弁したセリフがありました(笑) 貴兄(もし女の方だったら、貴女ですが)の説明も何とか理解したような気持ちになっております。 そうですね、人生、死ぬまで勉強ですね!また質問させて頂きますので宜しくお願い致します。