[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『1列のデータをグループ分けし2列に順番通り並べる。』(ワカチコ)
順番 品番 1・0 A-11 2.0 B-11 3.0 C-32 4.0 A-43 5.0 C-23 6.0 B-42 ・ ・ ・ ・ ・ ・ 200.0 B-11
このように縦1列にならんだデータが200行ほどあります。 これを2つのグループに分けて上から順番通りに並べたいのです。
順番 品番 グループA グループB 1・0 A-11 順番 品番 順番 品番 2.0 B-11 1・0 A-11 2.0 B-11 3.0 C-32 4.0 A-43 3.0 C-32 4.0 A-43 5.0 C-23 6.0 B-42 5.0 C-23 200.0 B-11 6.0 B-42 ・ ・ ・ ・ ・ ・ 200.0 B-11
以上のような感じです。
元データには手を加えれません。(数値をダウンロードします) 予めグループAとグループBの 品番を登録しておき、取り込んだ元データを上記のように 振り分けすることなるのでしょうか?
どのようにすればできるのでしょうか? よろしくお願いします。
Excel2000・Windows2000を使用しています。
ーーーーーー うまく表示されませんので、返信/編集 をクリックしてください。 ※行頭を半角スペースから始めるといいです。
B-11がどちらのグループにもありますが、どうなのでしょう?
回答でなくて、ごめんなさい。 グループAとグループBの規則づけが、よく解らないと思うのですが、……
グループAの順番 1、4、5、8、 9、12、……、200 グループBの順番 2、3、6、7、10、11、……、199
以上の条件で 、元データ から、品番を引っぱってくる様な事ですか? (??)
>上から順番通りに並べたいのです。 「上から順番に」ではなく「順番通りに」であれば 何順にするのかの情報も必要ですね。
元データは、「順番」と言う項目で昇順に成っている様ですが 実際は成っていなくて、最終的にはここを昇順にしたい って事かな・・・?
(HANA)
わかりにくくてすみません。
200.0のB-11は同じ品番ですので グループBになります。 間違っていました。
グループA・グループBに順番の規則性はありません。 A-11は、A A-43は、A C-23は、A B-11は、B C-23は、B B-42は、B と予め決まっているのですが、元のデータにはないので データを取り込んだ時に、それぞれのグループを指定して 振り分けたいです。 順番は、元データの数値の小さい方から上にして並べます。 よろしくお願いします。
あらかじめグループA グループBの 品番が入力済みであることが条件ですが
作業列を使用してもいいなら
「元データ」の右側に作業列を挿入して 数式を入力
それをもとに INDEX MATCHの組み合わせでできます。
(ラデツキー)
その作業列の作成方法と INDEX MATCHのやり方の 手順も教えていただけますか よろしくお願いします。
セル番地が提示されていないので応用してください。
「元データ」がA列:B列 「グループA」がD列:E列 「グループB」がG列:H列 として
C列を作業列 C2 =B2&"-"&COUNTIF($B$2:B2,B2) フィルハンドルで下にコピー
D3 =INDEX($A$2:$A$201,MATCH(E3&"-"&COUNTIF(E$3:E3,E3),$C$2:$C$201,0)) フィルハンドルで下にコピー
G3の数式も同じ考え方です。
(ラデツキー)
>順番は、元データの数値の小さい方から上にして並べます。 と言う事ですが 元データが、最初から小さい順に並んでいる (上から並べて行けば自然と順番になる)のと 並んでいない (振り分け中、あるいは振り分け後に並べ替えが必要)のと では、難易度が変わってくると思います。
また、順番や品番のなかでの重複の有無等。
もう一度明確にして頂ければと思います。
(HANA)
元データの順に上から下へ並んでいれば問題ありません。 (グループAとグループBに振り分けられた時に並んでいればOK)
順番には重複はありませんが品番には重複があります。 しかし、重複していても表示します。
つまり元データが200あれば 振り分けられた後のデータも200あるということです。
引き続きおねがいします。
[A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [1] 順番 品番 grA grB grA grB グループ A グループ B [2] 1 A-11 1 品番 品番 順番 品番 順番 品番 [3] 2 B-11 2 A-11 C-32 1 A-11 3 C-32 [4] 3 C-32 3 A-43 B-42 2 B-11 6 B-42 [5] 4 A-43 4 C-23 4 A-43 [6] 5 C-23 5 B-11 5 C-23 [7] 6 B-42 6 200 B-11 [8] 200 B-11 200 [9] [10] 作業列を二つ使います。 A:B列に元データ F:G列にそれぞれのグループの品番を配置してください。
C2 =IF(COUNTIF(F$3:F$6,$B2),$A2,"") D2 =IF(COUNTIF(G$3:G$6,$B2),$A2,"") I3 =IF(COUNT($C$1:$C$200)<ROW(A1),"",SMALL($C$1:$C$200,ROW(A1))) J3 =IF(I3="","",VLOOKUP(I3,$A$1:$B$200,2,FALSE)) L3 I3の式の内、C1:C200をD1:D200に変更した物 M3 J3セルをコピーして、貼り付け
(HANA)
J3セルをコピーして、貼り付け を実行しましたがgrAの品番が出てきました。
自分なりに考え =IF(I3="","",VLOOKUP(I3,$A$1:$B$200,2,FALSE))の I3のところをL3に変更してみたところできました。
思っていた通りの結果ができました。 どうもありがとうございました。
>J3セルをコピーして、貼り付け J3セル用の式を、J3セルに入れて J3セルを選択してコピーして、M3セルに貼り付けると 数式は勝手に =IF(L3="","",VLOOKUP(L3,$A$1:$B$200,2,FALSE)) に変わるのですが。。。。
J3セルの式を見て >I3のところをL3に変更してみたところできました。 この様に変更してもらって充分です。
上手く行ったようで良かったです。
(HANA)
スミマセン J3セルのコピーがうまくいかなかったので J3セルの数式をコピーしていました。
もう1点追加でお尋ねします。
順番 品番1 品番2 1 A-11 2 B-11 3 C-32 4 A-43 5 C-23 6 B-42 7 B-56 8 A-35 ・ ・ 200 B-11
元データに品番が2列あるものがあります。 これも同様にgrAとgrBに振り分けたいのです。
B-56は、Aグループに A-35は、Bグループに 属する品番とします。
品番1と品番2は同時に入力されない様ですので C2,D2に入れた式のCOUNTIF関数の検索条件部分 COUNTIF(範囲, 検索条件) ココ/~~~~~~~~を $B2&$C2 とかにして下さい。
(HANA)
またまた説明不足ですみません。
品番1と品番2は同時に入力されます。 が、品番1と品番2が重複することはありません。
再度、ご教授ください。
どの様になるのかサンプルデータを載せて下さい。
また、 [A] [B] [C] [D] [1] [2] [3] [4] [5] [6] こんな感じで、どこに何が配置されているか (配置したのか)教えてください。
表組は、エクセルから貼り付けると 割と簡単に入力できると思います。
(HANA)
たびたびすみません。 順番 品番1 品番2 grA grB [A] [B] [C] [D] [1] A-11 C-13 [1]C-13 [2]A-21 [2] B-11 A-21 [4]B-22 [3]C-32 [3] C-32 [5]A-30 [6]B-42 [4] A-43 B-22 [7]B-56 [8]A-35 [5] C-23 A-30 [9]B-11 [6] B-42 [7] A-11 B-56 [8] B-11 A-35 [9] B-11 順番・品番1・品番2を元データから持ってきます。 それをgrA・grBに分けます。
・手順としては、まず1行目の品番2の方をみてgrAかgrBかを 判定して振り分けます。 品番2は空欄のときがありますので、そのときだけ品番1をみて grAかgrBかを判定して振り分けます。
品番1と品番2は同じ行で重複することはありません。
この作業を1行目から200行目まで繰り返し行い、結果を grAとgrBにだしたいのです。 (元データが200あれば、A・B合わせて200になります)
・先程の通りgrAとgrBはあらかじめ登録します。
よろしくお願いします。
順番の列や、項目の行は無くなったのですか? これまでは、順番の列を手がかりに振り分けていたのですが。 勿論、無いなら無いでその様に考えますが。。。。
それから、どこへ書き出せば良いのですか? 作業セルが必要な場合、どこへ作れば良いですか?
各表の左側に有る[]内の数字が行番号なら [A] [B] [C] [D] [1] A-11 C-13 C-13 [2] B-11 A-21 A-21 [3] C-32 C-32 [4] A-43 B-22 B-22 [5] C-23 A-30 A-30 [6] B-42 B-42 [7] A-11 B-56 B-56 [8] B-11 A-35 A-35 [9] B-11 B-11 こんな状態って事になりますが・・・。
元データとしてのサンプルデータと、配置 対応表のサンプルデータと、配置 希望する抽出結果とその配置
をもう一度明確にして下さい。
その際、 メモ帳で作成し貼り付けるか エクセルで作成し貼り付け、手直しをせずに 投稿していただければと思います。
因みに、最初のご説明から品番2が増えただけで 品番2を優先で確認して行くのなら、COUNTIF関数の 検索条件を IF($C2="",$B2,$C2) に変更で 良いかもしれません。
(HANA)
[A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [1] 順番 品番1 品番2 grA grB grA grB グ ループA グループB [2] 1.0 A-11 C-13 1.0 品番 品番 順 番 品番 順番 品番 [3] 2.0 B-11 A-21 2.0 C-13 A-21 1.0 C-13 2.0 A-21 [4] 3.0 C-32 3.0 B-22 C-32 4.0 B-22 3.0 C-32 [5] 4.0 A-43 B-22 4.0 A-30 B-42 5.0 A-30 6.0 B-42 [6] 5.0 C-23 A-30 5.0 B-56 A-35 7.0 B-56 8.0 A-35 [7] 6.0 B-42 6.0 B-11 200.0 B-11 [8] 7.0 A-11 B-56 7.0 [9] 8.0 B-11 A-35 8.0 [10] 200.0 B-11 200.0 E3・F3・K4・L4・N4・O4の各セルに関数が入ることになると思いますが 各セルの関数をご教授いただければ幸いです。
お手数かけますが、よろしくお願いします。
例えば、もう一つ作業列を作って =IF(B2="",C2,B2) 等としておけば、後は最初に載せた式の内 B列を参照していた所を、その列の参照に変える 等で そんなに変更無く使えそうに思います。
前の式から変更して使うなら D2 =IF(COUNTIF(G$3:G$7,IF($C2="",$B2,$C2)),$A2,"") E2へと、必要行フィルドラッグ。 J2 =IF(COUNT($D$1:$D$200)<ROW(A1),"",SMALL($D$1:$D$200,ROW(A1))) K2 =IF(J3="","",IF(VLOOKUP(J3,$A$1:$C$200,3,FALSE)="",VLOOKUP(J3,$A$1:$B$200,2,FALSE),VLOOKUP(J3,$A$1:$C$200,3,FALSE)))
M2は、J2のD列がE列を参照したもの N2は、K2セルをコピーして貼り付けたもの
それぞれ必要行フィルドラッグ
で、どうでしょう。
(HANA)
例えば、もう一つ作業列を作って =IF(B2="",C2,B2) とありますが、下記のような意味でしょうか? Eから右の列はとりあえず省略しています。
品番2用列挿入↓ ↓作業列用列挿入
[A] [B] [C] [D] [1] 順番 品番1 品番2 [2] 1 A-11 C-13 A-11 [3] 2 B-11 A-21 B-11 [4] 3 C-32 C-32 [5] 4 A-43 B-22 A-43 [6] 5 C-23 A-30 C-23 [7] 6 B-42 B-42 [8] 7 A-11 B-56 A-11 [9] 8 B-11 A-35 B-11 [10] 9 B-11 B-11
品番2用のC列と作業列追加のD列の2列が新たに挿入されるということでしょうか? この状態でD2セルに=IF(B2="",C2,B2)を いれ必要行フィルドラッグしても全て品番1しか表示されません。 (この時点で、グループA・Bに該当するどちらかの品番が並んでいないと いけないと思うのですが)
よろしくお願いします。
済みません、品番2が優先ですから =IF(B2="",C2,B2) ではなく IF($C2="",$B2,$C2) (↑その上のコメントで書いていた式)ですね。。。
空白処理も入れて こんな感じに成ります。 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [1] 順番 品番1 品番2 作業列 grA grB grA grB グループ A グループ B [2] 1 A-11 C-13 C-13 1 品番 品番 順番 品番 順番 品番 [3] 2 B-11 A-21 A-21 2 C-13 A-21 1 C-13 2 A-21 [4] 3 C-32 C-32 3 B-22 C-32 4 B-22 3 C-32 [5] 4 A-43 B-22 B-22 4 A-30 B-42 5 A-30 6 B-42 [6] 5 C-23 A-30 A-30 5 B-56 A-35 7 B-56 8 A-35 [7] 6 B-42 B-42 6 B-11 200 B-11 [8] 7 A-11 B-56 B-56 7 [9] 8 B-11 A-35 A-35 8 [10] 200 B-11 B-11 200 D2に =IF(C2="",B2,C2)&""
これで、品番2に入力が有ればその品番 無い場合は品番1がD列に表示される事に成ります。
最初のサンプルでは、A列とB列を使用しましたが この状態にすればB列がD列に当たります。
E2 =IF(COUNTIF(H$3:H$7,$D2),$A2,"") F2は、E2をコピー
K3 =IF(COUNT($E$1:$E$200)<ROW(A1),"",SMALL($E$1:$E$200,ROW(A1))) L3 =IF(K3="","",VLOOKUP(K3,$A$1:$D$200,4,FALSE))
(HANA)
うまくできました。
長い間お付き合いありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.