[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『SUMIFのように文字列を結合』(megrin)
よろしくお願いします。
銀行口座の明細(振込入金)をエクセルにインポートした後の処理で質問です。
同じ名義で複数回お振込された方の合計をSUMIF関数で表示しているのですが、
隣のセルに「振込日」を文字列として結合して、1つのセルに格納したいです。
(例:2/10,2/25,2/28 のように。TEXT関数は使えます)
同じ振込名義が何度も現れますが、それぞれの行に同じ文字列を表示して構いません。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
現在の表の形が分からない 結果としてどのように表示されれば満足か不明瞭
なので以下のリンク先にあるユーティリティを使ってレイアウトを提示願います。 [[20110209184943]] 『[談]シートレイアウトの投稿どうしてますか?』(momo)
ちなみに文字を繋げて表示になると、関数では文字の数だけ作業列が必要になると思うので VBAの対応になると思います。 (稲葉) 2016/02/24(水) 12:33
|[A] |[B] |[C] |[D] |[E] [3] |振込日 |名義 |振込額|同一名義の振込額の合計|入金日 [4] |2016/2/9 |スズキ ハナコ | 3,500| 6,200|2/9,2/15 [5] |2016/2/10|ナカムラ ジロウ| 5,000| 5,000|2/10 [6] |2016/2/10|ヤマダ タロウ | 4,500| 9,600|2/10,2/25,2/28 [7] |2016/2/15|スズキ ハナコ | 2,700| 6,200|2/9,2/15 [8] |2016/2/20|タナカ サブロウ| 6,000| 6,000|2/20 [9] |2016/2/25|ヤマダ タロウ | 4,300| 9,600|2/10,2/25,2/28 [10]|2016/2/28|ヤマダ タロウ | 800| 9,600|2/10,2/25,2/28
ご返信ありがとうございます。
ユーティリティが素晴らしくて驚きました。
現在D列まで表示している状態で、E列の追加を検討しています。
大がかりにならなければ作業列を使っても構いません。
よろしくお願いいたします。
(megrin) 2016/02/24(水) 14:35
一つの取引先は最大何件現れるのだろうか? (入金日は最大何件つなげることになるか) (ねむねむ) 2016/02/24(水) 14:52
ものすごい力技だが。
=IF(A4="","",IFERROR(TEXT(SMALL(IF(B$4:B$100=B4,A$4:A$100,""),1),"m/d"),"")& IFERROR(TEXT(SMALL(IF(B$4:B$100=B4,A$4:A$100,""),2),",m/d"),"")& IFERROR(TEXT(SMALL(IF(B$4:B$100=B4,A$4:A$100,""),3),",m/d"),"")& IFERROR(TEXT(SMALL(IF(B$4:B$100=B4,A$4:A$100,""),4),",m/d"),"")& IFERROR(TEXT(SMALL(IF(B$4:B$100=B4,A$4:A$100,""),5),",m/d"),""))
上記式では最大100行目までデータがあるものとしている。 もっと行数がある場合は式中の「$100」部分をすべて同じ値で大きくしてくれ。
また、SMALL関数の第二引数を「6」「7」と増やしたものを&でつなげることでつなげる件数の最大を増やせる。 (ねむねむ) 2016/02/24(水) 15:20
標準モジュールに Function MEIGIConDay(v As String, Drng As Range, Mrng As Range) 'MEIGIConDay(検索値,日付列範囲,名義列範囲) Dim a Dim m As String Dim d As String m = Mrng.Address d = Drng.Address a = Evaluate("=TRANSPOSE(IF(" & m & "=""" & v & """,TEXT(" & d & ",""m/d""),CHAR(2)))") a = Filter(a, Chr(2), False) MEIGIConDay = Join(a, ",") End Function
としておいて、 E4=MEIGIConDay(B4,$A$4:$A$10,$B$4:$B$10) これをコピーでどうでしょう?
※解釈できるようであれば MEIGIConDay = Join(Filter(Evaluate("=TRANSPOSE(IF(" & Mrng.Address & "=""" & v & """,TEXT(" & Drng.Address & ",""m/d""),CHAR(2)))"), Chr(2), False), ",") これ一行でも大丈夫です。 15:28追記 (稲葉) 2016/02/24(水) 15:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.