質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%

Q&A

受付中

EXCELでのデータの良い分類方法がわかりません

pulim
pulim

総合スコア15

2回答

0グッド

1クリップ

344閲覧

投稿2023/03/15 13:29

実現したいこと

Excelで任意の項目に分類をするための方法

試したこと

A列のデータを任意の項目に分類をするためにD列~F列のように表を作成し、以下の関数でB列に分類結果を表示しています。

INDEX($D$1:$F$1,1,SUMPRODUCT(($D$2:$F$7=$A2)*COLUMN($D$1:$F$1)))

上記の式だと、分類表が別シートにある場合、参照先の列と関数を入力している列が同じ場合、正しい結果が返ってこないため、別の方法を探しているのですが、良い方法(関数以外のパワークエリ等でも良いです)はありますか?
ちなみに、データは、カタカタ、ひらがな、漢字、スペースの有無等から単純な変換では分類が難しいと思ったためこのような方法で分類しています。
有識者の方お願いいたします。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

[2023/03/15 22:29時点の投稿内容に対する回答]
質問に記載の数式は、画像の場合正しい答えを返さないので、「上記の式だと、分類表が別シートにある場合、参照先の列と関数を入力している列が同じ場合、正しい結果が返ってこない」という文章がそもそも成り立ちません。

シートの内容が画像である場合に想定する答を返す式の一例は、下記です。

=INDEX($1:$1,1,SUMPRODUCT(($D$2:$F$7=$A2)*COLUMN($D$1:$F$1)))

そして、分類表(画像でいうところのD1:F7の範囲)を別シート、たとえばSheet2に移動した場合も、
シート名を付けて修正することで、正しく計算されます。
例:分類表を、Sheet1のD1:F7の範囲から、Sheet2のA1:C7の範囲に移動した場合の式

=INDEX(Sheet2!$1:$1,1,SUMPRODUCT((Sheet2!$A$2:$C$7=$A2)*COLUMN(Sheet2!$A$1:$C$1)))

追記

「、梨だけ答えが0なのですが、なぜでしょうか。」

列中に重複するデータがある場合を考慮して修正しました。
下記の数式で試してみて下さい。

=INDEX(Sheet2!$1:$1,1,SUMPRODUCT(UNIQUE(Sheet2!$A$2:$C$7=$A2)*COLUMN(Sheet2!$A$1:$C$1)))

(確認環境:Excel2019)

投稿2023/03/15 13:50

編集2023/03/21 00:39
退会済みユーザー

退会済みユーザー

総合スコア0

TakaiY👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

pulim

2023/03/18 13:57

この式の場合、梨だけ答えが0なのですが、なぜでしょうか。 ちなみに、分類表は、別のシートに移動し、A~C列に作成してます
退会済みユーザー

退会済みユーザー

2023/03/19 00:16 編集

> 「、梨だけ答えが0なのですが、なぜでしょうか。」「分類表は、別のシートに移動し、A~C列に作成してます」 ではそのエクセルシートをアップロードしてください。実物を見ないことにはわかりません。
Nouble1

2023/03/20 22:38

分類表上に、 梨が 2重記載されている、 機能検証が 仕掛けられているからでしょう。 _ 詰まり、 コード設計上の 不全さが、 みられるのでは? _ 一方で、 私の コードでは、 其の様な事は 起きませんし、 対処法も 説明させて、 頂いていますよ。
退会済みユーザー

退会済みユーザー

2023/03/21 00:36

>Nouble1さん ありがとうございます。 >pulimさん 修正しました。

0

私は、

数学的な アプローチで、
試してみました。

_

概要、

概要としては、

行列積を 用いて、
真理値を 数値化した、
ものを、
列毎に 集計したのです。

_

配列数式、

excel 配列数式、

1=OFFSET($C$1,0,SUMPRODUCT(SIGN(MMULT({1,1,1,1,1,1},(($A2 =$D$2:$F$7)+0)))*{1,2,3}),1,1)

※注:エンターのみで 確定してください。

解説、

先ず、

〉(($A2 =$D$2:$F$7)+0)  …以降 α
此方で 真理値表を、
作成し、
併せて 数値化を、
図りました、

何故、どんな数値化が、
図られるかは、
省略可能ですよね?

もし お求めなら、
お問い合わせください。

_
次に、

〉MMULT({1,1,1,1,1,1},α)  …以降 β
行列積を 用いて、
列毎に 此方で、
集計しました。

尚、

こうした 定数配列を、
自動生成させる事も 容易なのですが、
今回は 端折りました。

_
さて、

此の侭では データ集計結果に、
重複が 発生しますので、
〉sign(β)          …以降 γ
此の様に しました。

_
此迄で、

1行3列の 数値配列が、
内部に 確保され、
其の内の 1つだけが、
1、
其の他は 0、
そうした 状態が、
確保されました。

_
其処で、

何処に 1が、
立っているかを 識別するために、
{1,2,3}を かけ、
集計させようと したのが、
此方です。

〉SUMPRODUCT(γ*{1,2,3}) …以降 δ

_
最後には、

基準から 数えて、
何列目に 属すかが、
此処迄で 解っかりましたので、

セルC1を 基準として、
offset構文で 各列ラベルを、
参照しました。

_
其れが 此方です。

〉OFFSET($C$1,0,δ,1,1)

_

補足、

実証映像、

_
実証評価ファイル、

_
尚、

ブアイルは 表示形式で、
提供ています。

_
しかし、

ローカルに ダウンロードできる、
ものと 思います。

_
ダウンロード 頂き、

別名で 保存された、
後は、

様々な 観覧も、
編集や、テストさえも、
適う ものと、
思います。

_

Copyright、

_
因みに、

此等は 正に、
私が 作成した、
もので、

私の 公開以前、
既に、
知られた ものでも、
公開されている ものでも、

当たり前ながら ありません。

_
元より、

私の オリジナルで、
故に 相応に、
誰でも 勘案し得る、
簡単な ものではない、

複雑で 困難な、
ものな 事より、

私に 著作権が、
帰属して います。

_
当該に付いては、

使用に 際しては、
私の 指定した、
使用上の ルールに、
従う限り、

金品等 一切を、
請求する ものでは、
ありませんが。

_
真逆に、

従わなかった 場合は、
賠償を 請求します。

_
では、

使用の ルールですが、
此の、
やり方、考え方を、
何時、何処で、
どのIDの ものの、
提示から 知ったか、

使用時には、
誰の 目にも、
灼かに 伺えるよう、
詠う 事と、

其れを 見たものが、
此の 義務を、
引き継ぐように 指定する、
事を、

義務付けます。

_
勿論、

使用に 際しては、
此を 怠らない限り、
使用は フリーです。

_
逆に、

反した 場合は、
先筆通り、
賠償を 頂きます、

其れだけの 事です。

_
此、

本来は 履行する、
方が、
常識な 事なので、

態々 此の様に、
書かないと いけない、

そんな 現状が、
狂気的な 異常状態なのです。

_
然りとて、

書かないと 特に日本では、
誰も 履行しないので、

お目汚しには なるかとも、
思いましたが、

書き込まして 頂きました。

_
又、

こうでも しておかないと、
間違えた 使用法により、
困惑されているような 方々の、
事態を、
目の辺りに した時、

「其れ 私が、
作り出した ものなので、
私なら 判りますよ。」
と 投げかけた際に、

狂人扱いを 真面に、
あからさまに されるのですよ、

此は 困るので、
防ぎたいのです。

_
本来、

賠償等 求めては、
居ませんが、

此の 国の、
法律体系では、

〉規制を 個人が、
貼る場合は、
賠償の 形しか、
取れない、

と 思っているもので、
こう しています。

_
さて、

此方 ご理解を、
頂けましたなら。

_
又、

お役に 立てて、
居たならば

幸いです。

_
Copyright Nouble

投稿2023/03/15 21:13

編集2023/03/15 21:25
Nouble1

総合スコア3

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Nouble1

2023/03/18 02:27

何処を さして、 スペムなのでしょうか? 攻撃的なのでしょうか? 論拠も 挙げず、 発するだけとは、 どんな ものなのでしょうか? 誹謗するなら 其れなりの、 説明が 必要だと、 思います。

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る