2017-07-13 9 views
-4

タイトルから特定の単語を差し引いて残りを出力したいと思います。Excelで2つの文字列を比較し、残りを返します

このタスクを実行する式またはマクロはありますか?

ありがとうございました。

メインタイトル:7

出力リレーの剰余
アップルiphone:

株式会社ケース

+2

何を試しましたか? TEXTJOIN()へのアクセス権を持つOffice 365 Excelを持っていない限り、vbaが必要です。 –

答えて

0

使用してみてください
アップル社のiPhone 7ケースが

これらの言葉を引きExの「検索と置換」機能セル。それはトリックを行うことができます:

Ctrl+H 

これは、あなたが何か他のもの(または何もまったく)と数式内の特定のインスタンスや単語の文字列のすべてのインスタンスを置き換えることができ、メニューをプルアップします。 1はTEXTJOIN()を持っている場合、この配列数式はそれを行うだろうに述べたように

+0

3つの単語が同じ順序で表示されないため、OPは少なくとも2つの検索置換を実行する必要があります。 –

+0

それは良い点です。 TEXTJOINははるかに簡単です、私はあなたに同意します。私はOPに新しいバージョンのExcelがない場合のための解決策を提示していました。 –

0

=TEXTJOIN(" ",TRUE,IF(ISNUMBER(SEARCH(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),999 * (ROW(INDIRECT("1:" & LEN(A1) - LEN(SUBSTITUTE(A1," ",""))+1))-1)+1,999)),B1)),"",TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",999)),999 * (ROW(INDIRECT("1:" & LEN(A1) - LEN(SUBSTITUTE(A1," ",""))+1))-1)+1,999)))) 

は、配列数式なので、それは、編集モードを終了するときはCtrl-Shiftキーを押しながら入力する代わりに入力して確認する必要があります。正しく実行された場合、Excelは{}を数式の周りに置きます。

enter image description here


あなたはTEXTJOIN()ネイティブをお持ちでない場合は、ワークブックに添付モジュールにこのコードを配置し、上記のように正確に計算式を使用します。

Function TEXTJOIN(delim As String, skipblank As Boolean, arr) 
    Dim d As Long 
    Dim c As Long 
    Dim arr2() 
    Dim t As Long, y As Long 
    t = -1 
    y = -1 
    If TypeName(arr) = "Range" Then 
     arr2 = arr.Value 
    Else 
     arr2 = arr 
    End If 
    On Error Resume Next 
    t = UBound(arr2, 2) 
    y = UBound(arr2, 1) 
    On Error GoTo 0 

    If t >= 0 And y >= 0 Then 
     For c = LBound(arr2, 1) To UBound(arr2, 1) 
      For d = LBound(arr2, 1) To UBound(arr2, 2) 
       If arr2(c, d) <> "" Or Not skipblank Then 
        TEXTJOIN = TEXTJOIN & arr2(c, d) & delim 
       End If 
      Next d 
     Next c 
    Else 
     For c = LBound(arr2) To UBound(arr2) 
      If arr2(c) <> "" Or Not skipblank Then 
       TEXTJOIN = TEXTJOIN & arr2(c) & delim 
      End If 
     Next c 
    End If 
    TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim)) 
End Function 
関連する問題