
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
No.7です。
大変失礼しました。
>実務を考えると範囲を限定し、
>「=IFERROR(VLOOKUP(SUMPRODUCT((COUNTIF(A1,Sheet2!$A$1:$A$1000)=1)*1,
>(Sheet2!$B$1:$B$1000)),Sheet2!B:C,2,TRUE),"")」
>などと1000行程度にするなどの工夫が必要かも知れません。
と書いたのですが、EXCELの最大有効桁数を考慮していませんでした。
EXCELの最大有効桁数は15桁ですので、shhet2の2のべき乗が51行目で
15桁を超えてしまいます。
このため、この手順で処理できるのはsheet2が50行まで(sheet1の行数は、この制限を受けません)、つまり最大仕分け種類は50種類までとなります。
その場合の上記関数は
「=IFERROR(VLOOKUP(SUMPRODUCT((COUNTIF(A1,Sheet2!$A$1:$A$50)=1)*1,(Sheet2!$B$1:$B$50)),Sheet2!B:C,2,TRUE),"")」
となります。
No.7
- 回答日時:
既に回答された方々の中には、「ワイルドカード」と「sumproduct関数」を使ったものがみうけられなかったので、この二つをつかったアイディアを書いておきます。
1.仕分けすべきシートはshhet1とし、自動仕分けのキーとなる文字(列)は、別シート(例えばsheet2)に一覧表として作成するものとします。
2.sheet1のA列に入力するとC列にsheet2で設定した条件に合致した仕分けが表示されるものとします。
3.sheet1のC1に「=IFERROR(VLOOKUP(SUMPRODUCT((COUNTIF(A1,Sheet2!A:A)=1)*1,(Sheet2!B:B)),Sheet2!B:C,2,TRUE),"")」と記述し、下方向へオートフィルを使って入力予定行数分コピーします。
4.sheet2に添付画像のようにキーとなる文字(列)をアスタリスク(*)で囲んだ文字列をA列にリストとして記入します。
5.sheet1のA列に入力された文字列にはsheet2A列のリストの2つ以上が同時に含まれる可能性があり、この場合は、リストのより下に記載された文字(列)を優先することとします。
6.上記5を実現するための仕掛けとしてsheet2のB1に「=2^(ROW()-1)」を記述し、下方向へオートフィルを使ってA列のリスト分コピーします。
7.sheet2のC列にはA列に入力したキーとなる文字(列)に対応する「仕分け」を記入します。
8.countif関数を使って、sheet2のA列の文字列がsheet1のA列の入力値に含まれるか判断します。(含まれれは1が返ります。但し、2つ以上が該当する場合があります。)
9.sumproduct関数を使って、sheet2の上記8の条件を満たす行のB列の合計値を求めます。
10.vlookup関数を使って、上記9の合計値から条件に合致するリストの最も下にある「仕分け」を求めます。
以上の手順で、sheet2にリストを追加していけば、仕分けの種類が増えても対応できます。
ただし、sumproduct関数を使用し、上記3で示した数式では、EXCELの最大行数分を計算するため、PCの性能によっては、仕分けが表示されるまでに時間を要する可能性があります。
実務を考えると範囲を限定し、
「=IFERROR(VLOOKUP(SUMPRODUCT((COUNTIF(A1,Sheet2!$A$1:$A$1000)=1)*1,(Sheet2!$B$1:$B$1000)),Sheet2!B:C,2,TRUE),"")」
などと1000行程度にするなどの工夫が必要かも知れません。


No.6
- 回答日時:
添附圖參照(Excel 2019)
C1: =IFERROR(IF(FIND("高",A1),"交通費"),"")&IFERROR(IF(FIND("→",A1),"交通費"),"")&IFERROR(IF(FIND("現金",A1),"外注"),"")

No.4
- 回答日時:
こんにちは
>含まれてたら
という意味が言葉通り「含まれる」である場合、その判定分が増えるので少しだけ複雑になりますが、基本的にはIF文のネスト(=重複)で可能です。
以下は、「含まれている」を判定する場合の例です
C1セルに
=IF(NOT(ISERROR(FIND("高",A1)))+NOT(ISERROR(FIND("→",A1))),"交通費",IF(ISERROR(FIND("現金",A1)),"","外注"))
※ 単に一致するか否かで判断できるのであれば、式はかなり簡単になできます。
※ 順に判定しているので、例えばA1セルの値が「現金払いで高額」という文言の場合は、「高」が先に判定されるので、結果は「交通費」と表示されます。
No.3
- 回答日時:
お書きの内容だけならIF関数で場合分けするだけでもいいかなと思ったので聞きました。
そう判断して、IFの回答をしたら「実はたくさんあるのでIFでは書ききれません」みたいな展開になるんじゃないかと危惧したので。
条件の後出しは敬遠されるので、どの程度のボリューム感なのかは最初に書いておいた方がいいですよ。
そうであれば対応表を作って、INDEXとMATCHとかでできると思います。
「含まれる」という表現なので実際のデータ内容がわかりませんし、この辺りにしておきたいと思います。
この回答へのお礼
お礼日時:2020/09/04 16:49
初めての質問でしたので、よく理解していなくて申し訳ありません。
自分の聞きたいことが、なかなか文章におこすと難しくて簡潔にしてしまいました。
抽出文字列が10種類程度で仕分け後の種別が5種類程度くらいの予定になります。
まだまだエクセルも使い慣れてなく、適当に追加すればいけると思い浅はかでした。
わざわざ注意して頂きありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
【関数】【マクロ】売上X円以上...
-
【マクロ 画像あり】Exact関数...
-
空白処理を空白に
-
同じ名前(重複)かつ 日本 ア...
-
エクセルでフィルターした値を...
-
エクセルシートの見出しの文字...
-
空白のはずがSUBTOTAL関数でカ...
-
excel
-
if関数の複数条件について
-
【マクロ】数式を入力したい。...
-
Excelで4択問題を作成したい
-
Excel 複数のセルが一致すると...
-
Excel 日付の表示が直せません...
-
表計算ソフトでの様式の呼称
-
【マクロ】既存ファイルの名前...
-
【マクロ】エラー【#DIV/0!】が...
-
【マクロ】実行時エラー '424':...
-
エクセルの文字数列関数と競馬...
-
エクセルに写真が貼れない(フ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでフィルターした値を...
-
if関数の複数条件について
-
エクセルシートの見出しの文字...
-
excel
-
エクセルの文字数列関数と競馬...
-
VLOOKUP FALSEのこと
-
同じ名前(重複)かつ 日本 ア...
-
表計算ソフトでの様式の呼称
-
エクセルに写真が貼れない(フ...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【画像あり】【関数】指定した...
-
エクセルのVBAで集計をしたい
-
【マクロ】【画像あり】4つの...
-
【関数】3つのセルの中で最新...
-
【マクロ】excelファイルを開く...
-
LibreOffice Clalc(またはエク...
-
エクセルのライセンスが分かり...
おすすめ情報