• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの 列のデータの内容が変わったら、次の列に表示できるようにした)

エクセルの列のデータの変更時に次の列に表示できるようにする方法

このQ&Aのポイント
  • エクセルの列のデータの変更時に、次の列に表示できるようにする方法について説明します。
  • 例えば、A列には○○銀行や▽▽銀行のデータがあり、B列にはそれぞれの支店名が入っています。このとき、A列のデータが変更された場合に、自動的に次の列のデータも変更する方法を探しています。
  • マクロや関数を使用して、エクセルの列のデータの変更時に次の列に表示できるようにする方法を教えてください。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

sheet1に元データがあるとして sheet2へ出力します sheet1の元データはA列(銀行名)でソートしておくこと Sub test() Dim i As Long, j As Long Dim vDATA As Variant j = 1 With Worksheets("sheet1") vDATA = .Range("a1", .Cells(Rows.Count, 2).End(xlUp)) End With With Worksheets("sheet2") For i = 1 To UBound(vDATA) If i = 1 Then .Cells(1, 1).Value = vDATA(1, 1) .Cells(2, 1).Value = vDATA(1, 2) ElseIf .Cells(1, j).Value = vDATA(i, 1) Then .Cells(Rows.Count, j).End(xlUp).Offset(1).Value = vDATA(i, 2) Else j = j + 1 .Cells(1, j).Value = vDATA(i, 1) .Cells(2, j).Value = vDATA(i, 2) End If Next i End With End Sub 参考まで

emaplais
質問者

お礼

ありがとうございます!! マクロを張り付けてみたら、まさにやりたいとおりにできました! 今回はこのマクロを使用することにしました。 もし今後に変更のあったときのために 今はこのマクロが何しているのか読んでいる最中です。 とても勉強になりました。ありがとうございます。 また何かわからないことがあれば力をお貸しくださるとうれしいです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 参考になるかどうか判りませんが・・・ ↓の画像で説明させていただきます。 Sheet1のデータをSheet2に表示させています。 Sheet1に作業用の列を2列設けています。 作業列C2セルに =IF(COUNTIF($A$2:A2,A2)=1,ROW(A1)*1000+COLUMN(A1),"") という数式を入れ、列方向と行方向にオートフィルでずぃ~~~!っとコピーします。 そして、Sheet2のA2セルに =IF(ROUNDUP(COUNT(Sheet1!$C$2:$D$1000)/2,0)<ROW(A1),"",INDEX(Sheet1!$A$2:$B$1000,INT(SMALL(Sheet1!$C$2:$D$1000,ROW(A1))/1000),MOD(SMALL(Sheet1!$C$2:$D$1000,ROW(A1)),1000))) B2セルに =IF(ROUNDDOWN(COUNT(Sheet1!$C$2:$D$1000)/2,0)<ROW(A1),"",INDEX(Sheet1!$A$2:$B$1000,INT(SMALL(Sheet1!$C$2:$D$1000,ROW(A1)+COUNTIF($A$2:$A$1000,"?*"))/1000),MOD(SMALL(Sheet1!$C$2:$D$1000,ROW(A1)+COUNTIF($A$2:$A$1000,"?*")),1000))) という数式を入れA2・B2セルを範囲指定し、B2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 以上、参考になれば幸いですが 的外れなら読み流してくださいね。 ※ 余談になりますが、 実はこの数式の中で「数式は入っていて空白セルをカウントしない場合」の関数で悩んでいましたが、 他の回答の中の「KURUMITOさま」の回答が大変参考になりました。 数式の中にその回答方法も利用させていただいています。 私も他の方の回答を参考に色々勉強させてもらっています。 この場を借りてお礼申し上げます。 どうも失礼しました。m(__)m

emaplais
質問者

お礼

おお!画像付きで、詳しくありがとうございます! 今は家ですので、職場で試させていただきたいと思います! 本当にみなさんがいろいろ意見いただけるので、私もいつも勉強しています^^ お礼が遅くなってもと思ったので、まだ実行していませんが書かせていただきました。 本当にありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 Sheet1のデータをsheet2に並び替えします。 (1)sheet1のA列を選択→データ→フィルタ→フィルタオプションの設定→抽出先は選択範囲内を選択、重複するレコードは無視するを選択→OK (2)抽出されたA列のA2:Axx範囲をコピー→sheet2のA1を選択、右クリックで形式を選択して貼り付け→行列を入れ替えるを選択→OK (3)Sheet2のA2に=IF(COUNTIF(Sheet1!$A:$A,A$1)>=ROW(A1),INDEX(Sheet1!$B:$B,SMALL(IF(Sheet1!$A$1:$A$2000=A$1,ROW(Sheet1!$A$1:$A$2000),9999),ROW(A1))),"")を入力、入力完了時にshift+ctrl+enterキーを同時押下 (4)A2のセルを縦横に必要分コピー

emaplais
質問者

お礼

書かれている通りに、操作してみたらできました!! やり方もいろいろあるんですね>< 自分の力の無さが…、とても勉強になりました! ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.2

Sheet1     A     B 1  ○○銀行 ××支店 2  ○○銀行 △△支店 3  ○○銀行 □□支店 4  ▽▽銀行 ■■支店 5  ▽▽銀行 ●●支店 6  ◇◇銀行 ◆◆支店 7  ☆☆銀行 ▼▼支店 8  ☆☆銀行 ◎◎本店 9  ☆☆銀行 ▲▲支店 10 ☆☆銀行 ★★支店 Sheet2    A     B     C     D 1 ○○銀行 ▽▽銀行 ◇◇銀行 ☆☆銀行 2 ××支店 ■■支店 ◆◆支店 ▼▼支店 3 △△支店 ●●支店      ◎◎本店 4 □□支店           ▲▲支店 5                ★★支店 Sheet2 において、 1.セル A2 に次の[条件付き書式]を設定    数式が    =ISERROR(A2)    フォント色  白 2.セル A2 に次の配列数式を入力して、此れを右方および下方にズズ   ーッとドラッグ&ペースト    {=INDEX(Sheet1!$B$1:$B$19,SMALL(IF((Sheet1!$A$1:$A$20=A$1)*(ROW(A$1:A$20)),(Sheet1!$A$1:$A$20=A$1)*(ROW(A$1:A$20)),""),ROW(A1)))}

emaplais
質問者

お礼

ありがとうございます! この通りに張り付けてみたつもりですが、「#~」のエラーがでてしまいました。 私のやり方がうまくいかなかったのかもしれません。 こういうやり方もあることが知れました! 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルの 列のデータの内容が変わったら、次の列に表示できるようにした

    エクセルの 列のデータの内容が変わったら、次の列に表示できるようにしたい。 すみません、説明すると難しいのですが。 したいことの例を下にかいてみます。 例) ↓こんなデータがあります。 A列   B列 ○○銀行 ××支店 ○○銀行 △△支店 ○○銀行 □□支店 ▽▽銀行 ■■支店 ▽▽銀行 ●●支店 ↓こうしたい。 A列   B列   ○○銀行 ▽▽銀行 ××支店 ■■支店 △△支店 ●●支店 □□支店 ※ 本当のデータは1000件以上あります。 いろいろインターネットでも調べてみましたが、わからなく。 もしいい案がある方は教えていただきたいんです。 できれば、関数で出来たらいいと思うんですが、 マクロしかできないのであれば、マクロでどうしたらいいのかも教えていただきたいんです。 マクロも人のを真似して使用できる程度の力しかありません。 でも本当に困っています。 すみませんが、よろしくお願いします。

  • Excelで1列のデータを5列に振り分けする

    Excel2003でA列に1行にあるデータ(半角英数字)を 次のシートに、1行ずつコピーして、それを5列に振り分けするというマクロを作りたいです。 (ただし、コピーは2つずつの時もあります。) 元データ ●A列 B列 C列  1  2  3  4  5  ・  ・ 加工後 ●A列 B列 C列 D列 E列   1   1   2   2   3   3   4   4   5   5   上記のような感じです。ただデータは数字のみでなくて、英数字です。 Excelのマクロは全くの初心者で大変困っています。 どうぞよろしくお願いたします。

  • エクセルで隠れてしまった列を再表示するには?

    エクセルでいくつかの列が隠れてしまいました。 例:A列の次にC列になっていてB列が表示されない(B列の幅の数値を0にしてしまった) この場合B列はどうしたらもう1度表示されるのですか? 教えてください。

  • エクセルで数字のみのデータが違う内容で表示される

    エクセルで数字のみのデータが違う内容で表示される システムから自動で吐き出されたCSVファイルがあります。 カンマ区切りです。 このファイルをクリックします。エクセルが立ちあがり、内容が見れます。 A列からG列まであります。 A列は日付で例  2010/9/16 B列は時刻で例  18:01:10 C,D,E,列は全て数字のみで例  C列12345  D列55555  E列333 F列は数字と英数字で例  F列A1C でこのとうり画面表示されます。 G列ですが、数字+英字と数字のみのデータが混在です。 例えば ABC123456789 これは画面表示でもセルを選択してセル参照の枠内にも ABC123456789 と表示されています。 ではここに数字のみのデータで例えば 90983031000080だと 画面には9.083E+13と表示されます。 セル参照の枠内には 90983031000080となっています。 C,D,E列も数字のみなのにこのように相違表示しません。 これを画面表示で 90983031000080と表示させる方法は どうすればいいでしょうか? なおこのファイルは毎夜夜間バッチでデーター自動追加で 例えば昨日までは100行有り、 今日見ると100行目の次の101行目から新しいデータが 追加され150行まで増えています。 加算量はその日のデータ量なので毎日違います。 明日は151行目から120行が271行に増加という感じです。 でこのCSVファイルをいつ開いても印刷しても上記G列は 上記のように表示をさせたいです。 よろしくお願いします。

  • エクセルのセルの長さが可変のデータに、それぞれ一番上のデータの名前を定

    エクセルのセルの長さが可変のデータに、それぞれ一番上のデータの名前を定義するにはどうしたらいいんでしょうか? 先日ここの質問で解決し ↓こういうデータを作成することができました。    A列   B列   C列   D列    1 MM銀行 NN銀行 LL銀行 OO銀行 2 PP支店 SS支店 UU支店 VV支店 3 QQ支店 TT支店        WW本店 4 RR支店              XX支店 5                    YY支店 このデータを使用して入力規則のリストを使用したいので、名前の定義を使用し、 「A1」から「D5」を範囲選択し、まとめて「上端」を名前として設定する処理を行いました。 そうするとA列とB列とC列の何も入っていないところにも名前が設定されていると思うんですが、 リストを設定したところの選択肢にスペースのセルもすべて表示されてしまいます。 1列1列名前を付けていけばいいのですが、何十列もあるため処理に時間がかかってしまいます。 それぞれの銀行の支店の数も違いますし、銀行数自体増える可能性があるので それぞれの列の行数も増減しますし、列のデータも増減します。 ひとつの列の最後の行を見に行くマクロはわかるのですが、 列の最後も同時に見に行くとなると、考えてみてもわかりませんでした。 マクロは人が書いたものを、調べていって理解できる程度です。 今までもこのサイトの過去のものを見て勉強させていただきました。 今回もインターネットで調べまわったのですが、よくわかりませんでした。 よければ、どうしたらいいのか教えていただきたいと思っています。 よろしくお願いします。

  • 近い文字列を入力すると表示できる方法について

    下記の例とおり、エクセルでB列に任意の文字列を入力すると、A列にB列の一部だけ一致する   文字列を選択して表示する方法を知りたい。 例 B1に○○支店と入力すると、A1にB1の一部一致する文字列を表示したい。      A      B      C  ・ ・ ・ 1 ○○    ○○支店 2 ××    ××支店   3 △△    △△支店 ・ ・

  • エクセルでのデータの表示

    エクセルでのデータの表示 次のような表が在ります。 A列   B列   100    2   100    2      101    6   101    2   101    6   102    6   102    6   103    2   103    2   103    2    104    6   104    2  ・     ・  ・     ・  ・     ・   これを、次のように、C列に「◎」と「×」を表示させるようにするには、どのようにすれば可いですか? つまり、「A列のナンバーが重複していて、且つ、B列の数字が異なる二種類の場合は、C列に◎」、「A列のナンバーが重複していて、B列の数字は一種類の場合は、Cれつに×」と表示させたいのです。 A列  B列  C列 100    2  × 100    2  ×   101    6  ◎ 101    2  ◎ 101     6  ◎ 102    6  × 102    6  × 103    2  × 103    2  × 103    2  × 104    6  ◎ 104    2  ◎ ・      ・  ・ ・       ・  ・ 宜しくお願い致します。

  • Excelで列を非表示にするマクロ

    マクロ初心者なのですが、 Excelで印刷前に印刷しなくてよい列を非表示にしたいので、 列を非表示にするマクロを作りたいのですが、 うまくいかないので方法を教えていただきたいです。 表のA~Nにデータが入っていて、 CとGの列を非表示にしたいのですが。 よろしくお願いします。

  • 『エクセル』 2つの列を1列で表示させたいです。

    エクセルで2つの列(A列及びB列)にそれぞれ入力されているデータ(行数不定)を添付画像のように1列(D列)に表示させたいです。 できれば、A列にデータを追加したら自動的に間に入るようにしたいです。 よろしくお願いします。

  • エクセルでの列データ操作について

    例として、A1からA1000まで数値データがあったとします。そこからA1のデータをB1にA5のデータをB2へA10のデータをB3といったようにA列のデータを3とか5といったように任意の数で等間隔のデータをB列に順に貼り付けたいのですが、何か良い方法がありますか?出来れば関数でまかなえれば大変助かります。 マクロに関しては知識が乏しいので厳しいです。ポイントとして、任意の等間隔(数式の中で数値を入れ替えれる)で間隔を変更出来る様にしたいです。 ご教授よろしくお願いします。

このQ&Aのポイント
  • セットアップ途中で無線ラン設定ウィザードまで進んだが、インストールに進まない。
  • パソコンのOSはWindows10で、接続は無線LANです。
  • 電話回線の種類はひかり回線です。
回答を見る

専門家に質問してみよう