• ベストアンサー

Excelの関数?について

ある順番で0から9までの数が重複することなく並んでいます。 例えば、6723018954だとします。 連続した10個のセルに1つずつ数を入れていくのですが、その時、A1に6を入力すると次のセルに7、その次のセルに2、そしてその次のセルに3、…と入り、またA1に9を入力したときには次のセルに5、その次のセルに4、そしてその次のセルには頭に戻って6、…と入るようにしたいのです。 連続した10個のセルは行方向でも列方向でも構いません。 IF関数を使って分岐させればできないことはないのですが、入れ子が深くなって面倒で、もっと簡単にできる方法はないかと思っています。 ご回答よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

A1  6723018954 質問指定の数字列。 B1の式 =A1&A1 67230189546723018954 作業・ワーク・セルです。 A2:A4に、たとえば 9 2 8 と入れるとする。 ーー B2の式 =MID($B$1,FIND($A2,$B$1)+COLUMN()-1,1)  C列より右にB2の式をJ列まで複写。 B2:J2の式を下方向3行分に複写。 結果 9 5 4 6 7 2 3 0 1 8 2 3 0 1 8 9 5 4 6 7 8 9 5 4 6 7 2 3 0 1 VBAに関心があるので、VBAでやろうとしたが、 小生でも、上記の関数をすぐ思いついたので挙げる。$の付け方だけ注意必要。

kaisaka
質問者

お礼

ご回答ありがとうございます。 考えていた通りうまくできました!

その他の回答 (4)

回答No.5

例えば、B1に、 =VALUE(MID("67230189546", FIND(A1,"6723018954")+1,1)) と入力、J1までコピペとか。

kaisaka
質問者

お礼

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

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>IF関数を使って分岐させればできないことはないのですが、入れ子が深くなって面倒で、もっと簡単にできる方法はないかと思っています。 INDEX関数で目的通りの抽出ができます。 但し、抽出する位置を割り出すにはMATCH関数とMOD関数を組み合わせます。 添付画像の配置を例としてA6へ任意の値を入力するものとしてB6セルへ次の数式を設定します。 =IF(A6="","",INDEX($A$1:$J$1,MOD(MATCH(A6,$A$1:$J$1,0),10)+1)) B6セルを右へJ6セルまでオートフィルコピーすれば完了です。

kaisaka
質問者

お礼

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

  • msMike
  • ベストアンサー率20% (363/1772)
回答No.2

次の下準備を実行してください。 1.例えば、K列全体を選択 2.Ctrl+1(セルの書式設定)を実行 3.表示形式]タブ上の[分類]で“文字列”を選択して[OK]をチョーン 4.範囲 K1:K10 の上から 6、7、2、3、0、1、8、9、5、4 を入力 5.範囲 K1:K10 を選択 6.Alt+FT(Excelのオプション)を実行 7.左側のメニューで[詳細設定]をチョーン 8.画面の下部に隠れている[全般]背下の[ユーザー設定リストの編集]をチョーン 9.右側下段のボックス内に「$K$1:$K$10」と表示されていることを確認(その通りになっていなければ、その右端にある将棋盤アイコンをツンした後で、ステップ5を実行すれば好い。「$K$1:$K$10」になったことを確認したら将棋盤を再度ツン) 10.[インポート]⇒[OK]⇒[OK]を実行 此処からが本番ネ 11.「連続した10個のセルに1つずつ数を入れていく」シートを開く 12.文字列に書式設定した任意のセルに任意の1桁数字を入力 13.このセルを上下左右にオートフィルするだけ

kaisaka
質問者

お礼

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

  • mdmp2
  • ベストアンサー率55% (438/787)
回答No.1

MID関数しかないようです。 =MID(文字列,開始位置, 文字数) ・文字列は、6723018954 が入力されたセルを指定 ・開始位置は 1~10 ・文字数は 1 10個のセルにそれぞれ、数式を入力したら、それらをまとめてコピーし、次の10個の場所にペースト こうして、10個のセルにバラバラに表示されている数値は、数式なので元の6723018954 が削除されると、なくなります。(エラーになる) 数式から値に変換するには、 ・全範囲を選択して、コピー ・同じ場所に、値としてペースト

kaisaka
質問者

お礼

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

関連するQ&A

  • Excelの計算式または関数について

    Excel2007を使用しています。  次のようなことをやりたいのですが、計算式または関数、または関数と計算式の組み合わせを教えていただきたくお願いいたします。 問題  例えばA列にA1からA10まで何らかの数値は入っていて、次にA11に何らかの数値を入力した場合、A11に入力した数値がA1からA10までのいずれかのセル入力されている数値と同じ場合にはB11のセルに「重複」と表示する。以下A12セルへの入力された数値はA1からA11までのいずれかのセルに入力されている数値と同じ場合にはB12のセルに「重複」と表示する。以下セルA13以下へ入力する数値についてもすでに入力済みのセルの数値と同様な比較を行って対応のB列のセルに「重複」と表示をする処理を行う。  以上のような処理を行いたいのです。よろしくお願いいたします。

  • LARGE関数で空白セル数だけ飛ばして記入したい。

    LARGE関数で空白セル数だけ飛ばして記入したい。 たとえばA列に連続する数値がランダムに入力されていて、その値の高い値から、LARGE関数で順番をB列に記入しました。しかしA列に空白セルがある場合、空白セル数だけ高い値を飛ばして順番をつけたいのですが、良い方法は御座いませんでしょうか? 例 A列に1から15までランダム記入されていて空白セルが2つあれば13から1、2としていきたいのです。 B1=IF($A$1:$A$15="","",LARGE($A$1:$A$15,A1))↓ と記入すると15、14がエラー表示になって 13から1になってしまいます。それを、13から1、2としていきたいです。 お願いします。

  • エクセル関数について

    エクセル関数の質問です。 AA列にAからEまでの文字がランダムに重複して20行入っています。 AC列に人名が20人分重複しないで入っています。 AA列のたとえばBに対応するAC列の人名を1つのセルに連続して取り出すにはどのような関数を使用すればよいですか? たとえば ”太郎、花子、次郎、・・・”のように、 LOOKUP関数では1つの文字列しか取り出せません。 教えてください。

  • エクセル(2003)のCOUNTIF関数について

    A1セルに受注番号(項目)とし、B1セルにチェック(項目)を入力してあります。 A2セルからA100セルまで001、002等入力されています。 B2セルからB200セルまで =IF(COUNTIF($A:$A,A2)>1,"重複","") と関数を入力しました。 受注番号の重複確認を行うためです。 セルA2からセルA100までは重複確認できています。 困っていることは、セルA101以降は空白セルなのですが、セルB101からB200セルまで重複と表示されてしまいます。 セルA101以降が空白の場合に、セルB200まで重複と表示させない関数はありますでしょうか?

  • エクセル 関数

    文字列で入力されている数字に1をたした数を 参照させたいのですがどうすればいいのでしょうか? A1のセルに1月と文字列で入っていた場合 次のA2のセルに2月と反映される式をA2に いれたいのですが・・。 関数でもVBAでもいいのですが方法はありますでしょうか? 数字だけだと反映されるのですが月が入ってしまうと どうもうまくいきません。

  • EXCELの関数について教えてください。

    EXCELの関数について教えてください。 A列のセルに「18:00 」or 「18:30」 or「19:00」 or「19:30」と入力するとB列のセルに「8:00」と表示され、「17:30」と入力すると「7:00」と表示される方法を教えてください。 セルの書式の表示形式は「文字列」ではなく「時刻」に設定したいです。 多分IF関数をつかうを使うのではないかと思うのですが、書式が「時刻」のためかうまくいきません。 よろしくお願いします。

  • エクセル関数について

    入力したデータが重複していた際、セルの色を変えるか警告文を表示したいです。 問題なのは3回目に重複した際に表示をしたいのですが、どのような関数を使用すればよろ しいでしょうか? ちなみに範囲はA列、C列、E列…というように飛び飛びです。 このどの列に入力しても3回目の重複で警告文などが出るようにしたいのです。 分かりづらい説明で大変恐縮ですが、お分かりになりますでしょうか? よろしくお願いいたします。

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • エクセルの関数について教えてください

    エクセルでvlookupを使い得た結果がAだとします。 次にif関数でvlookup関数の結果のセルがAならばと言う式を作りました。 が、if関数が認識してくれません。 同じif関数の式でキーボードからAを入力したら結果が出ます。 vlookup関数のセルにはAでなく式しか入ってないからでしょうか? vlookup関数の結果をif関数で認識する方法をお願いします。

  • Excelのif関数を使ったのですがうまくいきません。

    Excelのif関数を使ったのですがうまくいきません。   | A | B | C | D | E ----------------------- 1 | A | A | A | A | 5 2 | B | A | A | B | 4 3 | C | C | A | C | 2 のようにA1~D4のセルに入力されたA,B,C の組み合わせによって E5のセルに1~5の数字を入れていきたいのですがAAAA~CCCCの組み合わせが 15通りあってif関数では入れ子ができません。 AAABもAABAも同じと判断させて1~5の数字を自動的に入力させたいのですが 何かいい方法はないでしょうか。 教えてください。

専門家に質問してみよう