- 締切済み
K1セルから、文字を抜き出したい。書き方は、ばらばらです。
EXCELの適用欄の、K1セルから、下の項目を科目名として、A1セルに抜き出したいです。 K1セルの摘要欄は、書き方が統一されていません。ばらばらです。 抜き出したい科目名は、30個ぐらいあります。 どうしたら抜き出せますでしょうか? 前に、if関数で教えてもらったんですけど、繰り返して使える回数が少ないので、 抜き出したい科目の数が多いと使えません。 数が30個ぐらいでも抜き出せるようにするには、どうしたらいいでしょうか? 下は抜き出したい科目です。 雑 収 入 小口現金 燃料代 食料代 源泉所得税 支 払 利 息 受 取 利 息 積立預金預入 社員保険 短 期 借 入 金 短 期 貸 付 金 定期積金取崩 保険料 本支店勘定出金 未 払 費 用 本支店勘定入金 役員給料 諸経費 電話料 短期借入金返済 長期借入金返済 振替入金 振替出金 1売掛金回収 2売掛金回収 3売掛金回収 その他
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Cupper
- ベストアンサー率32% (2123/6444)
K1セルに「4月の電話料金」とあった場合 A1セルに「電話料」と表示させたい と言う事でしょうか。 一筋縄では行きませんね。 とりあえず複数の関数を組み合わせて考えてみました。 まず、K1セルに表示させる文字列を別のシート(Sheet2)のC列に作成します。 Sheet2のB列でSEARCH関数で表示させたい文字がK1セルに含まれるかを検査します。 B1 =SEARCH(C1,Sheet1!K$1,1) B2 =SEARCH(C2,Sheet1!K$1,1) : B27 =SEARCH(C27,Sheet1!K$1,1) これで抜き出したい文字を含む場合B列に数字が表示され、含まない場合エラーが表示されます。 Sheet2のA列にB列の同じ行にエラーがある場合とエラーがない場合を示す関数を設定します。 A1 =ISERROR(B1) A2 =ISERROR(B2) : A27 =ISERROR(B27) これで A列には、エラーの場合 TRUE、エラーでない場合 FALSE が入ります。 あとは元のA1セルにVLOOKUP関数でこの FALSE の行にある C列の文字を表示去ればOK A1 =VLOOKUP(FALSE,Sheet2!A1:C27,3,FALSE) さらに、K1セルに科目の文字列を含まない場合を考慮して、AND関数で検査し、IF関数で空白を表示させるよう修正します。 A1 =IF(AND(Sheet2!A1:A27),"",VLOOKUP(FALSE,Sheet2!A1:C27,3,FALSE)) VLOOKUP関数の最後の FALSEは範囲が昇順に並んでいないため設定しています。 また K1セルに「保険料と社員保険」と表示されている場合、科目の上にある「社員保険」を表示します。 なお、各関数の詳細はExcelのヘルプを参照してください。
- hana-hana3
- ベストアンサー率31% (4940/15541)