• 締切済み

重複したデータを1つだけ表示

以下のページにて文字を続けて入力できるようになりました。 http://www.relief.jp/itnote/archives/001342.php​ しかし、以下のような場合、同じ値が何度も出てきます。 例) A1 200 A2 150 A3 180 A4 200 A5に”=ConcatenateRangeText(A1:A4)”と入力した場合、 A5に表示されるのは”200150180200”となります。 これを、以下のように、重複しているものは1度だけ、また数字の少ない順に表示することはやはり不可能でしょうか? 希望の表記⇒”150,180,200”

みんなの回答

noname#95859
noname#95859
回答No.2

VBAを使えば、何でもできます。 しかし、下記のものが、貴兄の望むものであるかはあまり自信はありませんが・・・ ユーザ関数を作成します----myConcatenateRange 使い方:該当のセルに =myConcatenateRange( と入れて、対象のセルを選びます。そして、最後に ")"で閉じます。 ---------------------------------- Function myConcatenateRange(ByVal hani As Range) Dim MyArray As Variant Dim myTemp() As Integer ' 動的配列を宣言します。 MyArray = hani.Value ReDim myTemp(hani.Count) i = 0 For Each myElement In MyArray i = i + 1 myTemp(i) = myElement Next flag = 1 Do While flag = 1 flag = 0 For j = 1 To i - 1 If myTemp(j) > myTemp(j + 1) Then flag = 1: Temp = myTemp(j): myTemp(j) = myTemp(j + 1): myTemp(j + 1) = Temp Next Loop For j = 1 To i - 1 If Target = "" And (myTemp(j) <> myTemp(j + 1)) Then Target = myTemp(j) Else If myTemp(j) <> myTemp(j + 1) Then Target = Target & "," & myTemp(j) End If Next Target = Target & "," & myTemp(j) myConcatenateRange = Target End Function 尚、対象エリヤは、1列である必要はありません。2行2列でもかまいません。 スクリプトの基本の流れ。 -対象エリヤの値をバリアント変数に持ってくる -これを1列の配列に入れ替える -ソートする(最も原始的なソートの方法) -吐き出し(この時、同じ値はスキップする) 数値を変更した後の再計算は、F9です。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>以下のページにて文字を続けて入力できるようになりました。 ​WEBサイトを見ても質問とどれが関係あるのかわかりますかね。 関係ない枕言葉なら書かないように。質問者にとって続きや発展で合っても、独立した課題なら書かない方を望む。 ーー >A5に”=ConcatenateRangeText(A1:A4)”と入力した場合、 A5に表示されるのは”200150180200”となります。 これはVBAを使ったユーザー関数ですか?その元コードはどこにあるのですか? 回答者に判るの? ーー A1:A6に 200 100 300 200 400 200 B1に=IF(COUNTIF($A$1:A1,A1)=1,A1,"")と入れてB6まで式を複写する。 A1:B6に 200 200 100 100 300 300 200 400 400 200 となる。 B7に =B1&B2&B3&B4&B5&B6 または =CONCATENATE(B1,B2,B3,B4,B5,B6) と入れると 200100300400 となる。これが質問の正解とは思わないが、これの回答を批評すれば、どうなれば良いのでしょう。 VBAを使っても良いのならできそうだがそういうのを望んでいるのでしょうか?

JJJJJJJJJ
質問者

補足

すみません。貼り付けた先のショートカットが間違っていました。 http://www.relief.jp/itnote/archives/001342.php

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ページの下の真ん中にスライド番号を表示させるには

    パワポの2010なのですが、 ページの下の真ん中にスライド番号を表示させるにはどうすればいいでしょうか? http://www.relief.jp/itnote/archives/003757.php この方法だと右下に番号が来てしまいます。

  • アクセス2003でステータスバーを非表示にするには

    2007なら http://www.relief.jp/itnote/archives/003584.php で出来るようですが アクセス2003で Application.DisplayStatusBar = False をやっても Application.CommandBars("Status Bar").Visible = False をやってもエラーになります。 2003で非表示にするコマンドを教えてください。

  • エクセル 任意の数字から始まる重複しない乱数

    お世話になります。 エクセル2003/XP 使用です。 RANK関数またはそれに似た利用方法でご教授願いします。 下記ページを参考に、"重複しない乱数”を作成しました。 http://www.relief.jp/itnote/archives/001798.php (ページ中程、▼操作手順:重複しない乱数を作成する 以下の部分) 乱数の最初の数字が1から始まる分には問題なくできるのですが、 乱数の数字を、「任意の数字から始めて」、 「任意の数字で終わる」ようにすることは可能でしょうか? 例えば、下記の例でいうと、 6から始まり10で終わる乱数です。        A列     B列 1行目 / =RAND() / 1-5の範囲でランダムな重複しない乱数 2行目 / =RAND() / 同上 3行目 / =RAND() / 同上 4行目 / =RAND() / 同上 5行目 / =RAND() / 同上 ------------------------------------------------------------ 6行目 / =RAND() / 6-10の範囲でランダムな重複しない乱数 7行目 / =RAND() / 同上 8行目 / =RAND() / 同上 9行目 / =RAND() / 同上 10行目 / =RAND() /同上 (11以下、繰り返し 略) よろしくお願いします。

  • エクセルデータをアクセスにコピペする時のこと

    http://www.relief.jp/itnote/archives/000543.php ↑などにエクセルをアクセスのテーブルにコピーする時、『[データの最初の行には、列ヘッダーが含まれていますか?]という確認メッセージが表示されるので』と書いてありますが、私がやると出ません。 特別何か有るのでしょうか。 WIN XP ACCESS 2007 です。よろしくお願いします。

  • 折れ線グラフ・棒グラフで目盛りを月単位・月ごとに

    2003では出来たのですが、日々のデータを使ったグラフを、月単位で平均して表示させる方法が2010ではわかりません。 ご教授お願いします。 ↓のようなやり方。 http://www.relief.jp/itnote/archives/001960.php

  • IF文の重複の表示

    A列には数字が入力されています。重複している場合は =IF(COUNTIF(A:A,A2)>1,"重複","") となるようにしました。ここまではわかったのですが A列に数字以外で”なし”と表示する場合があり、 上記プラスアルファ、A列になしがあって重複している場合は 重複と表示したくないのですが、関数で作成できるものなのか できるとしたらどのようにすればよいのか教えてください。 宜しくお願いいたします。

  • VBAでドロップダウンリストを連動させたものを作るには?

    VBAでドロップダウンリストを連動させたものを作ることが出来ますでしょうか? 今まで入力規則の設定をつかって見ていましたがどうやら実現不可能と思われることが分かってきました。 VBAでの連動したリストの代替案を考えていますが・・・ いい方法は無いでしょうか? このページのようなことがやりたいと思っています。 http://www.relief.jp/itnote/archives/000822.php

  • 書式設定「[$-411]ge,m,d」 デフォルト

    エクセル2010です。 新規にブックを立ち上げたり、既存のブックで新規のファイルを立ち上げて、 書式設定を確認すると「[$-411]ge,m,d」になってしまいます。 その為、「1」を入力すると「M33,1,1」と表示されてしまいます。 このデフォルトの設定を変えるにはどうすればいいでしょうか? http://www.relief.jp/itnote/archives/003090.php で $-411の意味はわかったのですが、 デフォルトで「[$-411]ge,m,d」にならない方法を教えてください。

  • オフィスソフトウェアの比較

    "OpenOffice"やら"LibreOffice"やらの『表計算ソフトウェア』へも、 『("Phonetic関数"の様な)振り仮名出力用関数( http://www.relief.jp/itnote/archives/000082.php )』が搭載されているのでしょうか?

  • エクセルで土日祝と水曜日を除く3日後の数値を表示させる方法はありますか

    一年間の営業サイクル日カレンダーを作成するにあたり、項目Aには土日祝日を除く3日後の日付を表示、項目Bには土日祝日と水曜日を除いた3日後の数字を表示させたいのですが、項目Aはhttp://www.relief.jp/itnote/archives/001105.php を参照し、作成できたのですが、水曜日を除く方法が見つからず、苦戦しております。 上記の祝日を除く方法のように、別シートで水曜日のみの日付を一つ一つ書き出してリンクさせるなどの方法もあるかと思いますが、もう少し簡単にできる方法などありませんでしょうか。 ちなみにExcel2003を使用しています。 お知恵を拝借できれば幸いです。 よろしくお願いします。

専門家に質問してみよう