No.4ベストアンサー
- 回答日時:
No.2です!
たびたびお邪魔します。
重複の数が多い場合にも対応できる方法をお望みみたいなので、
一気にやろうとすると途方もなく長い数式しか思いつきませんので
↓の画像のように作業用の表を使う方法はどうでしょうか?
とりあえず、データが1000行目まで対応できる方法です。
作業列E2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")
という数式を入れ、オートフィルでずぃ~~~!っと下へコピーします。
(これは作業用の表の列方向にA列の項目を重複なしに表示するためです。)
そして、F2セルに
=IF(COUNT($E$2:$E$1000)<COLUMN(A1),"",INDEX($A$2:$A$1000,SMALL($E$2:$E$1000,COLUMN(A1))))
という数式を入れ列方向(右方向)のオートフィルでコピーします。
F3セルに
=IF(OR(F$2="",COUNTIF($A$2:$A$1000,F$2)<ROW(A1)),"",INDEX($B$2:$B$1000,SMALL(IF($A$2:$A$1000=F$2,ROW($A$1:$A$999)),ROW(A1))))
(この数式だけが配列数式になりますので、前回同様に
Shift+Ctrl+Enterキーで確定してください。)
これを列方向と行方向にオートフィルでコピーします。
そして、F16セルに(画像ではF16セルにしていますが、何行目でも構いません)
=CONCATENATE(F3,F4,F5,F6,F7,F8,F9,F10,F11,F12)
という数式を入れ、列方向にコピーします。
とりあえず、重複が10あっても大丈夫です。
最後にC2セルに
=IF(A2="","",A2&INDEX($F$16:$K$16,,MATCH(A2,$F$2:$K$2,0)))
という数式を入れ、オートフィルで下へコピーしています。
以上、長々と書いた上に、結構手間がかかる方法ですが
参考になれば幸いです。
他に良い方法があれば読み流してくださいね。m(__)m
No.3
- 回答日時:
>こちらも試してみました。
>たしかにできるのですが、他の回答者さんと同じく2列までが限度なのでしょうか。
はい?
ゴメンナサイ,ホントにちゃんと試してみたのですか?
回答1のやり方は,2つ限定などではありません。沢山あっても当然間違い無く出来ます。
それで。
やってみたけど実際できなかったのでしたら,何かあなたのお手許で実地に合わせて式をやりなおした時に間違えたか,さもなくば「実際にデータが違っている(一致していない)」かです。
たとえば「あああ」の次の「あああ」が,じつは「あああ□」とかになっているかもしれません。回答1の式のD列の結果をよく見てみると,おかしなデータの所で結果がおかしくなっているのを見つけることができます。
まっさらのシートを用意して,
あなたもご自分のご相談投稿の説明を見ながら,全くその通りにサンプルデータを手で打ち直して,
改めて数式を間違えないように作成して確認してみてください。
ネットの画面から式をコピーして入れてみると,間違い無くていいかもしれません。
そのあとどうしても本番データで上手く行かなかったときは
1.あなたが実際にエクセルに入れて動かした式を,あなたの実際のエクセルの数式バーからコピーして,教えてください。
2.実際に具体的にどんなデータを入れていて,どんな結果になってしまってダメだったのか,「例えば」じゃなく「実際におかしいデータ」をウソ編集なくありのまま教えてください。
この回答への補足
失礼しました。回答先を間違えておりました。
しかし出来なかったのは「本当」です。
しかし出来なかったのが「ウソ」になりました。
今回改めて試してみたらうまくいきました。
※おそらく1行目からではなく2行目からやっていたか、あるいはコピーし間違えたかです。
とてもよく出来た関数だと思っております。
ありがとうございました。
今後はよくテストしたいと思います。
またご協力頂いた他の方や閲覧して思考された方もおられるでしょう。皆様に感謝しております。
また将来の同じような悩み、質問を抱えている方がここを通りかかりましたら「この方法でOKです」ということを記しておきたいと思います。
{=IF(COUNTIF($A$2:$A$100,A2)=1,B2,IF(COUNTIF($A$2:$A$100,A2)=2,INDEX($B$2:$B$100,SMALL(IF($A$2:$A$100=A2,ROW($A$1:$A$99)),1))&INDEX($B$2:$B$100,SMALL(IF($A$2:$A$100=A2,ROW($A$1:$A$99)),2)),""))}
↑これをC2にctrl+shift+Enterで確定すると、
あああa
いいいbbg
うううcc
えええdd
おおおee
あああf
いいいgbg
あああh
あああI
あああj
あああk
といようになり、できない、ということを言いたかったのでした。
A列で3つ以上のものが出てくるとダメです。
ウソ偽りないです。説明不足ですみません。
No.2
- 回答日時:
こんばんは!
一例です。
とりあえずA列に重複は二つまでという限定になりますが・・・
↓の画像でC2セルに
=IF(COUNTIF($A$2:$A$100,A2)=1,B2,IF(COUNTIF($A$2:$A$100,A2)=2,INDEX($B$2:$B$100,SMALL(IF($A$2:$A$100=A2,ROW($A$1:$A$99)),1))&INDEX($B$2:$B$100,SMALL(IF($A$2:$A$100=A2,ROW($A$1:$A$99)),2)),""))
(100行目まで対応できるようにしています。)
これは配列数式になってしまいますので、
この画面から直接コピー&ペーストしただけではエラーになると思います。
C2セルに貼り付け後、F2キーを押す、又はC2セルをダブルクリック、又は数式バー内で一度クリックします。
編集可能になりますので
Shift+Ctrl+Enterキーで確定してみてください。
数式の前後に{ }マークが入り配列数式になります。
このC2セルをオートフィルで下へコピーすると画像のような感じになります。
重複が三つという場合も上記の数式で応用できますが
数式としてはかなり長いものになってしまいます。
そして、配列数式はデータ量が多い場合はコンピュータにかなりの負担をかけますので
作業用の列を使ったりする方法をおススメします。
以上、長々と書きましたが
参考になれば幸いです。
他に良い方法があれば読み流してくださいね。m(__)m
ありがとうございます、
>とりあえずA列に重複は二つまでという限定になりますが・・・
重複がいくつになるかというのがわからないのですが、重複を限定しないで出来ますでしょうか?
No.1
- 回答日時:
文字を繋ぐ「上手い」関数って意外とありませんので,次のように1ステップ置くのが結局一番簡単です。
D1に
=B1&IF(COUNTIF(A2:A999,A1),INDEX(D2:D999,MATCH(A1,A2:A999,0)),"")
と置いて下向けにコピー。
目的のC1に
=IF(D1="","",INDEX(D:D,MATCH(A1,A:A,0)))
と置いて下向けにコピー。
ありがとうございます。
こちらも試してみました。
たしかにできるのですが、他の回答者さんと同じく2列までが限度なのでしょうか。
あああ difjsiajas
というような場面も出てくるので個数に限定しないやり方はないものでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数のスペシャリストの方、教えてください。 写真のように A列にはデータ C列にはデータの中 7 2022/04/09 00:15
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Excel(エクセル) Excel 文字列を結合するときに重複をなくしたい 関数・VBA 2 2022/12/12 10:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Excel 日付を比較したら、同じ...
-
Outlookを立ち上げたらGoogleロ...
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
ウィンドウィズ メモ帳で日付だ...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
Microsoft Formsの「個人情報や...
-
microsoft office
-
MicrosoftOfficeについて質問で...
-
マイクロソフト 一時使用コード...
-
outlookで宛先が異なるメールを...
-
Outlookでの時間指定送信機能に...
-
【スプレドシート】目標達成の...
-
自分の専門分野の仕事。初見で...
-
Microsoft Officeを2台目のPCに...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報