グッドデザイン賞を受賞したウォーターサーバー >>

すみません。どうしてもわからないので教えてください。
EXCELは2013を使用しています。

sheet1: データがある表
sheet2: sheet1を基にデータを表示

sheet2のA列とB列には参照したいセルの列と行が記載してあり
C列にはA列とB列を組み合わせた参照したいアドレスが関数で記載してあります。
そこでC列で参照したいアドレスを基にD列に結果を表示させるにはどうしたら良いでしょうか。
アドバイスよろしくお願い致します。

<sheet1>
 A列
1.マドレーヌ
2.フィナンシェ

<sheet2>
 A列(列) B列(G等) C列(関数)       C列に表示される形) D列
1.A    2     ="=sheet1!"&A1&(B1) ⇒ =sheet1!A2     フィナンシェ

A 回答 (4件)

C列の関数を変更しないのなら、こちら↓で対応します。


 =INDIRECT(MID(C1,2,LEN(C1)-1))

C列の先頭にある等号記号を記載しないで、表示形式で対応すれば
もっと簡単になります。
C列の表示形式を
 "="@
にしたら、C列の関数を
 ="sheet1!"&A1&(B1)
とする。これならD列は
 =INDIRECT(C1)
だけで参照できます。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。無事に解決できました!
ありがとうございました!

お礼日時:2019/04/16 11:04

<sheet2>の直下に書かれた横長文字列の意味が全く理解できません。


「B列(G等)」の「G等」の意味は?
「="=sheet1!"&A1&(B1)」の「B1」は何を指していますか?
そこに「マドレーヌ」は見当たらないしィ~、要は求めたい最終の形は何ですか?
「マドレーヌ・フィナンシェ」ですか?

チコちゃんに叱られないような説明をお願いしますヨ!
    • good
    • 0

すでに回答が示されていますが、説明ついでに回答してみます。



文字列をアドレスに変換する関数があります。
それが「INDIRECT関数」です。
”A”という文字と”1”という文字を結合して”A1”という「文字列」にしたうえでINDIRECT関数に渡すと、A1セルを参照するようにないます。
 =INDIRECT("A"&"1")
 ↓
 =A1
と同じことです。

質問者さんはINDIRECT関数の存在や使い方を知らないだけと判断します。
INDIRECT関数が使えることを伝えれば、自己解決できるでしょう。


・・・余談・・・

このINDIRECT関数は、セル番地だけでなく、範囲名も範囲として返すことができます。
 A1セルからA10セルの範囲に ”合計範囲1”
 B1セルからB10セルの範囲に ”合計範囲2”
と名前を付け、
C1セルに”1"または”2"を入力または演算させた場合、
 =SUM(INDIRECT("合計範囲"&C1))
のようにして合計する範囲を切り替えて指定することもできます。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。無事に解決できました!
ありがとうございました!

お礼日時:2019/04/16 11:04

No.1の回答者です。


質問者さんの数式をコピーして回答したので、余計な括弧が付いた
ままでしたね。
正しくは
 C列の関数を
  ="sheet1!"&A1&B1
 とする。
になります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

QEXCELである位置の文字列だけ抜き出したいです

EXCELを使っているのですが
セル内の文字列で ある位置にある文字列だけを
抜き出す関数を教えてもらえないでしょうか。

現状として、例えば
★KOYあ123 こいくおう AOOUGFEI VUIKIYT

とありますと 最後の「VUIKIYT」 これだけを 抜き出したいのです。

その前の文字列とは スペースで区切ってあります。

調べてみると ある文字以降を抜き出すとかはありましたが
スペースはみあたりませんでした。

よろしく御願いします。

Aベストアンサー

抑もからして、
此を 使えば、
造作も 無い事なのですが、
https://www.becoolusers.com/excel/text-to-columns.html

其れでは 興が、
そがれるので、

式で 実現してみましょう。



出来ました、
此で 如何ですか?

A1に 分割したい、
文字列、
A2に 何単語目か、
各々 記載されているもの、
と します。

式、
=MID($A$1,単語切出し開始位置,切出し文字数)

名前定義、

N番目単語区切り位置、
式、
=INDEX((MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)<>" ")*10^10+COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),,)

切出し文字数、
=IF(SMALL(N番目単語区切り位置,Sheet1!$A$2)>LEN(Sheet1!$A$1), LEN(Sheet1!$A$1), SMALL(N番目単語区切り位置,Sheet1!$A$2)-1) -SMALL(N番目単語区切り位置,Sheet1!$A$2-1)

単語切出し開始位置、
=SMALL(N番目単語区切り位置,Sheet1!$A$2-1)+1=SMALL(N番目単語区切り位置,Sheet1!$A$2-1)+1


又は、
式、

=MID($A$1,SMALL(INDEX((MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)<>" ")*10^10+COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),,),Sheet1!$A$2-1)+1=SMALL(INDEX((MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)<>" ")*10^10+COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),,),Sheet1!$A$2-1)+1,IF(SMALL(INDEX((MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)<>" ")*10^10+COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),,),Sheet1!$A$2)>LEN(Sheet1!$A$1), LEN(Sheet1!$A$1), SMALL(INDEX((MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)<>" ")*10^10+COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),,),Sheet1!$A$2)-1) -SMALL(INDEX((MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)<>" ")*10^10+COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),,),Sheet1!$A$2-1))


ファイル、
https://1drv.ms/x/s!AjviygfJDgV_3EeV55B468k4R59Y

尚、
ファイルは 一度、
ローカルに 別名保存し、

其の 保存ファイルを、
扱うように してくださいね、

此の時、
別名保存でないと、
意味が 無いですよ。


さすれば、
閲覧も、編集も、
叶うものと 思います。


構造説明、

主要エンジン式、
=MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)

此で 文字列を、
半角に した後、
一文字づつに 分割しています。


何故 分割が、
必要かは、

Excelの 仕様に、
よるもので、

文字列は EXACT構文を、
除いて、

割と 多くが、
先頭文字のみしか、
評価しないからです、

ので、
全てを 先頭文字化、
詰まり、
一文字に するのです。


さて、
次に、

名前定義、
単語切出し開始位置、

詰まり、
SMALL(N番目単語区切り位置,Sheet1!$A$2-1)+1=SMALL(N番目単語区切り位置,Sheet1!$A$2-1)+1
ですが、

全てが 一文字になれば、
こっちのもの、

半角スペースで ないものを、
値肥大化させて 跳ね上げ、
(※注:此の 方式は、
   過去 私が、
   開発したもので、
   著作権放棄は していません。)

文字位置連番数値を 足し、
指定単語数-1番目を 読み出し、

更に、
此のままでは スペース位置を、
指し示すので、
文字位置値に +1して、
単語先頭に 移しています。


此の際の INDEX構文ですが、
おまじないの ようなもので、
此を 付ける事により、

但の Enterのみでの、
確定や、
名前定義を 介した、
配列数式の 受け渡しが、
可能に なります。


更に、
名前定義、
切出し文字数、

詰まり、
IF(SMALL(N番目単語区切り位置,Sheet1!$A$2)>LEN(Sheet1!$A$1), LEN(Sheet1!$A$1), SMALL(N番目単語区切り位置,Sheet1!$A$2)-1) -SMALL(N番目単語区切り位置,Sheet1!$A$2-1)
ですが、

切り出し単語が 文字列最終位置なら、
後方に スペースは、
付きませんから、

単語切り出し位置として、
先頭に 配されるべき、
スペースも 又、
ない事になります。


此により 連れて、
先の N番目単語区切り位置、
が、
エラーに なりますので、

其の場合は、
最終単語切り出しと しての、
処理である、
最大文字数を、

又、
エラーで 無い場合は、
単語先頭位置を、
IF構文で 導き出し、

当該単語開始文字位置値を 払って、
切り出し文字数と しています。


如何ですか?
長ったらしくは なっていますが、

内容的には 割と、
単純ですよね?


尚、
不明点等 ある場合は、
其の旨 個々に、
お申し付け 頂ければ、
幸いです。


又、
お役に 立てで、
居たならば、
此も 幸いです。

抑もからして、
此を 使えば、
造作も 無い事なのですが、
https://www.becoolusers.com/excel/text-to-columns.html

其れでは 興が、
そがれるので、

式で 実現してみましょう。



出来ました、
此で 如何ですか?

A1に 分割したい、
文字列、
A2に 何単語目か、
各々 記載されているもの、
と します。

式、
=MID($A$1,単語切出し開始位置,切出し文字数)

名前定義、

N番目単語区切り位置、
式、
=INDEX((MID(ASC(Sheet1!$A$1),COLUMN(OFFSET(Sheet1!$A$1,0,0,1,LEN(Sheet1!$A$1))),1)<>" ")*10^...続きを読む

Qエクセル データの入力規制「リスト」でこんな事できますか?

エクセルでこんな事できますか?
並列したQ列 R列があり、
また、添付には表記されていませんが、
その隣にS列 T列があり、
Q列、S列は、「コード」という事で、
Q列は1,2,3,4,5,6,7,8,9,10
S列は11,12,13,14,15,16,17,18,19,20
です。
R列は、「材質」でQ列に対応し、添付ファイルのように10項目
T列も「材質」でS列に対応し、10項目あります。

R列 T列「材質」を見て Q37セルにコードを入力したく、
その時、ドロップダウンリストとして、R列、続けて、T列の項目を表示したいです。

データの入力規制「リスト」で、できそうかと思い、頑張っていたのですが、
うまくいかず困っています。
データの入力規制「リスト」にはこだわりませんが、
マクロはできるだけ使わず完成したく思います。
エクセル詳しいかたご教授よろしくお願いします。

Aベストアンサー

あー…
入力規則はあくまでも、データ入力を補助するための機能ですからリストと違う文字を反映させることはできませんよ。

例えばリストデータは、01りんご・02プリンのように作って置いて、コードを出す時に
=LEFT(Q37,2)*1
と入れておくとか?

QExcelの2つのセルの組み合わせで指定された金額を表示したい。

製品名と色の組み合わせで対応した金額を表示したいのですが
その方法がわかりません。
シート1は入力欄。
シート2には製品名や色に対応した金額が入力されています。
使用しているのはoffice365です。

Aベストアンサー

こんにちは

>シート2には製品名や色に対応した金額が入力されています。
ということは、シート2の表を参照して金額を求めれば良いということですよね?

表の形式が不明ですが、縦×横に製品名×色(逆でも良いです)という表になっているとします。
金額を参照するには、それぞれに該当する行、列を求め、その交点を参照すれば良いことになります。

行(列)の位置はMATCH関数等で求め、その結果を利用して全体の表からINDEX関数で参照するようにすればよさそうです。
言葉だけで説明してもわからないと思いますので、似た例の解説がされているサイトを参考にしてください。(説明の下の方に2軸の料金表の例があります)
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/vlookup.htm#match

Qexcelにて プラス値とマイナス値を違う欄に表示したいです。

excelの計算式で、行方向にマイナスの計算式を入れ、プラス値とマイナス値の表示を別列に表示するにはどのような計算式を入力すれば良いでしょうか。

例)
A1       B1       C1       D1
10000     5000      5000
20000     21000              -1000

ご教授の程、宜しくお願い致します。

Aベストアンサー

例)
A        B       C       D
10000     5000
20000     21000

ここまで入力した時に、

A        B       C       D
10000     5000      5000
20000     21000              -1000

A列の値-B列の値を計算して、
正ならC列に表示、負ならD列に表示
って事で良いのでしょうか?

であれば、例えば、
C1:=IF(0<=A1-B1, A1-B1, "")
D1:=IF(0<=A1-B1, "", A1-B1)
を下向きにコピペとか。

Q特定の列範囲の中で最終列を指定

お世話になります。
以前質問した中で、別シートにデータを5列づつ
下に追加していくにはどうしたら良いかと言う質問をさせていただきました。

https://oshiete.goo.ne.jp/qa/11051972.html

上記回答で解決したのですが、
For j = 4 To .Cells(i, 1).End(xlToRight).Column Step unit
だと繰り返したくない列も動いてしまい、
繰り返す列範囲がD~W列のため
For j = 4 to 24 Step unit に変更しました。
すると今度は空白がある行も転記してしまい、困っています。

繰り返す範囲はD~W列まで5列毎に繰り返す
5列毎の最初のセルが空白か[0]であれば転記しない

どうぞよろしくお願いします。

Aベストアンサー

似ていますが、、、、

Sub Copies()
Const SRow = 3: Dim LRow As Long
Dim sht1 As Worksheet: Dim sht2 As Worksheet
Dim i As Long, j As Long, k As Long
Const UWide = 5
'===================
Set sht1 = Worksheets("Sheet1")
Set sht2 = Worksheets("Sheet2")
'===================
Application.ScreenUpdating = False
With sht1
LRow = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(SRow, 1).Resize(1, 3 + UWide).Copy sht2.Cells(1, 1)
k = 2
For i = SRow + 1 To LRow
For j = 4 To 23 Step UWide
If WorksheetFunction.CountA(.Cells(i, j).Resize(1, UWide)) > 0 Then
.Cells(i, 1).Resize(1, 3).Copy sht2.Cells(k, 1)
.Cells(i, j).Resize(1, UWide).Copy sht2.Cells(k, 4)
k = k + 1
End If
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub

似ていますが、、、、

Sub Copies()
Const SRow = 3: Dim LRow As Long
Dim sht1 As Worksheet: Dim sht2 As Worksheet
Dim i As Long, j As Long, k As Long
Const UWide = 5
'===================
Set sht1 = Worksheets("Sheet1")
Set sht2 = Worksheets("Sheet2")
'===================
Application.ScreenUpdating = False
With sht1
LRow = .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(SRow, 1).Resize(1, 3 + UWide).Copy sht2.Cells(1, 1)
k = 2
For i = SR...続きを読む

QExcel 関数について……

Excelの関数で
E列に 県名
B4に日付
C4に曜日 が入ってる表で
D列に"⚪"が付いた県名を自動で表示したいのですが……

Aベストアンサー

追記、

尚、
コントロール+SHIFT+Enter
の 確定式は、

クリック一発で、
簡単に 壊れ、

理解してないものでは、
何故、何処か、
壊れたか、

すらも 判らない、
等と 言った、
物になり、

修復が 不可能と、
なる所か、

壊れたかすら 判らない、
と、

とんでもなく、
素行の 極端に、
悪い 代物に、
なりますので、

質問者様に 多大な、
迷惑を かけます。


ですので、
出来れば 以降は、
投稿を お控え、
頂ければ、
幸いかと 思いますよ。

Qオートフィルを使ったマクロを作りましたが、時間がかかります。

初心者です。
検索で拾ったコードを組み合わせて、下のようなコードでマクロを作りました。
2万行を超えるデータを、オートフィルである列の中から「1」以外を行で削除するようにします。
実際に実行すると、時間がかかりポインタがクルクルとなっています。
もっと早く処理できるようにできますでしょうか。どこかおかしいところがありますでしょうか。
ご指摘のほどよろしくお願いします。

Sub コマンドボタン枝番_Click()

Dim intRowCount, i As Integer
Dim lngTotal, lngWriteTotal As Long

If MsgBox("枝番1以外を削除します。" & vbCrLf & _
"処理を実行しますか?", vbYesNo + vbQuestion, "行削除マクロ") = vbNo Then
Exit Sub

End If

Application.ScreenUpdating = False

lngTotal = Application.WorksheetFunction.CountA(Range("AV2:AV40000"))

Worksheets("全体").Activate
Worksheets("全体").Range("AV1").Select
Selection.AutoFilter

Selection.CurrentRegion.Select
intRowCount = Selection.Rows.Count + 1

ActiveSheet.Range("$A$1:$BO$40000").AutoFilter Field:=48, Criteria1:=">1", _
Operator:=xlAnd
Rows("2:40000").Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter
Application.Goto reference:=Range("A1"), Scroll:=True

lngWriteTotal = WorksheetFunction.CountA(Range("AV2:AV40000"))

MsgBox "処理を完了しました。" & vbCrLf & _
"件数:" & vbCrLf & lngWriteTotal

Worksheets("手順シート").Activate

Application.ScreenUpdating = True

Exit Sub

End Sub

初心者です。
検索で拾ったコードを組み合わせて、下のようなコードでマクロを作りました。
2万行を超えるデータを、オートフィルである列の中から「1」以外を行で削除するようにします。
実際に実行すると、時間がかかりポインタがクルクルとなっています。
もっと早く処理できるようにできますでしょうか。どこかおかしいところがありますでしょうか。
ご指摘のほどよろしくお願いします。

Sub コマンドボタン枝番_Click()

Dim intRowCount, i As Integer
Dim lngTotal, lngWriteTotal As Long

I...続きを読む

Aベストアンサー

オートフィルタの状態で削除するから、実際は飛び飛びの行削除になっててそこで処理が重くなってるんじゃないかと。

先に、AV列(48番目の列)でソートをかけてしまって、
そののちに1以外(1より大きい数でいいんですよね?)をフィルターすると、
連続した列の削除になるので、処理時間が短くなります。

投稿されたコードの途中に★★★で囲まれた部分を追加して、処理速度を確認してみてください。

・・・
lngTotal = Application.WorksheetFunction.CountA(Range("AV2:AV40000"))
Worksheets("全体").Activate
'★★★
ActiveWorkbook.Worksheets("全体").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("全体").Sort.SortFields.Add Key:=Range("AV2:AV40000") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("全体").Sort
.SetRange Range("A1:BO40000")
.Header = xlYes
.Apply
End With
'★★★★
Worksheets("全体").Range("AV1").Select
Selection.AutoFilter
・・・

オートフィルタの状態で削除するから、実際は飛び飛びの行削除になっててそこで処理が重くなってるんじゃないかと。

先に、AV列(48番目の列)でソートをかけてしまって、
そののちに1以外(1より大きい数でいいんですよね?)をフィルターすると、
連続した列の削除になるので、処理時間が短くなります。

投稿されたコードの途中に★★★で囲まれた部分を追加して、処理速度を確認してみてください。

・・・
lngTotal = Application.WorksheetFunction.CountA(Range("AV2:AV40000"))
Worksheets("全体").Activat...続きを読む

QExcelの住所欄地番の表記

前担当者が作成したExcelの顧客管理表での質問です。
住所1・・●●町
住所2・・1丁目12番地6号
となっています。
住所2を1丁目12番地6号から7丁目12番地6号に直すとします。

1丁目12番地6号のセルをクリックすると
上の数式バーには 1126 と表れます。(数式は表記されない)

なので 7126 と入れた所
0丁目12番地6号になってしまいます。

前担当者はいなく、私も周りもPCに弱いので困っております。
エクセルに詳しい方お願いいたします。

Aベストアンサー

駄目なEXCEL応用例の典型ですね

汎用性等を考慮せずに、一定のケースのみ通用する書式でも設定したんでしょう

まずは、セルを右クリックして「書式設定」から、セルの表示形式を確認しましょう

QExcel VBA マクロ 複数範囲を並び替えたい

Excel 2016を使用しています。
現在、利用予定表を作成しております。
下記のような表(画像参照)があり地域毎に並び替えを一気にしたいのですが可能でしょうか。

カレンダー形式にしており
A列,D列,G列…(3行毎) に通し番号
B列,E列,H列…(3行毎) に名前
C列,F列,I列…(3行毎)  に地域

これが31日分カレンダー形式で作っています。

通し番号はそのままで
日付のグループ?ごとに
地域順に並び替えをしたいのですがマクロで可能でしょうか。
その地域がまとまってくれればいいのでフリガナ等は考慮しなくて大丈夫です。

B5:C9の範囲ひとつでならマクロで並び替えできたのですが
どうしても複数となるとわからなくなってしまいました。

乱文で申し訳ありませんがよろしくおねがいいたします。

Aベストアンサー

こんにちは!

横からお邪魔します。
お示しの画像の配置で列方向には7日分、行方向には1か月の最終日まであるとしての一例です。
尚、①~⑤に関しては並び替えはしなくてよいのですよね。
一例です。

Sub Sample1()
 Dim i As Long, j As Long
 Dim myRng As Range
  For i = 5 To Cells(Rows.Count, "B").End(xlUp).Row Step 7 '//←B列5行目~B列最終行まで7行おき★//
   For j = 2 To Cells(i, Columns.Count).End(xlToLeft).Column Step 3 '//←B列~最終列まで3列おき★//
    If Cells(i, j) <> "" Then
     Set myRng = Cells(i, j).Resize(5, 2)
      myRng.Sort key1:=myRng(2), order1:=xlAscending, Header:=xlNo
    End If
   Next j
  Next i
   MsgBox "完了"
End Sub

※ 都道府県?の昇順で並び替えを行っていますので、
お示しの画像だと「福岡」が最後の方にかまとまってしまいます。

コード内の
>xlAscending

>xlDescending
にすれば降順になりますので、福岡が上の方にまとまりますね。

昇順・降順は好みで変更してみてください。m(_ _)m

こんにちは!

横からお邪魔します。
お示しの画像の配置で列方向には7日分、行方向には1か月の最終日まであるとしての一例です。
尚、①~⑤に関しては並び替えはしなくてよいのですよね。
一例です。

Sub Sample1()
 Dim i As Long, j As Long
 Dim myRng As Range
  For i = 5 To Cells(Rows.Count, "B").End(xlUp).Row Step 7 '//←B列5行目~B列最終行まで7行おき★//
   For j = 2 To Cells(i, Columns.Count).End(xlToLeft).Column Step 3 '//←B列~最終列まで3列おき★//
    If Cells(i, j) <> "...続きを読む

Qエクセル リストと完全一致するセルに色をつける

シート1のA列とB列に
aaa ccc
bbb ggg
ccc kkk
ddd ooo
と言うリストがあって、A1〜A4はAチーム、B1〜B4まではBチームと名前を付けています
シート2にAチームのリスト4個が続いているものがあればセルを赤、Bチームのリスト4個が続いているものがあればセルを黄色に塗りたいです
AチームとBチームの中には同じ品番がある時もあります
条件付き書式で設定は出来るでしょうか?

Aベストアンサー

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル

 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4

 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5

 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

の4パターンについてそれぞれ調べれば良いだけ。

自分なら
 aaa-bbb-ccc-ddd
のようにシート1から文字列を作り、それが調べるセルで同じパターンになるかを調べます。
シート1はA5セルから、シート2はA11セルからデータが入力されているなら、

 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A11 & A12 & A13 & A14
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A12 & A13 & A14 & A15
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A13 & A14 & A15 & A16
 シート1!A5 & シート1!A6 & シート1!A7 & シート1!A8 = A14 & A15 & A16 & A17

という条件になる。
この4つのうちの一つでも条件を満たせばセルに赤色を付ければいい。
「Bチーム」についても同様にすればいいので、
この場合、8つの条件式を設定することになります。

面倒でもこの考え方ができていないと、ちょっと条件が変わっただけで対処できずに終わります。
冒頭で「並び順」について書きましたが、並び順がシート1のリストの通りでなくとも色を付けたい場合でも、この考え方は必要ということです。

・・・
ちなみに厄介なのが、どちらのチームにも「ccc」がいるというところかな。
これが無ければ違う方法でシンプルにできるんですけどねえ。

(´・ω・`)
”○” の数を数えるんじゃないんだよなあ。

・・・本題・・・

条件付き書式ですよね。

シート2のリストの並び順は
 aaa
 ccc
 bbb
 ddd
では「Aチーム」と認識しないという事でよろしいでしょうか?
ならば、とても簡単です。

シート2の一覧において、

 判定するセル1
 判定するセル2
 判定するセル3
 色を付けるセル
 判定するセル4
 判定するセル5
 判定するセル6

という範囲について調べれば良いという事。

 判定するセル1
 判定するセル2
 判定するセル3
 色を付け...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング