• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelのセル移動について)

Excelのセル移動について

このQ&Aのポイント
  • Excelのセル移動に関する方法を教えてください。
  • アンケートデータの入力時にセル移動を効率化する方法はありますか?
  • コカコーラのキャンペーンサイトのようにExcelで上位桁のセル入力後、自動的に下位桁のセルに移動する設定は可能ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

一案ですが、  A列 33311444555・・・ とA列に50問のアンケートの数値を入れる B列に =MID($A2,COLUMN(A1),1) と入れて右へ50コピィ 下へたっぷりとコピィしておく B列より右にそれぞれの結果がでると思いますが 如何でしょうか。

ramu9999
質問者

補足

ありがとうございます。 今使っているアンケート結果の入力フォーマットは先方からもらったもので 色々セルに設定が入ってしまっています。 セルに1桁以上の数字を入力するとエラーメッセージが表示されるようになってしまい それでも気にせず続行しようとしたら50桁入力したものは 15桁くらいの数字と+等の記号に変わってしまいました。 で、新規のページでやってみたのですが 全くできず… Excel等は普通に操作できるのですが 関数は普段使わないので… 理解できないまま使っているせいか、間違いを直すこともできません。 また、先方からもらった入力フォームの設定を解く方法も分からず…

その他の回答 (7)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.8

>例えばA1に50桁入力してそのA1の右~のセル50個に数字が1つずつ入ってその後、何かキーを押すとAZにアクティブセルが動く方法はありませんか? この場合は、以下のような設定をします。 データを入力するA列と、その後のAZ以降の列をCtrlキーを押しながら選択して、、右クリックから「セルの書式設定」の保護タブで「ロック」のチェックを外します。 次に「ツール」「保護」「シートの保護」でこのシートのすべてのユーザーに許可する操作で「ロックされたセル範囲の選択」のチェックを外します。 これでA列で50桁の数字を入力し、EnterすればカーソルがAZ列にジャンプし、順次入力セルに自動的に移動させることが可能です(もちろん「ツール」「オプション」の編集タブで「右」方向に移動する設定にしておいてください) A列のデータは入力ミスしたときに一部だけ変更すればよいように、データを残しておき、セルの書式設定で、数式バー(ここで編集)だけに表示されるようにしておくと良いかもしれません。

ramu9999
質問者

お礼

分かりやすい説明ありがとうございます。 この通りやったら出来ました。 ベストアンサーhell-2007さんと迷ったのですが No.1の回答を下さったhello-2007さんにさせていただきます。 (前はお2人選べたんですけどね…)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.7

>A1セルには50桁入ったままですが >これはこういうものなのですか? こうゆう物です。関数ですからね。 そこで 関数で得られた結果の部分を選択してコピィ 形式を選択して貼り付け で 値にチェックを入れて貼り付け を実行します。これで関数で得られたとおりの結果がそのまま値になります。 >個人情報の入力があるんです(そこは3つ分のセルで、1桁、1桁、5桁の3セルです) >A1に入力した後、今は右矢印長押しでAZまで移動して入力をしていて少し面倒なもので… 例えば、せっかく覚えたテクニックです。もうすこし応用してみましょう。  A列に 33444555・・12XXXXX と50桁の質問の後に個人情報を続けて入力します。 AZ、BAに入る式はわかりますよね。そのまま右へコピィすれば大丈夫ですし BBの式ですが、そのままコピィして出来た式の最後の引数 の 1 を5に変更してみてください。 =MID($A2,COLUMN(BB2),5)と云った感じですね。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

フォーマットのセルには入力規則が設定されているようですので、これをそのまま利用する場合はこのセル範囲を選択して「データ」「入力規則」で「すべてクリア」してから数式を入力するようにします。 どこかの空白列に文字列設定したセルに入力する50桁の数字は、セルの書式設定でフォントの色を白にして(あるいはセルの書式設定の表示形式タブでユーザー定義を選択して「;;;」などにします)、画面上見えないようにするとレイアウトを変更する必要はありません。 また、新しい集計用シートを作成する場合も、入力間違いをチェックするために以下のような入力規則の設定をすると良いと思います。 たとえば、A2セル以下に50桁の数字を入力するなら、A2セルから下方向に入力範囲を選択して「データ」「入力規則」で入力値の種類を「ユーザー設定」にして「=AND(LEN(A2)=50,ISNUMBER(A2*1))」と入力すれば、50文字で数字以外は入力できません。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

No1です。説明が不足していましたね。 もしフォーマットが変更できないのであれば 別途、新しいシートを追加して実験してください。 A列を選択して、書式=>表示形式から文字列を選択しておいて下さい。 仮にA1セルに 333322224443311・・・とアンケートの回答を入れておきます。 B1セルに =MID(A1,1,1) と入れます。 A1セルの左から1文字目から1文字を表示するという式です。 B1セルの式を右へコピィして順に 左から2文字目から1文字と云った用にしたいのです。 そこで実験ですが、B2セルに =COLUMN(A1) と入れて右へコピィしてみてください。 順に 1 2 3 ・・・と数値がでると思います。これを利用するわけです。 B1セルの式を =MID($A1,COLUMN(A1),1) として B1セルを右へコピィします。           ↑ $マークを忘れないでください。(詳しくは Helpで 絶対参照 で検索) C1セルには =MID($A1,COLUMN(B1),1) となっているのが確認できるでしょう。 つまりA1セルの 左から2文字目から1文字がでます。 ここまで出来たら B2~AY2を選択して、AYセルの右下へマウスを移動すると + の表示になりますので そのまましてへドラッグしてください。 但し表示される数値は文字として出ていますので、数値にしたければ最初の式を =MID($A1,COLUMN(A1),1)*1 と意味のない掛け算をさせます。 これを機会に MID関数、COLUMN関数について Helpで調べてみてください。 アンケート入力の作業が終わったら 結果の部分をコピィ フォーマットのシートを選択 編集=>形式を選択して貼り付け から 値にチェックをいれて 貼り付けては如何でしょうか。

ramu9999
質問者

お礼

分かりやすく説明していただきありがとうございます。 無事、入力できました。 ただ1つ疑問点が… A1セルに50桁数値を入れてEnterを押すと右側の50セルに1桁ずつ数値が表示されたのですが A1セルには50桁入ったままですが これはこういうものなのですか? (そうなるといちいち直さなくちゃなと思って)

ramu9999
質問者

補足

後、もう1点(お礼より後に補足を入れています) 実は50問入力した後に、1つ自由記述を入力するセルと、個人情報の入力があるんです(そこは3つ分のセルで、1桁、1桁、5桁の3セルです) で、例えばA1に50桁入力して そのA1の右~のセル50個に数字が1つずつ入って その後、何かキーを押すとAZにアクティブセルが動く方法はありませんか? A1に入力した後、今は右矢印長押しでAZまで移動して入力をしていて少し面倒なもので… 何から何まですみません(汗)

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.4

VBAで対応すればできます。 以下はプログラム例です。 数字1~5までの1文字を入力すると、セルに値を設定し次セルへ移動します。 【Sub 入力イベント_設定()】は一度だけ実行してください。 【Private Sub Workbook_Open()】にして、EXCELを開いた時に自動的に設定した方が便利かも知れません。 ----------------------------------------- Sub 入力イベント_設定()  Dim I As Integer  For I = 1 To 5   Application.OnKey I, "数字入力" & I  Next I End Sub Sub 数字入力1()  ActiveCell = 1  Call NEXT_CELL End Sub Sub 数字入力2()  ActiveCell = 2  Call NEXT_CELL End Sub Sub 数字入力3()  ActiveCell = 3  Call NEXT_CELL End Sub Sub 数字入力4()  ActiveCell = 4  Call NEXT_CELL End Sub Sub 数字入力5()  ActiveCell = 5  Call NEXT_CELL End Sub Sub NEXT_CELL()  ActiveCell.Offset(, 1).Select         ' 右のセルへ移動  If ActiveCell.Column > 50 Then        ' 列が50を超えたら   Cells(ActiveCell.Row + 1, "A").Select   ' 次の行の先頭へ  End If End Sub

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 (1)入力セル列のセルの書式設定→表示形式→文字列とします (2)50問のデータ入力 (3)入力セル列を選択→データ→区切り位置    ・「スペースによって・・・」を選択→次へ    ・データレビュー欄の各データ間で左クリック(↑で区切りマークが表示)    ・すべて区切り入力後、完了(横方向に区切り単位に列分割されます)

ramu9999
質問者

補足

いまいちやりかた分かってませんが このアンケートは千人分以上打ち込む予定です。 このやり方はこれを1000回やらないといけないやり方ですか? 1回やるだけで全体にそれが反映されるのであればやってみようかとも思ってるんですが いまいちまだやり方がつかめていません。 ただ先にNo.1,2の方の回答をやりたいと思っています。 ただまだやり方が不明なのですが…

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>数字Enter数字Enterの繰り返しだと50回近くキーを押す回数が減らせるので時間短縮にもなって助かります。 Enterキーを押す作業を省略するなら、No1のhallo-2007さんの回答の数式を利用する方法が最も効率的です。 ただし、この場合は、50桁の数字の入力セルは、セルの書式設定で表示形式を「文字列」にしておいて入力する必要があります。 またMID関数で返す値は文字列数字ですので、COUNTIF関数などでB列から右の数字を集計するときは「"1"」のように文字列に指定する必要があります。 数字のまま集計したいなら数式を以下のように変更してください。 =MID($A2,COLUMN(A1),1)*1

ramu9999
質問者

補足

ちなみに私のExcelは2003です。 hello-2007さんの回答も少し意味が分かっていないのですが 「入れて右へ50コピィ 下へたっぷりとコピィしておく B列より右にそれぞれの結果がでると思いますが 如何でしょうか。」 この部分なのですが A1に50桁の数字を入れてB1に関数を入れて で、50問入力だとするとA1を右クリックでコピーで B1も含んだ49セルをコピー対象としてドラッグしてコピーですか? それともB1をコピーですか? 後、下へたっぷりとコピーというのは B1に入れた関数をB2,B3とBの列にコピーするという意味なんでしょうか?

関連するQ&A

専門家に質問してみよう