- ベストアンサー
Excel2000:既存一覧のデータを任意に配列しなおす
at121の回答
データ 指定の物 部門CD は 2文字以上 その他は 1文字以上 が有効 操作 データシートをアクテブにしてマクロ起動 結果 一覧1のシート(部門CDvsカテゴリ)に 一覧2のシート(分類vsカテゴリ)に それぞれ 内容を出力 「内容」を1セル上にまとめて配列 は ALT 改行 相当 chr(10) 区切りは何にでも・・ ↓ツール マクロ VBエディタ 挿入モジュールに貼り付け↓ Sub 一覧1と一覧2をシート1と2に出力() '一覧(1) '部門CDvsカテゴリ⇒内容配置 Set 今のシート = ActiveSheet Sheets.Add before:=Sheets(1) Sheets(1).Name = "部門CDvsカテゴリ" 今のシート.Activate Call 部門CDと部門設定 Call カテゴリ設定(3) Call 内容分類(1, 5) '一覧(2) '分類vsカテゴリ⇒内容配置 Set 今のシート = ActiveSheet Sheets.Add before:=Sheets(1) Sheets(1).Name = "分類vsカテゴリ" 今のシート.Activate Call 分類設定 Call カテゴリ設定(2) Call 内容分類(6, 5) End Sub Sub 部門CDと部門設定() '「部門CD」A列1 と「部門」B列 を シート1 の見出し A列 に設定 For Each 部門CD In Range(Cells(1, 1), Cells(65536, 1).End(xlUp)) If 1 < Len(部門CD) Then If Sheets(1).Range("a:a").Find(部門CD) Is Nothing Then 設定行 = 設定行 + 1 Sheets(1).Cells(設定行, 1) = 部門CD.Value Sheets(1).Cells(設定行, 2) = 部門CD.Offset(0, 1).Value End If End If Next End Sub Sub 分類設定() '「分類」F列6 を シート1 の見出し A列 に設定 For Each 分類 In Range(Cells(1, 6), Cells(65536, 6).End(xlUp)) If 0 < Len(分類) Then If Sheets(1).Range("a:a").Find(分類) Is Nothing Then 設定行 = 設定行 + 1 Sheets(1).Cells(設定行, 1) = 分類.Value End If End If Next End Sub Sub カテゴリ設定(列位置) '「カテゴリ」E列5 を シート1 の見出し 1行 列位置から右に設定 For Each カテゴリ In Range(Cells(2, 5), Cells(65536, 5).End(xlUp)) If 0 < Len(カテゴリ) Then If Sheets(1).Range("1:1").Find(カテゴリ) Is Nothing Then Sheets(1).Cells(1, 列位置) = カテゴリ.Value 列位置 = 列位置 + 1 End If End If Next End Sub Sub 内容分類(参照縦, 参照横) '「内容」D列4 の 参照縦 列, 参照横 列より ' シート1 の見出し A列 1行 適合する セルに 内容を配置 ' 参照縦:分類 F列=6 または 部門CD A列=1 ' 参照横:カテゴリ E列=5 For Each 内容 In Range(Cells(2, 4), Cells(65536, 4).End(xlUp)) If 0 < Len(Trim(内容)) Then 列A参照 = Cells(内容.Row, 参照縦) 行1参照 = Cells(内容.Row, 参照横) If Not Sheets(1).Range("a:a").Find(列A参照) Is Nothing Then If Not Sheets(1).Range("1:1").Find(行1参照) Is Nothing Then 列A⇒行 = Sheets(1).Range("a:a").Find(列A参照).Row 行1⇒列 = Sheets(1).Range("1:1").Find(行1参照).Column 設定内容 = Sheets(1).Cells(列A⇒行, 行1⇒列) & Chr(10) & Trim(内容) If Left(設定内容, 1) = Chr(10) Then 設定内容 = Mid(設定内容, 2) Sheets(1).Cells(列A⇒行, 行1⇒列) = 設定内容 End If End If End If Next End Sub
関連するQ&A
- Excel2000:既存一覧のデータを任意に配列しなおすPart2
以前、こちらで質問し、良回答いただきましたが、再び下のように修正したいのです。 ○下記、元一覧に「分類コード」の新しい列を挿入するので、修正後一覧には、「分類コード」をキーにした昇順の並べ替えを行った表示にする ちなみに、設定した関数は、下の過去ログの↓、No.5の方の回答をそのまま使用しています。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1273783 <元一覧> A B C D E F G 1 部門CD 部門 ID 内容 カテゴリ 分類 (分類CD) 2 130 経理 1 あ ア a 010 3 130 経理 2 い イ b 110 4 130 経理 3 う ア a 020 5 110 総務 4 え ウ a 010 6 110 総務 5 お イ d 250 7 550 営業 6 か ウ c 370 8 550 営業 7 き オ c 370 9 550 営業 8 く オ c 320 <修正後一覧> A B C D E F G 1 (分類CD) 分類 ア イ ウ エ オ 2 010 a あ え 3 020 う 4 110 b い 5 250 d お 6 320 c く 7 370 か き ( )が今後新しく入れる列です。 ※元一覧には既にあります。 ※「分類」が複数ある場合、一番上に配列されるセル以外、下のセル全ては非表示となる設定となっています。 過去ログで、No.5の方の回答の関数を壊さずに、どうやったら「分類CD」を昇順に並べ替えられますでしょうか。
- ベストアンサー
- オフィス系ソフト
- Excel2000:検索値が複数のLOOKUPは
<元一覧> 部門 ID 内容 カテゴリ 経理 1 あ A 経理 2 い B 総務 3 う C 営業 4 え B 営業 5 お A 営業 6 か C 営業 7 き D 現在、上記のようなシート「元一覧」が300行あります。 これを下のようなシート「新一覧」を作成したいんです。 別シートの<新一覧> 部門 ID A B C D 経理 1 あ 経理 2 い 総務 3 う 営業 4 え 営業 5 お 営業 6 か 営業 7 き LOOKUPを考えましたが、検索値が「ID」と「カテゴリ」と複数になりますので、今は少し考えて、元一覧に「ID」と「カテゴリ」を「&」で合わせた「Key」という列を足しました。 部門 ID 内容 カテゴリ Key 経理 1 あ A 1A 経理 2 い B 2B 総務 3 う C 3C 営業 4 え B 4B 営業 5 お A 5A 営業 6 か C 6C 営業 7 き D 7D 別シートに新一覧を作るので、そこにも「Key」を、A~Dのカテゴリ4つ分作り、それを検索値に、元一覧の「Key」列を検索範囲にして、元一覧の「内容」の対応範囲を別シートの新一覧に表示してます。 =LOOKUP("新一覧!2B","元一覧!「Key」の範囲","元一覧!「内容」の範囲")=い でも、何故かきちんと反映してくれません。 例えば、「ID」「1」の「内容」は「A」に「あ」です。 それは入りました。 でも「B」にも「あ」が入ってしまいます。 *「ID」を3桁の「001」にしたり、「Key」もソートしてますがダメです。 それに当たり前ですが、当てはまらない部分は全て「#N/A」となり、新一覧の見た目とてもウザいです(^^;) こんな具合で下手な説明ですが、どなたか、上手い具合になれるようご指導よろしくお願いします。
- 締切済み
- オフィス系ソフト
- エクセルのデータ抽出です
データの抽出ですが,オートフィルタでは上手くいきません。 データが以下のように配列してあります(ア~は人名が入ります) A B C ア 1 2 3 イ 2 ウ 3 エ 2 3 このような状況からたとえば,3のデータを有するア・ウ・エ(の3名)を一度に抽出することは出来ますでしょうか。
- ベストアンサー
- オフィス系ソフト
- 中1数学
次の問題が途中で行き詰まっているのですが、ヒントを下さる方はいませんか? a,b,c,d,eはどれも0でない数であって次のア,イ,ウ,エ,オを満たします。a~eの正負を答えましょう。 アc-aは負 イdはeより小さい ウ b×cは負 エ a×cはdより小さい。 オ c×dはb×eに等しい アよりc<aですよね。でも正負は解りません。イよりd<eですよね。ウよりbとcは異符号ですよね。エよりac<dですが符号が解りません。オよりcd=beですが、これも符号がわかりません。 答えとしては、aとbが正で、残りは負です。逆算すればわかりますが、解けません。ヒントなどを教えていただけないでしょうか。
- 締切済み
- 数学・算数
- エクセルデータの並び替え
エクセルのABC欄にそれぞれデータが下記のように並んでいます。これをすべて二重に並べたいのです。 データが400ほどあるので手動でやるのも手間です。 エクセルに詳しい方、よろしくお願いします。 A B C あ ア い い イ ろ う ウ は A B C あ ア い あ ア い い イ ろ い イ ろ う ウ は う ウ は
- ベストアンサー
- オフィス系ソフト
- 推論問題が分かりません。
考え方を分かりやすく教えて下さい。 問題 A、B、C、Dの4人がテニスのリーグ戦を行ったところ、次のような結果になった。 <結果> 1、 Bは2勝1敗であった。 2、 Cは全勝であった。 この時、確実に言える事を1~5の中から選びなさい。 ア. BはAに勝った。 イ. Aは4位であった。 ウ. AはDに勝った。 1.アのみ 2.イのみ 3.ウのみ 4.アとイ 5.アとウ
- ベストアンサー
- 数学・算数
- エクセル VLOOKUP?INDEX?別表の参照。
エクセルで別表を参照したいのですが、 例えば下記のような表で、A列は、月日を表し、 1/1~6/15までは、アなら10、イなら20を 9/20~12/31までは、アなら12を、ウなら32を 返したいのです。 どうしたらよいのでしょうか? A B C D 1 ア イ ウ 2 1/1 10 20 30 3 6/16 15 25 35 4 9/20 12 22 32
- ベストアンサー
- オフィス系ソフト
- 二つのデータを統一させたいのですが。
エクセルで 「シート1」 「シート2」と 下記のようなデータがあります。 並び順は不規則ですが、 A列の内容は各シートとも同じです。 この二つのシートを一つにあわせて 「シート3」のようにしたいのですが 何かよい方法はありますでしょうか。 よろしくお願いいたします。 【シート1】 | A | B |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 1| あ | ア |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 2| い | イ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 3| う | ウ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 【シート2】 | A | B |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 1| う | 9 |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 2| あ | 7 |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 3| い | 2 |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 【シート3】 | A | B | C |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 1| あ | ア | 7 |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 2| い | イ | 2 |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 3| う | ウ | 9 |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 以上でございます。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 配列のメソッド
配列のメソッドをセッターしてゲッターで取得したいのですがどのようにすればいいのかわかりません(--;)セッターをまず作成しましたがエラーになって出来ません・・・どなたかお願いします。 ↓以下セッターです。 public class KanaHenkanData { //全角を格納するメソッド public char[] setZenkaraHan(char[] haze) { //(全角)ア、イ、ウ、エ、オ・・・・ char[] zenkaku = {'ア','イ','ウ','エ','オ'}; //zenkakuを返す return zenkaku; } //半角を格納するメソッド public void setHankaraZen(int a,String[] zeha) { //(半角)ア、イ、ウ、エ、オ・・・・ String[] hankaku = {"ア","イ","ウ","エ","オ}; //hankakuを返す return hankaku; } }
- ベストアンサー
- Java
- エクセルでの計算式
A B C D E F G H I J 1(氏名)(年齢)1 2 3 4 5・・・31 2 山田 1歳 ア ㋑ ㋐ ㋒ イ 3 田中 0歳 ㋐ 4 後藤 5歳 ア ウ ㋑ 5 山本 4歳 ㋒ 6 佐藤 3歳 ア 7 木村 2歳 ㋒ 8 月間合計 0歳 1,2歳 3歳以上児 9 ㋐ 10 ア 11 ㋑ 12 イ 13 ㋒ 14 ウ 15 わかりにくくてすみません。1か月の表なんですが1日から31日までで ㋐、ア、㋑、イ、㋒、ウがそれぞれいくつか数えたいのと、別に 0歳で㋐、ア、㋑、イ、㋒、ウが何人か、1,2歳ではそれぞれどうか、3歳以上ではそれぞれ何人かを 数えたいので、どのような計算式を使えばいいのか 教えてください。初心者なので説明がわかりにくくてすみません。 お願いします。 (※ちなみに&#13008というのはアを○で囲んだ物です。他のもイやウを○で囲んだ物です)
- ベストアンサー
- オフィス系ソフト
お礼
at121さん、回答ありがとございます。 素晴らしい! ちゃんと出来ましたよ~(>_<) VBEに記述して、多少シート名を変えるくらいで、すぐ出来ました。 まさか、ホントに出来るとは・・・ (質問しておいて、ナンですが) このようなVBAはいったいどうやってお勉強したらいいんでしょうか。 ホントに素晴らしいです。 どうもありがとうございました。