• ベストアンサー

EXCELのデータを変換

こんにちは。 早速ですが質問です。 あるセルに A B 1 9:00-16:00 17:00-21:00 2 12:00-21:00 などと文字列のデータが入っていて そこから別のシートに A B 1 9:00 17:00 2 16:00 21:00 3 12:00 4 21:00 というデータに変換したいのですが どのような手順をすべきでしょうか? 数式だけでできるならありがたいです。 一応マクロやVBAも少しはわかりますが・・ 皆様よろしくお願いします。

  • mynann
  • お礼率46% (150/324)

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 仮に、元データーが入力されている範囲を、シートをSheet1のA1~E8、表示を行うシートをSheet2とします。  Sheet2のA1セルには =IF(ISERR(FIND("-",INDEX(Sheet1!$A$1:$E$8,(ROWS($A$1:A1)+1)/2,COLUMNS($A$1:A1)))),"",LEFT(INDEX(Sheet1!$A$1:$E$8,(ROWS($A$1:A1)+1)/2,COLUMNS($A$1:A1)),FIND("-",INDEX(Sheet1!$A$1:$E$8,(ROWS($A$1:A1)+1)/2,COLUMNS($A$1:A1)))-1)  Sheet2のA2セルには =IF(ISERR(FIND("-",INDEX(Sheet1!$A$1:$E$8,ROWS($A$1:A2)/2,COLUMNS($A$1:A2)))),"",RIGHT(INDEX(Sheet1!$A$1:$E$8,ROWS($A$1:A2)/2,COLUMNS($A$1:A2)),LEN(INDEX(Sheet1!$A$1:$E$8,ROWS($A$1:A2)/2,COLUMNS($A$1:A2)))-FIND("-",INDEX(Sheet1!$A$1:$E$8,ROWS($A$1:A2)/2,COLUMNS($A$1:A2))))) という数式を入力して下さい。 Sheet2のA1セルとA2セルへの数式の入力が済みましたら、その2つのセルを、まとめて範囲選択した後、Excelのオートフィル機能を使って、Sheet2のA3~A8セルに、数式をコピーして下さい。  次に、Sheet2のA1~A8の範囲を、まとめて範囲選択した後、Excelのオートフィル機能を使って、Sheet2のB1~E8の範囲に数式をコピーして下さい。  以上で完了です。

mynann
質問者

お礼

ありがとうございました。 無事作成することができました。

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート2のA1セルに次の式を入力してB1セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(INDEX(Sheet1!A:A,ROUNDUP(ROW(A1)/2,0))="","",IF(MOD(ROW(A1),2)=1,LEFT(INDEX(Sheet1!A:A,ROUNDUP(ROW(A1)/2,0)),FIND("-",INDEX(Sheet1!A:A,ROUNDUP(ROW(A1)/2,0)))-1)*1,MID(INDEX(Sheet1!A:A,ROUNDUP(ROW(A1)/2,0)),FIND("-",INDEX(Sheet1!A:A,ROUNDUP(ROW(A1)/2,0)))+1,6)*1)) なお、この式では得られるデータはシリアル値が表示されますのでA列とB列を選択してからセルの書式設定の表示形式で時刻を選ぶことが必要です。 シリアル値にしないのでしたら上の式で*1を取ります。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

はじめのデータがSheet1のA,B列にあるとして、 Sheet2のA,B列に移す。 Sheet2のA1に =LEFT(OFFSET(Sheet1!$A$1,INT((ROW()-1)/2),COLUMN()-1),FIND("-",OFFSET(Sheet1!$A$1,INT((ROW()-1)/2),COLUMN()-1))-1) A2に =MID(OFFSET(Sheet1!$A$1,INT((ROW()-1)/2),COLUMN()-1),FIND("-",OFFSET(Sheet1!$A$1,INT((ROW()-1)/2),COLUMN()-1))+1,10) で、 A1:A2を選択して、 右と下にフィルドラッグする。

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

>どのような手順をすべきでしょうか? とりあえず、文字列から時間に変換してみては 別途、新しいシートを準備しておいて   A      B 1 9:00-16:00 17:00-21:00 2 12:00-21:00 をコピィします。 データ=>区切り位置=>ウィザードのカンマや区切り文字・・・にチェックを入れて次へ スペースとその他の文字にチェック その隣に - の文字を入れて OKすれば   A   B   C   D 1 9:00 16:00 17:00 21:00 2 12:00 21:00 ・・・となりますので試してみてください。 必要なコードはマクロの記録で得られると思います。 A B 1 9:00 17:00 2 16:00 21:00 3 12:00 4 21:00 のルールが今一わからないのですがVBAで繰り返しの作業で必要なシートに値を引っ張ってくれば良いはずです。

関連するQ&A

  • エクセルのデータ入力をマクロで行う方法は?

    はじめまして。初めて質問させていただきます。 Excelで作業を行っていたのですが、マクロ(VBA?)で分からないことが出てきました。 Sheet1のQ6セルとQ7セルが結合されています。そこにはデータ(数式)が入力されています。 同様に、Q8とQ9、Q10とQ11・・・というように、データ(数式)が続いています。データ数は300個です。 他のシート(Sheet2)の A4セルから下に、先程のQ6セルのデータ A5セルにQ8のデータ・・・ というように書きたいのです。 これをマクロを組んで行うことは出来るのでしょうか? さらに、Sheet1で数式だったデータを文字列で保存できるとなお嬉しいです。 マクロ初心者ですいませんが、皆様のお知恵をお貸しください。よろしくお願いいたします。

  • エクセルでデータを検索する際に・・・・

    検索したい文字がSheet1にB列にあります。 検索元のデータは Sheet2に5行目より1データにつき横200列ほど項目があるデータが 5000千ほどあります。 検索したい文字は 検索元のデータの3列目(C列)に存在しています。 これを、Sheet1の検索したい文字の横C列から 該当データの1列目より返していきたいのですが VLOOKUPの数式ではテキストで返り、セルに数式が残ってしまうため、 ここを検索元のデータと全く同じ(フォントや数式を含む)データを 抽出し貼付けて返したいのです。 VBAなどでこの検索処理を出来ないでしょうか? 教えてください、よろしくお願いいたしますm(__)m

  • エクセルのVBAについて質問です。

    エクセル2003のVBAについて質問です。 複数の検索したい文字列があり、複数の検索対象セルがあります。 セルの文字列が検索文字列のいずれかと一致したセルの背景の色を変えたいです。 よろしくおねがいします。 仕事でマクロを組まなけばならなくなってしまったのですが、 初心者のため検索してみたり調べてみたり、参考にして作ってみたのですがうまくいかないばかりかどんどん解らなくなってしまいました。 どうか助けてください。 sheet1のセルが検索対象 (全セル対象でも大丈夫ですが、検索したいセルはB2→J2、B11→J11、B20→J20の範囲です)、 sheet2のA列に検索したい文字列が入力されています。 この検索したい文字列は今後増えていく可能性があるので、増えた場合にも対応できるようにと考えています。 sheet1(検索対象) あ い う え あ お お sheet2(検索文字列) あ う お け き ↑の様に入力されており、sheet1の「あ」と「う」と「お」のセルの背景を変えたいです。 色を変えたいのはsheet1です。 findメソッドや繰り返し処理などを調べて実践してみたのですが、 いきなりマクロを組めといわれた超初心者には難しく質問しています。 自分でやってみたのですが、 sheet1の最初の「あ」のみが変換され、後に出てくる「あ」が変換されません… どうしたらいいのか…どうすることも出来ず困っております。 すみませんが、どなたか優しい方助けてください。 よろしくおねがいします><

  • 空白セルの削除と重複データの加算のマクロ

    シート1の文字列のデータの0又は空白のセルを取り除いて、並んでいる文字列の左と真ん 中の数が重複しているデーターは左端の数を加算して別のシート2のC10からC100のセルに抽出できるマクロを教えて下さい。データーの0は関数で空白にしたいと思っています。 データの並び方はこのままで重複するデーターの加算と空白のセルの削除を一回のマクロで実行したいのです。  E列               空白を削除    0-4-1              0-4-1         2-3-2              2-3-2         2-2-3              2-2-(3) 0                 2-2-(1) 2-2-1              4-1-9 4-1-9              2-1-7 2-1-7              2-2-3 0                 2-3-(5)                (数式がある空白セル)   2-3-(1)            2-2-3              2-3-(4) 0                 0-4-1 2-3-5 2-3-1 2-3-4 0-4-1 シート2のB列10~100に抽出 0-4-1 2-3-2 2-2-4 4-1-9 2-1-7 2-2-3 2-3-10 0-4-1 このように抽出したいのです。

  • 1つのセル内で区切られているデータの変換について

    他のEXCELに関するサイトでもお聞きしているのですが、 EXCELで出来るのかわからないのですが知っている方がいらっしゃれば教えてください。 1つ目のシートの列データとして、例えば、 セルA1に、所属ID セルB1に、1;2;3;4;5;6;7とセミコロンで続けられたデータがあるとします。 2つ目のシートには下記のような所属情報のデータ(マスタのようなもの)があるとします。 セルA1に、1 セルB1に、総務 セルA2に、2 セルB2に、経理 セルA3に、3 セルB3に、人事 : 1つ目のシート内の1;2;3;4;5;6;7のデータをわかり易いようにマスタにある総務;経理;人事などのようなデータへ変換させることは出来るのでしょうか? ============================================== 結果イメージ、1つ目のシートのセルB1の内容 (現在)1;2;3;4;5;6;7 (変換後)総務;経理;人事・・・ ============================================== すみませんが、よろしくお願いします。

  • 文字列変換

    添付図をご覧ください。 範囲 A1:B6 に英語の人名が入力されています、。 セル A7 に式 =SUBSTITUTE(A1," ","") を入力して、此れを右および下方にオートフィルしたものを範囲 A7:B12 に示しています。 此処で質問ですが、最初に下表に示すスペースなしの文字列データがあった場合、此れを上表に示すデータに変換する数式を教えてください。 マクロ音痴の私のために、どうか数式でお願いします。 数式が短くなるなら、配列数式でも構いませんが、補助列(行)等を使用しないことを希望いたします。

  • EXCEL データをレコード化するには

    Excelのデータについて教えてください 1枚目のシートに 管理番号:氏名:住所:電話番号の4つのデータがそれぞれ別のセルに入ってるデータが100件あります。 (Aの列:管理番号 Bの列:名前 Cの列:氏名 Dの列:電話番号) これを、2枚目のシートで利用したいのですが、 Aの列の管理番号を入力したら、その列のデータが表示されるように したいです。Wordの差込のような感じです。 =(Sheet1!$B3)これだと、1つのデータしか出ませんよね。 すべてのデータの送り状を作成したいと思っています。 VBAとかでないとできないのでしょうか。 よろしくお願いいたします。

  • エクセル マクロ

    エクセル マクロで、シート1のA1セルないの文字列(数式)をクリックボードにコピーするマクロを組みたいのですが、セルのコピーは出来るのですが、文字列のみコピーが出来ません。貼り付けは任意でするので必要ないです。 初心者で何もわかりません。よろしくお願いします。

  • エクセルマクロ(VBA)の立て方について

    お世話になっております。 エクセルのVBAマクロについて教えてください。 以下のように2種類A,Bの縦に並んだ時系列データがあった場合、 A No1  2012/6/1    1 A No2  2012/7/1    3 A No3 2012/8/1    4 B No1  2012/6/15   2 B No2 2012/7/15   6 B No3  2012/8/15   7 B No4  2012/9/15   9 上記のデータを別のシートに以下のように表示させたいのです。 (上記1列目は以下1列目に対応、上記4列目の数字をA、B単位で累計和を以下2列目に表示) A 1 A 4 A 8 B 2 B 8 B 15 B 24 以上のVBAマクロの数式の立て方を教えていただけますでしょうか。 よろしくお願いいたします。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

専門家に質問してみよう