[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート1で重複する文字列の値をシート2に拾い出す』(saku)
恐れ入ります
マクロは出来ないので関数で作りたいです
シート1
A B 1りんご 2 2バナナ 7 3りんご 8 4さくら 6 5さくら 9
これを
シート2に
A B C 1りんご 2 8 2バナナ 7 3さくら 6 9
と返す為に
シート2のA1の数式と
シート2のB2の数式を教えて頂けますか
「りんご」「さくら」は各々全く同じ値で
重複するためシート2でA列では一括に纏め、
しかし各々の値は横に羅列していぎたいです
宜しくお願いします
< 使用 Excel:unknown、使用 OS:Windows8 >
作業列を使っていいのなら、、、
りんご 2 1 =COUNTIF($A$1:A1,A1) バナナ 7 1 りんご 8 2 さくら 6 1 さくら 9 2
=IFERROR(INDEX(Sheet1!$A$1:$A$5,SMALL(IF((Sheet1!$C$1:$C$5=1),ROW($A$1:$A$5)),ROW(A1))),"") =IFERROR(INDEX(Sheet1!$B$1:$B$5,SMALL(IF((Sheet1!$A$1:$A$5=$A1),ROW($A$1:$A$5)),COLUMN(A1))),"") りんご 2 8 バナナ 7 さくら 6 9
ですけど、、作業列を使わないスマートな式が出てくると思います。(凄い自信(^^;) あっ、、下のは配列です。 (SoulMan) 2019/06/02(日) 10:45
シート1
A B 1りんご 2 2バナナ 7 3りんご 8 4さくら 6 5さくら 9 6りんご 3 7さくら 4 8りんご 5
これを
シート2に
A B C D E 1りんご 2 8 3 5 2バナナ 7 3さくら 6 9 4
の場合
シート2のB1〜E1はどうすればよいでしょうか
D1以降も
=IFERROR(INDEX(Sheet1!$B$1:$B$5,SMALL(IF((Sheet1!$A$1:$A$5=$A1),ROW($A$1:$A$5)),COLUMN(A1))),"")
でよろしいでしょうか
(saku) 2019/06/02(日) 12:27
=IFERROR(INDEX(Sheet1!$B$1:$B$8,SMALL(IF((Sheet1!$A$1:$A$8=$A1),ROW($A$1:$A$8)),COLUMN(A1))),"") 基本、一致した行の小さい順なので範囲は拡張してください ただ、ROW($A$1:$A$8))の部分は、インデックスなので範囲を広げても必ずA1からです。 iPhoneからなのでダメだったらごめんちゃいです🙏 (SoulMan) 2019/06/02(日) 13:09
であれば
シート1
A B 1りんご 2 2バナナ 7 3りんご 8 4さくら 6 5さくら 9 6りんご 3 7さくら 4 8りんご 5 これを シート2に A B C D E 1りんご 8 5 3 2 2バナナ 7 3さくら 9 6 4
と大きい値から拾い出して並べてもらえるには
どうすればよいでしょうか
欲張った質問ですみません
(saku) 2019/06/02(日) 15:27
>基本、一致した行の小さい順なので範囲は拡張してください
少し誤解させちゃいましたね。
正確には、一致した行の 上から です。
なので何処かへ出力しておいて
=IFERROR(LARGE($G1:$J1,COLUMN(A1)),"")
=IFERROR(INDEX(Sheet1!$B$1:$B$8,SMALL(IF((Sheet1!$A$1:$B$8=$A1),ROW($B$1:$B$8)),COLUMN(A1))),"") りんご 8 5 3 2 2 8 3 5 バナナ 7 7 さくら 9 6 4 6 9 4
とするのが一番簡単かと思います。
でも、作業列を使わないもっとスマートな式が出てくると思います。
では、、では、、 (SoulMan) 2019/06/02(日) 18:09
Sheet2のB列以降が「出現順」でもいいのなら ピボットテーブルで簡単にできます(Sheet1の1行目を見出し、C列を作業列にして)
作業列は ↓ な感じ C2 =IF(A2="","",COUNTIF($A$2:A2,A2))
■B列以降が降順で、数式の場合 Sheet1の実際のデータ量が不明ですが、作業列を使ってもいいのなら
Sheet1のC1セル =IF(A1="","",IF(COUNTIF($A$1:A1,A1)=1,ROW(),"")) 普通にEnterだけで確定し、下コピー
Sheet2 A1 =IFERROR(INDEX(Sheet1!A:A,SMALL(Sheet1!C:C,ROW(A1))),"") 普通にEnterだけで確定し、下コピー
B1 =IF($A1="","",IFERROR(LARGE(IF(Sheet1!$A$1:$A$100=$A1,Sheet1!$B$1:$B$100),COLUMN(A1)),"")) Ctrl+Shift+Enter で確定し、下と右にコピー(範囲は実際の表に合わせる) ROW(A1) と COLUMN(A1) の「A1」はどんな配置でも変更しないように
参考まで (笑) 2019/06/03(月) 11:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.