はじめまして。エクセルでどのような式を入れていいのか悩んでいます。
下記のようなファイルで”列D”の値ごとに
数字又はアルファベットなどでグループ分けを”列C”にしたいと思っています。
A B C D
1 日付 曜日 区分 基準値
2 4/1 水 ここ 50010001500
3 4/2 木 ここ 50010001500
4 4/3 金 ここ 100015002000
5 4/4 土 ここ 100015002000
6 4/5 日 ここ 50010001500
・
34 5/3 日 ここ 200030005000
・
184 9/30 水 ここ 50010001500
列Dを並べ替えて、C2セルには
=SUMPRODUCT(1/COUNTIF(D$2:D2,D$2:D2))
C3セルには
=SUMPRODUCT(1/COUNTIF(D$2:D3,D$2:D3))
…そのままC184セルには
=SUMPRODUCT(1/COUNTIF(D$2:D184,D$2:D184))
といった数式を入れたところ、D列の値ごとに数字をふれました。
…小数点の付いたものですが…サイトを検索して利用してみたので、
あまりSUMPRODUCTを理解していません。
しかしながら、重くなりすぎて、しまいには固まってしまいます。
このシートが80枚ぐらい入れたファイルです。
最終的にはこのファイルの隣に、導いた列Cの値をVLOOKUPにて
”1”を”A”、”2”を”B”…と置き換えています。
何か良い方法がありましたら教えてください。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
並べ替えてから処理するのであれば、
イ) C2セル : 1
ロ) C3セル : =E2+IF(D2=D3,0,1)
として、C3セルを下方にフィルすれば足りるように思うのですが…。
※(ロ)の数式は、単に =E2+(D3<>D2) としてもOKです。
-----------------------------------------
また、並べ替える前の状態で、
ハ) C2セル : 1
ニ) C3セル : =IF(ISNA(MATCH(D3,D$2:D2,0)),MAX(C$2:C2)+1,INDEX(C$2:C2,MATCH(D3,D$2:D2,0)))
としてC3セルを下方にフィルすれば、基準値ごとに連番が振られますが、
これも質問文の数式ほど重くはないと思います。
以上ご参考まで。
この回答への補足
回答ありがとうございます。
いただいた数式は =E2+IF(D2=D3,0,1)
質問の表にあてはめると、=C2+IF(D2=D3,0,1) ですよね?
この数式でやってみたのですが、
C2、C3は1、C4、C5は2 とここまではいいのですが、
C6が3になってしまいます。C6もC2、C3と同じ1が欲しいのですが…
また並べ替える前の状態で…というのが質問の表にあてはめたら、
うまくいきました。今から、実際のものにあてはめてやってみます。
重くならないといいのですが…
お礼は後ほどしたいと思います。ありがとうごいました。
No.5
- 回答日時:
#1です。
ご指摘の通り、
=E2+IF(D2=D3,0,1)
=E2+(D3<>D2)
の数式は
=C2+IF(D2=D3,0,1)
=C2+(D3<>D2)
のマチガイでした、すみません。
---------------------------------------------
>C6もC2、C3と同じ1が欲しいのですが…
#1前半の数式は
「あらかじめD列で並べ変えてあること」を前提にしています。
D列で並べ替えてあれば、
離れた位置のセルが同じ区分になることはないと思うのですが?
---------------------------------------------
なお、
ホ) C2セル : A
ヘ) C3セル : =IF(ISNA(MATCH(D3,D$2:D2,0)),CHAR(MAX(INDEX(CODE(C$2:C2),))+1),INDEX(C$2:C2,MATCH(D3,D$2:D2,0)))
とすれば、
並べ替えをしない状態で直接アルファベットを振れますが、
これはちょっと重いかも知れません。
ご参考まで。
No.4
- 回答日時:
回答No2です。
式を間違いました。次のようにしてください。
=IF(A2="","",IF(COUNTIF(D$2:D2,D2)=1,MAX(D$1:D1)+1,INDIRECT("C"&MATCH(D2,D:D,0))))
この回答への補足
回答ありがとうございます。
いただいた数式を入力してみたのですが、
上記、C2、C3、C6のセルは”1”となりましたが、
C4、C5のセルには”50010001501”と出てきます。
C34のセルには”100015002001”で出てきてしまいました。
No.3
- 回答日時:
意味がよく読み取れないのですが、D列の値が同じもの同士をグルーピングできれば良いということでしょうか?
D列が数値になっているなら、
そのままC2に =RANK(D2,D$2:D$184,1) みたいに入力して下にオートフィルすると、同じ数字は同じランク(1、2、3…)になります。
(式中の範囲は必要に応じて調整してください)
>列Dを並べ替えて、C2セルには~~
並べ替えた後でよいのなら、
C2にA(固定)入れておいて、C3には =IF(D3=D2,C2,CHAR(CODE(C2)+1))
として下にオートフィルすれば、A、B、C…が表示されます。
(種類が26(=Z)を超えると記号になってしまいますのでご注意)
この回答への補足
回答ありがとうございます。
RANKの数式で試したところ、C2~C6セル(4/1~4/5)までに
=RANK(D2,D$2:D$6,1)
としてみたのですが、
答えは C2は1、C3は1、C4は4、C5は4、C6は1となり、
1位3つで、次が4位になってしまうようです。
また
=IF(D3=D2,C2,CHAR(CODE(C2)+1))
を試したのですが、1発でアルファベットが振れたらスゴイ!
と思ったのですが、
この答えはC2はA、C3はA、C4はB、C5はB、C6はC
となってしまいました。
C2はA、C3はA、C4はB、C5はB、C6はAとなったらOKだったのですが…
同じ数字は同じアルファベットにしたいもので…
すみません。
先ほど、
C2はA、C3はA、C4はB、C5はB、C6はAとなったらOKだったのですが…
並べ替えた後と注釈がありましたね!
この方法でもうまくいきました、ありがとうございました。
No.2
- 回答日時:
C2セルには次の式を入力し下方にオートフィルドラッグします。
=IF(A2="","",IF(COUNTIF(D$2:D2)=1,MAX(D$1:D1)+1,INDIRECT("C"&MATCH(D2,D:D,0))))
同じグループには同じ番号が付きます。番号別にグループ分けができます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) VBAでセル同士を比較して色付け 4 2023/03/06 19:57
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルの条件付き書式 3 2022/05/08 03:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 Tan(θ)-1/Cos(θ)について...
-
スマートな関数を教えて下さい。
-
Excel ウインドウ枠の固定をす...
-
EXACT関数とIF関数の組み合わせ...
-
4つのパターンを表示するEXACT...
-
関数を教えて下さい。
-
Excel:一部のフォントでセルの...
-
エクセルで指定した日付、店舗...
-
エクセルでセルに「氏名を入力...
-
Excel 2019 のピボットテーブル...
-
スプレッドシートの関数VLOOKUP...
-
エクセルで日付の入ったセルの...
-
Excelファイルの「数式」タブ→...
-
excelの不要な行の削除ができな...
-
Excelのif関数で文字が見えなく...
-
各ページの1番上の表示について
-
エクセル関数に詳しい方、教え...
-
INDIRECTを使わず excelで複数...
-
Excel 2019 は、SPILL機能があ...
-
UNIQUE関数が使えないバージョ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報