- ベストアンサー
エクセルシートの票データの置き換えについて、
エクセルのシートに (A1)から(D50)まで一覧表があり、それぞれ200個のセルに文字が入力されています。 これを別のシートに縦一列に並び替えたいのですが、 A1=(A1) A2=(B1) A3=(C1) A4=(D1) A5=(A2) A6=(B2) A7=(C2) A8=(D2) A9=(A3) A10=(B3) ・ ・ ・ A199=(C50) A200=(D50) 出来れば簡易言語で、それで無理ならマクロでも結構です。 よろしくお願いします。
- Visual Basic
- 回答数4
- ありがとう数0
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >出来れば簡易言語で、それで無理ならマクロでも結構です。 こちらのカテゴリでお聞きになっているので、どうしても、VBAの回答になってしまうと思いますね。ただ、簡単な書き方というか、記録マクロに近い状態で書くと、以下のようになります。 Sub Macro1Revised() Dim Sh1 As Worksheet Dim Sh2 As Worksheet Set Sh1 = Worksheets("Sheet1") Set Sh2 = Worksheets("Sheet2") With Sh2.Range("A1:A200") .FormulaLocal = _ "=OFFSET(" & Sh1.Name & "!$A$1,INT((ROW(A1)-1)/4),MOD(ROW(A1)-1,4))" .Value = .Value End With Set Sh1 = Nothing: Set Sh2 = Nothing End Sub '----------------------------------------------- 'VBAらしくするなら、こんな風にもありかな? '選択範囲が4角形で、1列にするなら可能なのです。 '----------------------------------------------- Sub TransferValues() Dim i As Long Application.ScreenUpdating = False For Each c In Worksheets("Sheet1").Range("A1").CurrentRegion i = i + 1 Worksheets("Sheet2").Cells(i, 1).Value = c.Value Next c Application.ScreenUpdating = False End Sub '----------------------------------------------- なお、余談ですが、マイクロソフト側のOfficeの「マクロ」のオフィシャルな定義ですが、『プログラマーズガイド』の中の「プログラミングの基礎」では、 マクロは、引数を持たないパブリックなSub プロシージャだけのことを指す、としています。すべてのマクロは、プロシージャではあるが、すべてのプロシージャがマクロであるとは限らない、マクロの記録機能を使って生成されるプロシージャとOfficeアプリケーションの[マクロ]ダイアログボックスから実行できるプロシージャは、すべてマクロである、と言っております。 パブリックなSub というのは、Public キーワードを付けて宣言しますが、端にその区別だけであって、パブリック・プロシージャを作成する時には、Public キーワードを使用する必要はありません、となっています。 知っている人は、百も承知の話ですが、もう、マイクロソフトのオフィシャルな書籍なんて顧みられることはありませんから、その内容が意外っていう人もいるかもしれません。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17068)
>簡易言語 この言葉はエクセルでは使わないと思います。関数や関数式による 解法でしょうか。昔はPIPSとか、EPOCALCJとか色々もてはやされましたが。 >マクロ エクセルVBAです。アクセスと違って、マクロは特別なものはなく、エクセルVBAです。「マクロの記録」で使われているために、よく使われていますが。 ーーーー 本題 関数式による解法。 各列の最下行がばらばらだと、関数では難しい。そろっているとして、 例として、簡単のため、7行の表データにしました。 Sheet1の A2:D8(A1:D7ではないです、注意。式が変わるので) A-D列以外の列にたとえばF列以外に F2に =INDEX($A$2:$D$8,MOD(ROW()-2,7)+1,INT((ROW()-2)/7)+1) と入れて、式をした方向に複写 1 2 3 4 5 6 7 8 9 10 11 12 13 以下略。 50行なら =INDEX($A$2:$D$51,MOD(ROW()-2,50)+1,INT((ROW()-2)/50)+1) sheet2に作るなら A2などに =INDEX(Sheet1!$A$2:$D$51,MOD(ROW()-2,50)+1,INT((ROW()-2)/50)+1)
Private Sub CommandButton1_Click() Dim I As Integer Dim J As Integer Dim R As Integer For I = 1 To 50 For J = 1 To 4 R = R + 1 Worksheets(2).Cells(R, 1) = Worksheets(1).Cells(I, J) Next J Next I End Sub ※Excel 門外漢ですので、参考程度に!
- yakou850
- ベストアンサー率49% (25/51)
自分のやり方を書かせてもらいます。 参考になればいいのですが・・・。 設定:Sheet1の200個のデータをSheet2に縦横変換して書く For i=1 to 200 sheets("Sheet2").Cells(i,1) = sheets("Sheet1").Cells(1,i) Next i こういったソースではどうですか?
関連するQ&A
- エクセル 入力シートのデータを別シートに書き込む
エクセル 入力シートのデータを別シートに書き込む 1.Sheet1のA2に数字、B2に数字、C2に数字、D2に数字、E2に数字、F2に数字、G2に数字、にを入力する。 2.内容確認後、入力ボタンを押すと、 Sheet2のF2にSheet1のA2の数字、 Sheet2のH2にSheet1のB2の数字、 Sheet2のI2にSheet1のC2に数字、 Sheet2のJ2にSheet1のD2に数字、 Sheet2のK2にSheet1のE2に数字、 Sheet2のL2にSheet1のF2に数字、 Sheet2のM2にSheet1のG2に数字が反映され、sheet2の入力されたデータが一列づつたされていく。 つまり。sheet1は入力シートで、同じセルに値を入力します(次回はデータが上書きされる)が、sheet2では、集計表の1列ずつ下に新しく記録されていく。 このような入力フォーム(マクロ)を作りたいと思っています。 わかりづらい質問で申し訳ありませんが教えていただけませんでしょうか。 よろしくお願いします。
- 締切済み
- SE・インフラ・Webエンジニア
- エクセルでリストに対応するデータを別シートの表
エクセルでリストに対応するデータを別シートの表に参照したいです。 「表シート」のB2にリストを作って、 (リストは「一覧表シート」のA,B,Cが入力されているセルを参照しています。) Aを選択すると101の下の段(B11)に、 「一覧表シート」のAの列101の111が入力されるようにしたいです。 Bを選択すると222、Cを選択すると333が入力できるようにしたいです。 この「表シート」の表がややこしいのですが、 建物の部屋番号に対応しているため、3階2階1階という順になっています。 関数で対応できるものでしょうか? 分かりにくい表ですが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelのシート間の参照
Excelでシート間のセルの参照をしたいのですが、どのシートを参照するのかを すぐに変えることのできるようにしたいのです。 具体的には、A、B、Cという名前のシートがあり、シートDにおいて A1セルにA、B、Cいずれかの文字を入力すると、その下のセルの参照先が シートAのB1セルになるようにしたいのです。 とりあえず色々式を入れてみたのですが、すべて拒否されてしまいました。 たとえば ='A1'!B1 ='"A1"'!B1 とかです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel シート1の雛型からシート2の一覧表作成へ
お世話になります。 私は会社でExcelを使い事務をしております。 式を入力して少し事務を簡素化する事は出来ますが、マクロやVBには明るくありません。 シート1の雛型1箇所に入力すると同時に、シート2に一覧表が作成される様には出来ないものでしょうか? 頑張ってマクロを使ってみましたが、シート1のB1を入力するとシート2のB1の数値まで変わってしまいます。(表を参考にしてください) シート1(雛型) A B C 1 固定数 入力した数字 数式A/B シート2(一覧表) A B C 1 シート1A1の数字 シート1B1の数字 シート1C1の数字 2 シート1A1の数字 シート1B1の数字 シート1C1の数字 3 シート1A1の数字 シート1B1の数字 シート1C1の数字 4 シート1A1の数字 シート1B1の数字 シート1C1の数字 分かりにくい説明で申し訳ありません。 皆さまのお知恵をお待ちしております。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル 入力フォームのデータを別シートに書き込む
エクセル 入力フォームのデータを別シートに書き込む方法 1.シート1のA2に日付、B2に文字列、C2に金額、D2に個数、E2に合計金額を入力する。 2.内容確認後、入力ボタンを押すと、 Sheet2の集計表リンクさせ、尚且つシート2内で1か月分の集計を取ります。 つまりシート1は入力シートで、同じセルに値を入力します(次回はデータが上書きされる)が、シート2では、集計表の1列ずつ下に新しく記録され1か月分の入力がされていく。 このような入力フォーム(マクロ)を作りたいと思っています。 初めて投稿するので、質問がよく分からないかもしれませんが、 よろしくお願いします。
- 締切済み
- その他(データベース)
- シートの非表示について
マクロを始めたばかりで解読はできるのですが、まだまだ自分で文書を作ることが出来ません。どなたか教えて下さい。 (1)まず、A,B,C,Dのシートを作ります Aシート = 入力シート Bシート = 入力シートで入力したデーターを表にして表示されるシート Cシート = 入力シートのセルA1~A15までのデーターがCシートのA1~A15に表示されるシート Dシート = 入力シートのセA16~A30までのデーターがDシートのA1~A15に表示されるシート (2)マクロボタン『非表示』を押す (3)シートが下記のように非表示される Aシート = 表示 Bシート = 表示 Cシート = シートのセルA1に入力があれば表示、無ければ非表示 Dシート = シートのセルA1に入力があれば表示、無ければ非表示 (If Sheets("Cシート").Range("A1").Value <> "" Then)みたいな というマクロを作りたいのですが。
- 締切済み
- オフィス系ソフト
- Excelのシート間でのリンクの仕方について
Excel2007での質問です。 下の様な一覧表があるとします。 A B C D E 1 あ い う え お 2 き く け こ 3 さ し す せ そ この入力した一覧表を別のシートに下記のような票にしてリンクさせたいのですが これは可能な事なのでしょうか? A あ A さ B い B し C う C す D え D せ E お E そ ※上記の『2』の行の『きくけこ』は『A』列に入力がないのでリンクさせません。 『A』列に入力した行のみを、別のシートにリンクさせる方法です。 どなたか、おわかりになる方。 Excelは初心者も同然です、宜しくお願いいたします。
- ベストアンサー
- その他MS Office製品
- Excel 複数のシートを使って自動入力させていです。
Excel 複数のシートを使って自動入力させていです。 Sheet1に「一覧表」とし、A1に日にち・B1に入荷先・C1「品物名」・D1「金額」を入力していく一覧表を作成しました。 入荷先の名前をSheet2.3に作り、入荷先ごとにリストを作成したいです。 一覧表に入力しただけで、自動的に入荷先ごとのシートに自動的に入力されてるってことって出来ますでしょうか? 例 A B C D 1 日にち 入荷先 品物 金額 2 4/1 Aスーパー たまねぎ 100 3 4/5 B商店 きゅり 50 これをSheet1「一覧表」をした場合、 Sheet2を「Aスーパー」とし、Sheet2を「B商店」として。同じ表を作成しておく。 一覧表のシートにAスーパーでの購入を入力すると、「Aスーパー」のシートに自動的に表が作られていく 説明下手で申し訳ありませんが、よろしくお願いします!
- 締切済み
- オフィス系ソフト
- 違うシートにデータを抜き出したい。
エクセルのシート2に A B C D 1 物件A ○ 情報a 情報b 2 物件B - 情報a 情報b 3 物件C ○ 情報a 情報b と、4行目以降もあります。 そして、シート3にシート2のB列で”○”となっている物件だけの表を作りたいのです。 A B C 1 物件A 情報a 情報b 2 物件C 情報a 情報b この下にもどんどん続けていきたい。 ※シート2はシート1のデータがマクロによって表示されている。 例)シート1の物件Aが終了になると、シート2の物件Aが消えて物件Bが1行目に表示される。 ※シート2のデータはほとんどシート1のデータがマクロによって表示されている。 シート2に”○”と表示されるのもシート1に入力してるから。 ※このマクロを作った人はすでに退職していて、社内でこのマクロを解明できる人がいない。 ちなみに私はマクロ初心者です。
- ベストアンサー
- オフィス系ソフト
- EXCELでシートのデータを別のシートに反映させていく方法はありますか??
データの一覧表を作って ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 大分類 小分類 月日 内容 A B C D E… 1 2 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ と入力済みなのですが、別のシートにこのデータを使って、大分類ごとのシートを作り、また、そのシート内で月ごとにデータを管理したいのですができますでしょうか??下記のような一覧表を作り印刷できるようにしたいんです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 大分類 小分類 月日 内容 A B C D E… ・ ・ ・ 合 計 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ よろしくお願いします。
- ベストアンサー
- その他(Windows)
補足
皆さん有難うございます。実用化しました。