• ベストアンサー

数値ではない連続データを関数で(excel)

excelにて、あらかじめ関数をいれておいて最初のセルに 入力すると、連続データになるようにしたいのです。 数値なら二行目に =A1+1 とでもいれておけばいいのですが、今回入れたいものは MM0001のような文字列?です。 フィルハンドルでの手動の操作ではできるので なにか関数があるのではないかと思ったのですが・・・。 検索しても、ヘルプみても見つけることが できませんでした。どなたかアドバイスお願いします。

  • fumic
  • お礼率23% (11/47)

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

  • ベストアンサー
noname#176215
noname#176215
回答No.8

文字列の数や桁数など全て可変にするなら =IF(TYPE(-RIGHT(A$1))=1,LEFT(A$1,LEN(A$1)-LOOKUP(10^16, RIGHT(A$1,COLUMN($A:$O))*1,COLUMN($A:$O)))&TEXT(LOOKUP( 10^16,RIGHT(A$1,COLUMN($A:$O))*1)+ROW(A1),REPT(0,LOOKUP( 10^16,RIGHT(A$1,COLUMN($A:$O))*1,COLUMN($A:$O)))),"") ここまでしないとダメだと思います。

fumic
質問者

お礼

みなさん、アドバイスありがとうございます。 結論からいうとこの方の回答が、ベストでした。 私の説明が悪かったのかもしれませんが、 A1を参照してA2以降でズラ~っと並べる分には いけたのですが、A5以降に並べるなどをすると ずれてしまいます。これは列を返すという関数を 使ってるからなのでしょうか?この条件を説明していれば 対応できたのかもしれませんね・・・反省です。 いずれにしてもこの方の入力ではそれが回避されてました。複雑すぎて何をしてるかわからないので 結果、自分のものにはなりませんでしたが・・・。 ありがとうございました。

その他の回答 (9)

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

>パソコン素人が使用する目的で作っているので 最初のセルに入力する(MM0001)と自動でダ~っと でる形にしたいのです。 関数でやるほうが。素人には余計わかりにくいのではないですか。 既に出ている関数回答を素人はすぐ説明なしで理解できますか。 関数偏重をエクセル関数病と私はなずけています。 MM0001のセルで+ハンドルを出して、下へ引っ張れば MM0001 MM0002 MM0003 ・・になるのはご存知でしょうが、 こういうのが素人の為でないという発想が不思議。 関数は自作する人の考えることです。使う人は関数のことは考えず 結果だけ見ればよい。 関数で、作った人以外の素人が便利なのは、入力したとき初めて連番 が現れる仕組みでしょうか。 =IF(A1="","",・・・のように。 あらかじめセルに連番を表示をしてしまって良いのなら、関数に拘る理由はないと思う。 質問の意図や表現が不明。 MN0001A の0001部を1ずつ増やしたという質問なら、質問に値すると納得するが。

fumic
質問者

補足

う~ん、何を言いたいのでしょうか? あなたの常識を押し出し、関数にこだわることを病的に扱い、その上アドバイスしていただけるわけでもなく・・・。黙ってスルーしてくたださればいいものを。 この短い文章の中で私のやりたいことを十分に理解してもらえることが難しいとは思いますが。 今回話しに出した素人とは、パソコン覚えたての人ではなくパソコン恐怖症的な全く体が受け付けないに等しい40代のおばさんのことなんです。工場のラインで使うものですから。こういう人に対してPCを使用してもらうときはこのカーソルが十字になったとき・・・なんていっても難しいのです。仮にそれでわかりましたといわれたところでその後が不安でしょうがないのです。実際分かってないことが多いですから。そうなると、入力や操作を最小限に抑え、入力する部分を色分けし、最初のシリアルと測定した生データだけを入れられるものを作る必要があり、関数をいれたところをロックするまでやるのがベストだと私の経験上の判断なのです。そりゃアクセスで入力フォームつくれば問題なくできることはわかってますが、そうもいかないのです。自分の常識から外れた書き込みがあったときに不思議だとか不明と思う感覚は理解しますが、それを受け入れた上で一緒に考えてくれる、それが心の余裕ではないのでしょうか?一応補足として書かさせて頂きました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.9

No4です。 > この関数はどういった意味なんでしょうか? =IF(A1="","",LEFT(A1,2)&TEXT(ROW(A2),"0000")) A1が空白なら空白にしなさい。 そうでないならA1の文字列の左から2つとA2のある行番号を0000の形式でくっつけなさい。 って意味ですよ。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.7

=LEFT(A$1,FIND("0",A$1)-1)&TEXT(ROW()-1+VALUE(RIGHT(A$1,LEN(A$1)-FIND("0",A$1)+1)),REPT("0",LEN(A$1)-FIND("0",A$1)+1)) 解説 LEFT(A$1,FIND("0",A$1)-1) 部分は セルA1に入力した文字列で  先頭部分のアルファベットまでを表示 アルファベット以外の文字でも良し。 文字列で 何番目にゼロが出現するかを FIND関数で見つけ ゼロの前までの文字列を REFT関数で表示 &TEXT(ROW()-1+VALUE(RIGHT(A$1,LEN(A$1)-FIND("0",A$1)+1)),REPT("0",LEN(A$1)-FIND("0",A$1)+1)) VALUE関数で セルA1のアルファベット以降の文字列を数値に変換し row()関数-1で加算 TEXT関数で 加算する数値を セルA1の 数字列の個数を REPT関数で対応 長い数式ですが セルA1に 入力した文字列 がどんな表記でも対応

  • kenken0
  • ベストアンサー率24% (46/190)
回答No.6

1です。アルファベットが固定であることが原則ですが、表示形式を先ほどのようにしておいて、セルには=A1+1のように書いておきます。そうすれば出ますが・・だめでしょうか?

回答No.5

No.2の方の回答でいけますよ。 オートフィルではなく、質問文にある式(=A1+1)で大丈夫です。 オートフィルは、この式をオートフィルすればいいんです。 ただし、表示形式なので表示上だけしか変わりませんので、Excelは4桁の数字と認識しています。 入力自体もMMは入れる必要がなく、4桁の数字を入力するだけで表示されますよ。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

> 最初のセルに入力する(MM0001)と自動でダ~っと > でる形にしたいのです。 では、最初のセルがA1の場合、A2以降に =IF(A1="","",LEFT(A1,2)&TEXT(ROW(A2),"0000")) といれときます。 A1にMM0001でもCC0001でも入れてみてください。

fumic
質問者

補足

みなさん、いろいろと回答ありがとうございます。 この方の回答が一番目的にあってました。 そこで教えていただきたいのですが この関数はどういった意味なんでしょうか? ヘルプでtextやrowを調べたのですがいまいち・・・。 leftまでは分かるのですが。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

="MM"&TEXT(ROW(A1),"0000") でいかがでしょう?

  • kenken0
  • ベストアンサー率24% (46/190)
回答No.2

セルの書式設定でユーザー定義を選び、"MM"0000と入力してください。次に、数値データのみをセルに入力します。 後はそのままオートフィル(だったっけ?)で連続データを選んで完成♪

fumic
質問者

補足

何度もすみません。やはり説明が悪かったようで・・・。 オートフィルのやり方は理解してます。 パソコン素人が使用する目的で作っているので 最初のセルに入力する(MM0001)と自動でダ~っと でる形にしたいのです。

  • kenken0
  • ベストアンサー率24% (46/190)
回答No.1

連続データとのことですが、MM0001の次はMM0002でいいんですか??頭のアルファベットは変わらなくていいならできますが・・。MM0001→MN0002→Mo0002・・・みたいになるんでしょうか?

fumic
質問者

補足

説明不足でした。 MM0001,MM0002,MM0003という感じにしたいのです。

関連するQ&A

  • 連続データの入力

    お世話になります。 エクセルで、たとえばセルA1に1、B1に10000と入力があるとして、 別のセルに、1.2.3.4.5.......10000と行方向へ入力したいです。 要するに、セルA1の入力値からB1の入力値までの、 連続する数値を入力します。 実際には、上記のような例が200行程度あり、 各行の開始値にも終了値にも、規則性はありません。 (1行目が1~10000、2行目が10505~11223等。桁は7桁まで) 結果の連続データは、1列に収まる必要はありません。 オートフィルで入力したり、先にMAX行まで連続データを入力後 不要な分を削除するようなやり方では、件数が多すぎて大変です。。 イメージとしては、マクロで動かせば・・・とは思いますが、 知識が乏しく、解決できませんでした。 お知恵を拝借できれば、幸いです。 よろしくお願いします。

  • フィルハンドルができない

    フィルハンドルができない 例えばLEFT関数とか数式をを入れた時、その式を1000行目まで フィルハンドルで一気に入力したいとします。 通常はできるのですが、その1000行の中に空白が あったりすると、フィルハンドルはその空白のセルで止まってしまうので、 手で1000行目までハンドルを持っていかなければいけません。 何か、簡単に一気に入力できる方法はないでしょうか。 連続データの作成をやってもうまくいかなかったです。 ↓  下の場合だと、A列にLEFT関数の式を入力してフィルハンドルすると、 B列4行目に空白があるので、3列目で連続のデータがとまってしまいます。       A列     B列 1行目 LEFT関数  1234 2行目 LEFT関数  1233   3行目 LEFT関数  1234           4行目           空白            5行目         1233           

  • Excel数値16桁以上の関数での並び替え

    環境 Windows 7 Excel 2010 表内(5×5)の1行ごとに5列のセルを「&」で結合し、37桁の数値を表右側のセルに作成しました。(5つ)厳密に言うと表示形式を文字列とした37文字です。 これを関数のみを使用することで、直接もしくは、順位を求めてから数値的に並び替えを行うことは可能でしょうか。 ご教授お願いいたします。

  • 関数 連続データの生成

    =IF(DAY(D$2)=1,D$2,"")という関数を連続で100セル(行)にオートフィルしたいと考えています。 100セルを選択してコピペではなく、連続データ生成などで行う方法はありますでしょうか? 大変お手数ですが、よろしくお願いいたします。

  • EXCEL関数でセルの数値の個数を求めたい

    以下のように各セルに入力されている場合に各セルに含まれる "," を除いた数字の個数の合計を求めたいのですが、どのようにすればできるでしょうか。 以下の場合ですと、 1行目 3個 2行目 2個 3行目 3個 で、8個という結果を得たいです。 LEN(substitute(A1,",","")) や (LEN(A1)+1)/2 などで一つ一つのセルに含まれる数値の個数は出せますが、列全体の個数の合計を求めたいです。 ---- 列A 行1-> 3,6,9 行2-> 2,5 行3-> 2,8,11 ※入力規則として、数値を","で区切ります。 ※列を追加して上の関数を各行に設定した上で合計を出す方法以外で。

  • 「Excel」 フィルハンドルで連続データがでる理由

    Excelで連続データを自動入力するオートフィル機能というものがあると思います。 例えば、1と入力してフィルハンドルを使ってドラッグすると1111111となってしまいます。 コントロールキーをおしながらフィルハンドルでドラッグすると123456となってくれます。 どうして違いがでるのでしょうか。 そういうものといったらそれまでなのですが、、、。 お分かりになる方、教えてください。

  • 連続データの作成(E)が選択出来ません。どうすれば !

    エクセルのオートフィル機能:連続データの作成 について、教えてください。 エクセルに数値を入力する作業をしています。 毎回、与えられたエクセルファイルの指定された一つの列に、数値を入力してゆく作業です。 例えば、1 2 3 ・・・ 100 といった連続したデータを入力する際、つい、昨日までは、最初のセルに1を入力した後、そのセルの右下から、マウスの右をおさえた状態で下へドラッグし、「連続データ(E)」というのを選び、100までのデータを取得していました。 ところが、今日与えられたエクセルファイルだと、出来ないのです。 つまり、先ほどの例で言うと、1を入力したセルの右下からマウス右をおさえたままドラッグしても、「連続データ(E)」というのが薄いグレー文字のままで、選択不可能なのです。 どうすれば、昨日までのように出来るのでしょうか? 初心者ですが、どうぞ、よろしくお願いします。

  • Excel関数で数値のみ取り出したい

    Excelの関数について教えてください。 A列には単位付の数値が入っています。数値の桁数は決まっていませんが、3桁区切り、小数も含まれて居ます。単位はkm2とか、m3、L、Kw、gとかの3文字以内です。 この列から、B列に「数値のみ取り出したい」場合の関数式を教えてください。

  • Excelのことですっごく困ってます!!!!

    エクセルでオートフィル機能を使うと連続データの入力や文字列などをコピーしたり出来ますよね!! そこで質問なんですが、数百の数値が入力されていて指定したセルに数式を入力してオートフィル機能を実行すれば簡単に全部にその数式が適用されるとは思うのですが、数百の数値の中に文字列が入力されている場合「0」か「エラー」が入力されてしまうと思うのですが、文字列だけを飛ばして数値入力されている行だけに数式を適用されるようにすることは出来ないのでしょうか???? データが限りない数あります。文字列の行に入力されてしまう「0」や「エラー」を消すだけでもかなりの数になってしまうのです。期限のあるものなのですごく困ってます!! エクセルの詳しい方大至急助けてください!!!!!!!!!!

  • EXCEL関数 数値○○○.○○○○を二つに分類したい

    タイトルにも書きましたが、エクセルシートで○○○.○○○○という、途中コンマで区切られた7桁の数値を入力すると、二つに分類し、分類に応じた文字列が表示されるようにしたいのです。  367.2000 と入力すると A  456.3010 と入力すると B といった感じです。 分類する数値は355番台はA、340番台はBといったように、ある程度まとまりはあります。 IFとVLOOKUPの組み合わせで、ある数値を入力すると決まった文字列が出るようになる関数はわかるのですが、7桁全部を入力して分類、という関数(の組み合わせ)があればと思い質問させていただきました。 拙い文章で申し訳ありません。補足が必要でしたらおっしゃってください。 よろしくお願いいたします。

専門家に質問してみよう