- ベストアンサー
エクセルで出来るでしょうか?
毎時間ごとの数値の変化を整理しております。 行方向に日付を書き、列(下方向)に1日分24時間のセルがあります。 A B C 1 1/1日 1/2日 1/3日 ・・・・ 2 38 38 39 3 1時 38.12 38.99 39.01 4 2時 38.13 38.95 39.05 5 3時 38.20 38.90 39.08 6 ・ 23 ・ 24 22時 38.77 38.85 39.50 25 23時 38.88 38.98 39.68 26 24時 38.90 39.00 39.78 これらの数値をインプットする作業ですが、A3セル~A26セルまで 毎セルごとに、38の整数を打たなければなりません。 日付により、数値の整数が異なってきますので(C列では整数が39) 日付の下セルに、その日の大部分を占める数値を入れて (A2セルに38を)A3セルに、少数点以下の0.12を入れると、 A3セルに38.12と現れるようにしたいのですが、方法がありますでしょうか? シートを、整数用、少数点用、合計用と3枚使うこともしましたが、 後処理が大変なため、上記の方法があればと思い 質問させていただきました。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> 日付の下セルに、その日の大部分を占める数値を入れて > (A2セルに38を)A3セルに、少数点以下の0.12を入れると、 ここまでしておいて、最後に 1.2行目を選択してコピー 2.3行目以降のデータが入ってる行を選択して「形式を選択してペースト…」の 「値」と「加算」をチェックして「OK」 これでおしまいです。
その他の回答 (5)
- nishi6
- ベストアンサー率67% (869/1280)
マクロを書いてみました。 該当欄には『0.12』と入力するのではなく、『12』と入力するようにしてみました。 やっている事は 『Sheet1で 3行目から26行目のセルに 単一入力があったら 入力値/100+2行目の値 に書き換える。 』です。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示し、Sheet1をダブルクリック。 出てきたコードウインドウに、下記マクロをコピーして貼り付けます。 Sheet1に戻り、3行目から26行目のセルに入力してみて下さい。 ここから ↓ Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim Kisuu As Double '基本となる数 On Error GoTo ErrorHandler 'エラー対応 With Target '単一セルの入力の場合 If .Count = 1 Then '3行目から26行目の場合 If 3 <= .Row And .Row <= 26 Then '基本となる数値を取り出す Kisuu = Cells(2, .Column).Value '入力値を書き換えてもイベントが起きないようにする Application.EnableEvents = False '入力値を書き換える Target = Kisuu + Target / 100 '次の入力でイベントが起きるようにする Application.EnableEvents = True End If End If End With Exit Sub ErrorHandler: 'イベントが起きるようにして終わる Application.EnableEvents = True End Sub
お礼
nishi6様 ご回答ありがとうございます。 ご指示のとおり、マクロでテストしました。 正確な答えを得ることができました。 私を含めた回りの方々は、マクロが理解できていません。 受けた資料を、どのような台紙(エクセル)にインプットしてらうと 成果表を提出し易いか?を考えながら皆様に台紙を渡し、 仕上がってきたインプット済みのデータを取り纏めています。 『補完』等、nishi6様から以前教えていただいた方法は今でも 活用し、もし、それが無ければ、今頃私は骨と皮だけになっていたと 思います。(現在、水膨れ状態です) お約束していたマクロの勉強は、スタート前に靴を買う資金を調達するような 段階ですみません。 ご回答を、再度、ありがとうございます。
- milk1284
- ベストアンサー率14% (1/7)
こんにちは! これが良い方法かは、分かりませんが...。 入力したいセルを選択し、右クリックの中の セルの書式設定→表示形式の中のユーザー定義を クリックします。 右側の種類の欄に 38゛.゛?? と入力してみて 下さい。 因みに、セルに数字を入力する時は 12 と入れるだけで 38.12となると思います。 これでよろしいでしょうか?
お礼
milk1284様 回答をありがとうございます。 早速テストしてみました。 ご指示の方法で求める数値が正しく出ました。 今回の質問に対し、いくつもの方法を教えてもらい そのどの方法も驚きです。 周りの方々と相談して、各自が自分に一番合っている 方法を選びますが、最大の驚きはmilk1284様の方法でした。 ありがとうございます。
- telescope
- ベストアンサー率54% (1069/1958)
置換したらどうでしょうか? 「.12」のように小数点以下を入力しておいて(表示は「0.12」になります。) 38を加えたいセルを範囲指定して、 検索文字列に 「.」 (画面で分かりにくいかもしれませんが、小数点のみです。) 置換文字列に 「38.」 (「38.」38と小数点) で、すべて置換を押せば「0.12」は「38.12」に変わります。 列ごとに整数部が変わるなら、それほど手間はかからないと思います。
お礼
telescope様 ご回答ありがとうございます。 文字の置換は時折したことがありましたが、 『.』を置換することは、とても一般人には考えられない発想です。 お名前から想像すると、宇宙に関係ある方ですか? または、本当は宇宙の方ですか?(JokeでないJokeです) 望むようにでき、修正するのも簡単でした。 ありがとうございます。
- BlueRay
- ベストアンサー率45% (204/453)
私も、No1さんと同じでVBA使った方が簡単に出来ると思いますよ。 あと、シートを分ける場合は3枚でなくても2枚で出来ます。 準備するシート(2枚):入力、結果 基準となる整数は各日ごとに決定しているのだから、その値(上で言えばA2)と 入力した値を足して結果シートに出力すればよいだけです。 例: A2:38 A3:0.12 結果シートのA3に次の式を書く。 =入力!A3+入力!A2 結果シートのA3に「38.12」が表示されます。
お礼
BlueRay様 ご回答ありがとうございます。 そうですね。シート2枚でも出来ますね。 現在の作業は、#6の回答者様の方法を使うのが 楽かな? と考えております。 お忙しいなか、回答をいただき、ありがとうございました。
- k-family
- ベストアンサー率34% (180/523)
私なら、VBAで、って考えてしまいますが、 >シートを、整数用、少数点用、合計用と3枚使うこともしましたが、 この方が簡単でずっと良いのではないですか? 少数点用のシートには「0.12」ではなく、「12」と入れて合計シートに合計するとき計算すれば良いですし。 後処理、と言うのがわかりませんが、合計シートの該当範囲を選択し、コピーしてから同じ位置に「編集」-「形式を選択して貼り付け」で「値」にチェックを入れて貼り付けすれば普通に入力したものと同じように扱えます。
お礼
k-family様 ご回答ありがとうございます。 私は、VBAを理解しておりませんので、質問にそのことを書いておくのを 忘れており、失礼しました。 文系です。数値を扱うのは好きですが、エクセルでVBAとなると、 立ち向かう勇気はありますが、日々雑用の所為にしてサボってます。 今年になって、VBAが何を意味するのか分かった次第ですので、 次の質問時には、VBA以外の方法でと記入しておきます。 ご回答ありがとうございました。
お礼
grumpy_the_dwarf様 ご回答ありがとうございます。 そうです。! これです。! これが欲しかったです! 「形式を選択してペースト…」はよく使っていましたが、 その下の演算等は、未知の世界でここ10年間も触らずにおりました。 教えていただきました方法は、数値の修正も楽に出来、 これで今後の作業は楽になります。 この作業を手伝ってくださる方にも 得意げに教えちゃいます。 ありがとうございました。