• ベストアンサー

エクセルのデータ処理

imogasiの回答

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

例データ A列 dog cat desk map table miracle weather cloth calendar catakata ーーー VBAコード 標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row k = 1 '第2行から書き出す準備 For i = 1 To d s = 1 '最初の文字から検索準備 p = 1 'とりあえずpを0以外にセット j = 2 '文字位置はB列からセット開始準備 fst = "Y" '最初の文字探索場面のフラグ Do p = InStr(s, Cells(i, "A"), "a") If p = 0 Then Exit Do If fst = "Y" Then k = k + 1 '最初は1行下をポイントし書き込み準備 Cells(k, j) = Cells(i, "A") '単語をセット End If Cells(k, j + 1) = p '文字の位置セット s = p + 1 '見つかった次の文字から探索準備 j = j + 1 '次列にセット準備 fst = "N" Loop Next i End Sub 短いけれどロジック(コントロール)はややこしいと思うかも。

ei60
質問者

お礼

回答ありがとうございました。 みなさんのお力でうまく解決できました。 ありがとうございました。

関連するQ&A

  • 英単語データの1字変換

    A列に単語データがあります。 下のようにそれぞれ1字を○に置き換えて、それらをB列以下の5列に並べたいのです。 A列    B列    C列    D列     E列     F列 dark   dar○    da○k   d○rk    ○ark    ○ark  horse   hors○   hor○e   ho○se   h○rse    ○orse create   crea○e   cre○te   cr○ate   c○eate   ○reate 6字以上の単語は5文字目から順次、先頭の字まで○になるようにします。 よろしくお願いします。

  • エクセルで重複したデータの処理をしたい

    お世話になります。 A列はランダムに数字が入っています。(並び替えはされていない) このA列の数字は重複するものがあります。 A列の中で重複する場合に、上から順に1/3,2/3,3/3などになるようにしたい。 例) A1:1 A2:2 A3:1 A4:3 A5:1 A6:2 A7:4 のとき 1は3つ出てくるので1/3,2/3,3/3 2は2つ出てくるので1/2,2/2  3,4は1つなので空白にする。 このときB列に分子を、C列には分母を入力する。 この例の場合、B1:1 C1:3 B2:1 C2:2 B3:2 C3:3 B4:空白 C4:空白 B5:3 C5:3 B6:2 C6:2 B7:空白 C7:空白 と入力されるようにするにはどういう計算式をB列、C列に入れておけばよいのでしょうか? Excel2002です。 実際はかなりの量があります。 よろしくお願いします。

  • エクセルでのデータの並び替え

    A列に英単語のデータが1000 あります。 これを  A列   b列   c列 1    1      4 2    2      5 3    3      6 4    7     10 5    8     11 6    9      12 7     13     16 8     14     17 9     15     18 と2列に6つずつのグループに並び替えたいのです。 エクセルの扱いがよくわからないので困っています。 うまい方法を教えてください。よろしくお願いします。

  • Excelでのデータ処理について。

    お世話になります。 データ処理を迅速に行うために試行錯誤しているのですが、 知識が浅く上手くいかないので、皆様のお知恵をお貸し下さい。 下に粗末ではありますが、例として略図を載せます。 セルA1からA100に20から50の値がランダムに値が入っています。 少し離れたところに条件表としてCとDに値を入れます。 そこで、セルA1の値がC列のいづれかと同じだった場合(ここではC2)、 それに隣接するD列の値(ここではD2)をB列に代入する方法は ありますでしょうか? わかりずらい説明で恐縮ですが、ご存知の方いらっしゃいましたら ご教授お願いします。     A  B  C  D  1  21    20  10.2  2  30     21  10.4  3  45     22  10.8  4  32    23  10.9  5  28    24  11.0      ・    ・      ・   50  30.2 100  49

  • エクセルデータの並び替え

    A列に 1 2 3 4 5 6 7 ・・・・・ B列に a b c d e f g h i j k l ・・・・ と文字列があります。 これを C列に 5つずつデータをセットにして並べたいのです。 A列    B列           C列 1     a      1 a   2 b  3 c  4 d  5 e 2     b      6 f   7 g  8 h  9 i  10 j 3     c      11 k  12 l  13 m  14 n  15 o 4     d      16 p   17 q  18 r  19 s  20 t 5     e      以下同じように続く 6     f 7     g 8     h 9     i 10     j 11     k 実際のC列のデータは トマト tomato  ネコ cat   机 desk  いす chair  かばん  bag  のようにしたいのです。 関数の扱いがわからずに苦戦しています。どうぞ、よろしくお願いします。

  • エクセルで自動的に印をつける方法

    エクセル(以下の図参照)でAとBのセルの内容が同じの時もしくは文字列の中に「?」マークがある時、Cのセルに「x」をつけたいのですが、マクロもしくはPerlのプログラムで自動的に処理する方法がありますか?あれば教えて頂きたいです。よろしくお願いします。 A B C 1 123ab 123ab x 2 abc acd 3 abcd ad?d? x 4 dog dog  x 5 cat chat

    • ベストアンサー
    • Perl
  • エクセル カレンダー入力で教えてください

    カレンダー入力で A列B列C列があってA列に和年号 B列月 C列日としてあります 例えばA1のセルをクリックするとカレンダーが出てきて日付け平成20年10月31日をクリックするとA1に20 B1に10 C1に31 と各セルに値が入るようにしたいのですが ご教授お願いします。

  • エクセルでデータ管理

    こんにちは いつもお世話になっています エクセル(2003)のデータ管理について教えてください。 以下のような英語単語帳データ(文字列)がA列にあります。   A 1 出典A 2 単語 3 出典A 4 単語 5 出典B 6 単語 7 出典A 8 単語 9 出典C 10単語 (以降2000行以上あります。) 出典とは、その下の単語の出典になります。つまりA1とA2はセットになっており、以下、同じ仕様です。出典は数十種類あり、出現順序は不定です。単語は同じ出典、あるいは異なる出典で重複して出現することがあります。 ここで、質問ですが、上記のデータから出典別の単語帳をつくる方法を教えてください。 つまり、出典Aの単語、出典Bの単語というように抽出したいのです。重複データが並んでもかまいません。 素人考えでは、A2の単語をB1に引いくる関数で、出典と単語を横並びにしてから、A列にソートをかければいいかと思うのですが、その関数もわからないし、もっとスマートにできるのでしょうか。 わかりにくい表現で恐縮です。 どうぞよろしくお願いいたします。

  • エクセルのデータ処理で困っています

    あまりエクセル関数に詳しくないので困っております。 2点ほど質問があるのですが… 1. B1セルから横に    [A], [B], [C] , [D] , [E] , [F] [1]      , mikan, ichigo , - , mikan , - [2]      , - , ichigo , ichigo , ichigo, -    と入っています。 (桁がずれて表示されてしまうので、セルの区切りにカンマを入れました。見えづらくてすみません。以下の表も同様です)   この時、各行毎に、入力されているデータ(ハイフンは除く)が同じものであるかどうかを判定し、同じであれば●を、違うものが混じっていれば×を、[A]列に入力したいのです。  結果としては[A1]が×、[A2]が●となればよいのですが…  if(B1=C1=D1=E1=F1,"●","×")と入れてみましたが、"-"をどう処理すればよいのかわからず、お手上げです。 2. B1セルから横に   [A], [B], [C], [D] [1]     Q05 ,   mikan , orange [2]     P05 ,   mikan , orange [3]     S12,   りんご,   apple [4]     R09,   ぶどう,   grape [5]     P10 ,   ringo, apple [6]     S16,   りんご,   apple [7]     P30 ,   みかん,  orange [8]     T42 , ミカン,  orange と入っています。  [A]列に重複の有る無しを入力したいのですが、条件があり、  まず、[D]列が同じものであること、  次に、[B]列の数字部分が等しくないものについて、  上から順番に、重複1、重複2,…と[A]列にいれていきたいのです。  [A]列にはすべて同じ式を入れますが、重複でないセルは"" になるように設定していただくと助かります。 結果として、      [A], [B], [C], [D] [1] 重複1, Q05 , mikan, orange [2]   ,  P05, mikan, orange [3] 重複2, S12, りんご,   apple [4]   ,   R09, ぶどう,   grape [5] 重複2, P10 , ringo, apple [6] 重複2, S16,   りんご,   apple [7] 重複1, P30 , みかん,  orange [8] 重複1, T42, ミカン,  orange   このようになれば、と思っています。  これについては、頭の中が混乱して、お手上げ状態です。   未熟者なので、関数でご教授いただければありがたいですが、もし無理なようであればVBA でも… よろしくお願いいたします。

  • Excel VBAでデータを自動処理したい

    Excelで大量のデータ処理をしなくてはならないのですが、以下の処理をExcel VBAで自動処理できないでしょうか? どなたかお知恵をお貸しください。 (1)A、B、C列からなるリストがあります。A,B列にはそれぞれオートフィルタが設定してあり、C列は空白です。A列、B列にそれぞれ条件を設定し、抽出したデータのC列(空白)に特定のデータを入力します。A列、B列2つの条件の組み合わせが100通りくらいあり、現在手動でオートフィルタを設定し、C列にデータを入力しております。例えばA,B列の条件の組み合わせと、それに対応するC列に入力するデータを表にしたテーブルを別に作り、A,B列の条件を自動に設定して、抽出し、C列にデータを自動に入力することを、テーブルの一番上の行から最後の行まで繰り返す、というようなことをVBAでExcelにしてもらいたいのです。自分でちゃんと勉強し、調べて、それでも分からなかったらお聞きするというのが筋だと思うのですが、今この仕事に追われて、時間がありません。(ほとんど毎日午前様です。)この仕事が片付いたら、じっくりVBAを勉強したいと思っております。どうぞよろしくお願いいたします。