advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 60 for ケン 配列数式 (0.005 sec.)
ケン (1884), 配列数式 (1840)
[[20050111142557]]
#score: 6414
@digest: 9f49c331c5aa780a62c9894d1a528df0
@id: 11203
@mdate: 2005-01-18T09:05:45Z
@size: 8344
@type: text/plain
#keywords: 品代 (76510), 船代 (71074), 械代 (67665), 代” (38796), 代ab (37794), 代le (30235), 料” (29755), 険料 (27616), 代, (23087), lec (21971), mylookup (20867), 保険 (17918), 運賃 (17410), 代機 (15630), 代ef (15368), 料" (15271), 代6 (14961), 代5 (13483), 賃" (12773), 代" (8928), 機械 (8647), 代、 (7517), myval (7074), プー (6713), 、"& (5971), 今考 (4967), 商品 (4321), 中・ (3699), 只今 (3059), concatenate (3046), abc (2946), small (1697)
『検索して抜き出した文字列をくっつける。』(プーさん)
いつもお世話になっております。 以下のような文字列のくっつけ方をご存知の方、教えてください。 A B C 1 ABC 商品代 ”商品代、保険料” 2 EFZ 運賃 3 RET 船代 4 ABC 商品代 5 LEC 機械代 6 ABC 保険料 A列から”ABC" を検索して、それに該当するB列を抜き出します。 ここでは、A1とA4の”商品代”とA6の”保険料”ですね。 この抜き出した”商品代”と”保険料”を、C1に”商品代、保険料”として表したいと思っています。 ポイントは、ABCの”商品代”という重複を無視することです。 配列数式、CONCATENATEなどいろいろと試みましたが、どうもうまくいきません。 ご存知の方宜しくお願いします。 --------- 多分、こんなことじゃないと思うけど、レスがついていなかったのと ちょっと息抜きで考えてみました。 D列を作業列に使います。 D1からD6を選択した状態で数式バーに =IF(MATCH(B1:B6,B1:B6,0)=ROW(B1:B6),B1:B6,"") と入力してCtrl+Shift+Enterで確定します。 次にC1に =INDEX(D1:D6,SMALL(IF((A1:A6="ABC")*(D1:D6<>""),ROW(D1:D6)),ROW(A1)))&"、"& INDEX(D1:D6,SMALL(IF((A1:A6="ABC")*(D1:D6<>""),ROW(D1:D6)),ROW(A2))) と入力してCtrl+Shift+Enterで確定します。 ABC 商品代 商品代、保険料 商品代 EFZ 運賃 運賃 RET 船代 船代 ABC 商品代 LEC 機械代 機械代 ABC 保険料 保険料 するとこんな感じになりました。 今回限定ということで何かの参考になれば幸いです。 ではでは、春はまだまだ遠い。。SoulManでした。 http://ryusendo.no-ip.com/cgi-bin/upload/src/up0207.xls --------- 朝起きてよく考えたら作業列は不要でしたね(^^;;; C1に =INDEX(B1:B6,SMALL(IF((A1:A6="ABC")*(MATCH(B1:B6,B1:B6,0)=ROW(B1:B6)),ROW(A1:A6)),ROW(A1)))&"、"& INDEX(B1:B6,SMALL(IF((A1:A6="ABC")*(MATCH(B1:B6,B1:B6,0)=ROW(B1:B6)),ROW(A1:A6)),ROW(A2))) と入力してCtrl+Shift+Enterでどでしょう? もっと奥がありそうですが、、、 (SoulMan) ---- ちょっと遅くなりました。作業列を使う方法で考えました。 作業列(E列)では、検索値(G1セルにABCと入力とします)と合致したB列を表示します。 E1セルに下の式を入れて、E6までコピー =IF(A1=$G$1,B1,"") 作業列(F列)では、E列で重複するものを除き且つ該当する2番目以降の前に『、』を付けます。 F1セルには、 =E1 とし、F2セルに下の式を入れてF6までコピー =IF(E2="","",IF(COUNTIF($E$1:E2,E2)=1,IF(COUNTA($F$1:F1)-COUNTIF($F$1:F1,"")>=1,"、"&E2,E2),"")) んでもって、問題はC1セルへの表示ですが、頭とお尻の『"』は、上手く認識してくれませんので、 (※詳しい理由は、私には分りません。多分文字列として認識しなさい! みたいな感じだと思います。) 『''』=シングル2個で対応しました。 =IF(COUNTIF(A1:A6,G1),CONCATENATE("''ここ''",F1,F2,F3,F4,F5,F6,"''ここ''"),"ありませんからー、残念!") YukiWikiの文字装飾ルールと重なってしまうので、上記の『''ここ''』の部分は、 実際は『''』に差し替えてください。 (sin) ちょっと別件:SoulManさん、お久しぶり〜。まだまだ続いてるんですか? ファイト!ですー。 ---- プーさんです。皆さんありがとうございます。 いろいろと考えていただき、ありがとうございました。 -------- ろくに回答もしてないけど、プーさんちょっとお借りします。 sinさんへ ''頭*〜( ///// )ヽ(゚ロ゚)ノ爆発寸前!?'' って感じです。 >まだまだ続いてるんですか? 春は、、まだまだ、、です。。頑張ります。しかし、ワードってむずいですね(^^;;; お邪魔しました。m(__)m (SoulMan) -------- プーさんです。たびたびお世話になっております。 前回の質問の内容を少し変えて、再び質問させていただきます。 A B C D 1 ABC 商品代 ABC "商品代、保険料" 2 EFZ 運賃 EFZ "運賃” 3 LEC 船代 LEC "船代、機械代” 4 ABC 商品代 5 LEC 機械代 6 ABC 保険料 例えば、上の例のように A列から文字列を検索、それに対応するB列の文字列を、 C列を参照してD列にくっつけて表示する。 こんなことができる数式ありましょうか? ちなみにC列はベタ打ちし、D列に入力する数式にどんな ものがあるかと思っております。 ---- 只今考え中・・・只今考え中・・・ (sin) ---- 思い切り作業列を使った方法です(^_^A; A B C D E F G H I J K 1 ABC 商品代 ABC "商品代,保険料" 商品代 保険料 "商品代,保険料,,,," 2 EFZ 運賃 EFZ "運賃" 運賃 "運賃,,,,," 3 LEC 船代 LEC "船代,機械代" 船代 機械代 "船代,機械代,,,," 4 ABC 商品代 5 LEC 機械代 6 ABC 保険料 D1=IF(C1="","",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(K1,",,,",""),",,",""),",","",COUNTIF(E1:J1,"?*"))) E1=IF(SUM(N(($A$1:$A$6=$C1)*(MATCH($B$1:$B$6,$B$1:$B$6,0))=ROW($B$1:$B$6)))<COLUMNS($E1:E1),"",INDEX($B$1:$B$6,SMALL(IF(($A$1:$A$6=$C1)*(MATCH($B$1:$B$6,$B$1:$B$6,0))=ROW($B$1:$B$6),ROW($A$1:$A$6),""),COLUMNS($E1:E1)),1)) として、Shift+Ctrlキー押しながらEnterキーで確定させて配列数式にしてJ1までコピー K1=CONCATENATE("""",E1,",",F1,",",G1,",",H1,",",I1,",",J1,"""") 項目6つまでしか対応してませんけど_/ ̄|○ il||li (川野鮎太郎) ---- ユーザー定義関数で作って見ました。 Function MyLOOKUP(adr As Range, rag As Range, colm As Integer) As String Dim c As Range Dim Myval As String Dim i As Long Dim flag As Integer Application.Volatile For Each c In rag If adr.Value = c.Value Then If Myval = "" Then Myval = c.Offset(, colm - 1).Value Else For i = 1 To Len(Myval) If c.Offset(, colm - 1).Value = _ Mid(Myval, i, Len(c.Offset(, colm - 1).Value)) Then flag = 1 Exit For Else flag = 0 End If Next i If flag = 0 Then Myval = Myval & "," & c.Offset(, colm - 1).Value End If End If End If Next c If Myval = "" Then MyLOOKUP = "該当なし" Else MyLOOKUP = """" & Myval & """" End If End Function こんなんで、よかったら見てください。 http://ryusendo.no-ip.com/‾ken/cgi-bin/uploader/src/0003.xls (ケン) ---- 参りました。。。 私の考え方だと、右方向の配列数式を認識してくれなくなったので、 ABC EFZ LEC "商品代、保険料" "運賃” "船代、機械代” ・ ・ ・ ・ ・ ・ こんな感じで、下方向への作業展開に変更していただく方向で考えてました。(一応出来ました!) ただ、ご要望とは違いますので ''お二人さん'' (むふっ、ここはリンクしてませんよ!) <<< あっと、これは、無視してください、) に、おんぶにだっこさせていただきます。 しかし、 ="""" これは、知らなかった! ありがたや、ありがたや、、、 (sin) ---- えーっと・・ ''お二人さん'' (むふっ、ここはリンクしてませんよ!) ↑何のことかしら〜〜♪〜〜( ̄ε ̄;;) ---- 復活!!! っていうか、SoulManさんと川野鮎太郎さんのとで勉強し直してきました。 そこには、『重大な××』が・・・ F列からL列までを作業列とします。 F1セルに =A1&"_"&B1 これは、G列〜L列までの計算用の作業用です。 G1セルに =IF($C1="","",IF(COUNTIF($A$1:$A$6,$C1)=0,"",INDEX($B$1:$B$6,SMALL(IF(($A$1:$A$6=$C1)*(MATCH($F$1:$F$6,$F$1:$F$6,0)=ROW($F$1:$F$6)),ROW($A$1:$A$6)),COLUMN(A1))))) として、Ctrl+Shift+Enter で確定。 H1セルに =IF($G1="","",IF(ISNUMBER(SMALL(IF(($A$1:$A$6=$C1)*(MATCH($F$1:$F$6,$F$1:$F$6,0)=ROW($F$1:$F$6)),ROW($A$1:$A$6)),COLUMN(B1))),"、"&INDEX($B$1:$B$6,SMALL(IF(($A$1:$A$6=$C1)*(MATCH($F$1:$F$6,$F$1:$F$6,0)=ROW($F$1:$F$6)),ROW($A$1:$A$6)),COLUMN(B1))),"")) として、Ctrl+Shift+Enter で確定し、これをL1セルまでコピー。 D1セルに =IF(C1="","",IF(G1="","該当無し",CONCATENATE(""" ",G1,H1,I1,J1,K1,L1," """))) D1:L1を6行目までコピーして完了! 『重大な××』について、 ABC 商品代 ABC 商品代 EFZ 商品代 LEC 商品代 元データをこれで試してください。B列のみのマッチングだと全て 1 になります。 (sin) ---- アイタwΣ(ノ∀`)ペチッ 上記の私の案はポイッ(。・ω・)σ ⌒* してください。(^_^A; (川野鮎太郎) ---- お返事が遅れて申し訳ありません。sinさま、ケンさま、川野さま、ありがとうございました。 お陰さまですごく助かります。しかし、見事な数式です。ふうむ、私ももっと勉強します。 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/200501/20050111142557.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97056 documents and 608292 words.

訪問者:カウンタValid HTML 4.01 Transitional